当前位置:  编程技术>移动开发
本页文章导读:
    ▪appt下令检测Apk信息的方法        appt命令检测Apk信息的方法appt命令检测Apk信息的方法 步骤如下: 1.Export unsigned apk----------->Eclipse Android Tools > Export Unsigned Application Package----->FishEye.apk   2.命令行运行appt命令------------>E.........
    ▪ 搬动浏览器的“隐形危机”        移动浏览器的“隐形危机” 浏览器在移动互联网应该扮演什么角色?这个问题业内争论已久:从不同内核解析排版能力的纯技术层面,到是否有资格成为一个强势资源分发渠道的商业层面.........
    ▪ win8开发(六)——资源 & 本地化       win8开发(6)——资源 & 本地化 在实际开发中,也许我们需要做这样的界面,可分为两种情况: 1、应用程序具备多语言版本(如中文简体,中文繁体,英文等),用户界面上显示的文.........

[1]appt下令检测Apk信息的方法
    来源: 互联网  发布时间: 2014-02-18
appt命令检测Apk信息的方法

appt命令检测Apk信息的方法

步骤如下:

1.Export unsigned apk----------->Eclipse

Android Tools > Export Unsigned Application Package----->FishEye.apk

 

2.命令行运行appt命令------------>E:\android\android-sdk\platform-tools加入Path系统变量

C:\Documents and Settings\Administrator>aapt dump badging f:\fedoraShare\documen
t\FishEye.apk
package: name='com.baony.fisheys' versionCode='1' versionName='1.0'
sdkVersion:'8'
targetSdkVersion:'15'
uses-permission:'android.permission.WRITE_EXTERNAL_STORAGE'
uses-permission:'android.permission.MOUNT_UNMOUNT_FILESYSTEMS'
application-label:'FishEye'
application-icon-120:'res/drawable-ldpi/ic_launcher.png'
application-icon-160:'res/drawable-mdpi/ic_launcher.png'
application-icon-240:'res/drawable-hdpi/ic_launcher.png'
application-icon-320:'res/drawable-xhdpi/ic_launcher.png'
application: label='FishEye' icon='res/drawable-mdpi/ic_launcher.png'
launchable-activity: name='com.baony.fisheys.FishEye'  label='FishEye' icon=''
uses-permission:'android.permission.READ_EXTERNAL_STORAGE'
uses-implied-permission:'android.permission.READ_EXTERNAL_STORAGE','requested WR
ITE_EXTERNAL_STORAGE'
uses-feature:'android.hardware.touchscreen'
uses-implied-feature:'android.hardware.touchscreen','assumed you require a touch
 screen unless explicitly made optional'
main
supports-screens: 'small' 'normal' 'large' 'xlarge'
supports-any-density: 'true'
locales: '--_--'
densities: '120' '160' '240' '320'
native-code: 'armeabi'


    
[2] 搬动浏览器的“隐形危机”
    来源: 互联网  发布时间: 2014-02-18
移动浏览器的“隐形危机”

浏览器在移动互联网应该扮演什么角色?这个问题业内争论已久:从不同内核解析排版能力的纯技术层面,到是否有资格成为一个强势资源分发渠道的商业层面。

目前并没有任何一种观点能够成为绝对的主导者。这与支撑新一代移动Web产业发展的底层技术——HTML5标准的不确定性密切相关。

但本文目的不在于讨论标准和技术,而是以外围生态系统的“容忍度”、国内主流移动应用形态的变迁作为切入点,详细分析浏览器在移动互联大产业中将会遭遇的“隐性危机”。

上游危机

浏览器必须要走平台化的路线,这一点在PC平台上就已经得到业内共识。

平台化的本质在于,将浏览器从单纯的“页面浏览工具”转变为服务载体,汇聚整合所有外部资源,然后以个性化的方式向用户输出价值。

大方向没有错,但移动浏览器想要照搬PC的思路,却要承担大得多的风险——来自上游操作系统提供商的钳制。

PC平台上的第一次浏览器大战,微软用免费预装的方式彻底击垮NetScape后,就不思进取了,IE浏览器的发展长期处于停滞状态。直到Google提供免费的Web应用反向渗透桌面之前,他们根本就没想过去认真研究浏览器,然后就有了“微软失去的十年”这种说法。

移动平台就完全不同了。目前三大主流操作系统采用的都是以应用商店为中心的分发模式,尤其是iOS和Windows Phone,任何系统级的修改都是它们不能容忍的——你最多只能调用,而不可能替代某一组件。第三方浏览器不约而同地选择平台化,对操作系统的潜在威胁在 于:替换应用商店这一分发渠道,从而圈住资源跃升为“亚操作系统”,将底层操作系统管道化。

这也许是一种极端的说法,但苹果和微软对第三方浏览器的反制其实已经很明显了:浏览网络的程序必须使用它们定制的框架和渲染引擎——换一种说法 就是封杀一系列私有API和内核,将主要基于HTML5的Web App体验控制在一定水准之下,形成对现有App生态系统的保护。

更倒霉的是采用私有Presto内核的Opera,面向中国市场的欧朋浏览器始终被App Store以各种理由拒之门外,公司甚至不得不“违心”向苹果解释“其实我们做的不是浏览器”。

Android对于第三方浏览器的态度最为缓和。但随着移动版Chrome的正式推出,以及Google为解决碎片化对于系统定制权限的收紧,没理由认为宽松的政策会一直延续下去。

惟一不受制于人的方法就是脱离这些平台,将浏览器从“亚操作系统”彻底衍生为真正的操作系统。就像Firefox那样,直接推出基于Gecko核心的Firefox OS。

很显然,无论从技术还是市场角度看,这个选择都太过沉重。

跨维度攻击

即使移动浏览器能够挣脱操作系统的压制,实现平台化,这一产品形态也将遭遇新的挑战——来自其他移动应用平台的竞争。

目前移动应用平台化主要有两种路径,第一种是类似Evernote的“品牌平台化”,在单一产品获得优质口碑之后,开放API推出各种垂直定位 的子产品,利用云端技术整合数据形成平台;第二种则是国内应用的普遍做法,对某个用户量规模化的产品开放API和叠加各种基础功能,追求流量和资源的最大 化,例如微信、微博以及地图。

这里主要讨论第二种形式对于移动浏览器(目前它们的平台化也走这种形式)的影响。其实质在于:随着平台化进程的不断深入,应用的工具属性将逐渐消解,各种产品从不同的维度互相靠近,最后殊途同归地转变为一个个综合服务平台。

微博和微信是最先面临这个问题的一对应用。原本双方的工具属性和用户关系链大致平行,不存在竞争。但随着微信开放公众平台增强媒体属性,就立刻 引发了与微博竞合的论战;而微信选择二维码和财付通试水O2O业务后,新浪微博也立刻启动类似的战略,据传已经与银联达成合作,以解决O2O中最难啃的线 下支付环节。

近期火热的地图应用,百度、高德“不约而同”地选择转型生活服务平台,加入O2O大战。高德更是与新浪微博合作进军LBS社交,开始建立对一个基础平台来说至关重要的账号体系。

社交、LBS、通讯、媒体、O2O……你会发现,所有移动基础平台发展到最终形态,都将具备几乎同样的功能,形成跨维度竞争。

但对浏览器来说,这个过程要艰难得多。从产品功能的使用路径来看,用户在微信、微博中点击或者接受一个商业信息,通过社交关系链传播,最后转移到线下完成支付;地图平台中,用户则是从基于LBS的检索和推送开始,通过社交关系链传播,最后同样转移到线下。

如果将以上步骤转移到浏览器平台上,会发现使用过程极其生硬——你在浏览资讯过程中,

会产生社交和线下购物的需求吗?——就算用户真的有了这种想法,也必须退出正在浏览的页面,在另一个页面中找到相关应用,再通过点击完成需求。这个使用路径远不如身出社交、地图工具的基础平台那样平滑自然。

现在的移动浏览器形态,实质上仍然是PC思路的转移:以链接为核心解析互联网结构。但移动互联与PC互联网最大的区别点就是连接线下,而这一点浏览器和Web应用架构还无法提供。这也导致浏览器平台在与其他移动基础平台的竞争中,不得不处于被动状态。

如果只是做单纯的媒体平台,在其他基础平台都拥有精准信息推送系统的情况下,浏览器平台同样也没有任何明显优势。

这就是移动浏览器面对的“囚徒困境”:单一工具化变现能力有限,可能会错失HTML5的机遇,而平台化又将遭遇操作系统和其他移动平台合力绞杀的风险。

多方博弈中,什么样的产品形态能保证利益的最大化?这是浏览器厂商必须要思考的问题。


    
[3] win8开发(六)——资源 & 本地化
    来源: 互联网  发布时间: 2014-02-18
win8开发(6)——资源 & 本地化
在实际开发中,也许我们需要做这样的界面,可分为两种情况:

1、应用程序具备多语言版本(如中文简体,中文繁体,英文等),用户界面上显示的文本会根据系统

的情况自动套用资源,比如我的系统是简体中文版的,那就使用简体中文的资源文件中的内容。

2、用户可以选择语言如简体中文、繁体中文。根据用户选择的语言,动态加载资源文件中的字符串。

就像我为本文做的这个例子,运行后,默认选中“简体中文”,即页面中的文本显示为简体中文。
 

然后,选择“繁體中文”,这时候,界面上的文本也相应地进行变化。

 

嗯,大致效果就是这样了。
接下来,我们一起来做一做这个实例,通过实例来理解其中的奥妙吧。
1、启动VS 2012,新建一个空页面的应用程序项目(此处省略47个字)。

2、在项目中新建一个文件夹,名为“Strings”,再在这个新文件夹下再建两个文件夹,分别名为

“zh-Hans”和“zh-Hant”,注意,语言限定名不要输错,前者是简体中文,后者是繁体中文。

3、分别在上面建的两个文件夹中各建一个资源文件,文件名按默认即可,Resources.resw。

这方便在代码中引用。(操作方法是在文件夹上右击,从菜单中选择“新建项”,找到“资源文件”)。

如果您的操作无误,现在您的项目资源目录结构就像下图那样。

 

记住,不管你用的是法语,日语,中文还是鸟语,资源文件的名字必须一样,只是放在不同文

件夹下,而文件夹以语言标记命名(如zh-CN),就这么简单, 不要弄错就行了。


4、先打开简体中文zh-Hans下面的资源文件,输入三个项,再打开zh-Hant下面的资源文件,

也输入三个项,记着,键名必须相同,只是值不同罢了,该用什么语言就用什么,牛语言的资

源就输入牛语,用作鸟语的资源就输入鸟语,就像翻译一样。

如下图所示。

 


5、打开MainPage.xaml,布局代码我直接贴,也不解释了。

  • <Page  
  •     x:  
  •     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
  •     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
  •     xmlns:local="using:App2"  
  •     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"  
  •     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"  
  •     mc:Ignorable="d">  
  •   
  •     <Page.Resources>  
  •         <Style x:Key="tbTitle" TargetType="TextBlock">  
  •             <Setter Property="FontSize" Value="20"/>  
  •             <Setter Property="Margin" Value="4,20,0,3"/>  
  •         </Style>  
  •         <Style x:Key="strdisplaytb" TargetType="TextBlock">  
  •             <Setter Property="FontSize" Value="28"/>  
  •             <Setter Property="TextWrapping" Value="Wrap"/>  
  •         </Style>  
  •     </Page.Resources>  
  •       
  •     <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">  
  •         <StackPanel Margin="25">  
  •             <ComboBox x:Name="cbSelectLang" Width="235" HorizontalAlignment="Left">  
  •                 <ComboBoxItem>简体中文</ComboBoxItem>  
  •                 <ComboBoxItem>繁體中文</ComboBoxItem>  
  •             </ComboBox>  
  •             <TextBlock Text="第一项文本:" />  
  •             <TextBlock x:Name="txtbText1" />  
  •             <TextBlock Text="第二项文本:" />  
  •             <TextBlock x:Name="txtbText2" />  
  •             <TextBlock Text="第三项文本:" />  
  •             <TextBlock x:Name="txtbText3" />  
  •         </StackPanel>  
  •     </Grid>  
  • </Page>  
上面的XAML我相信你能看懂的,如果看不懂,说明你很有必要复习一下WPF。

6、打开代码视图(MainPage.xaml.cs),在构造函数中为ComboBox绑定一个事件处理程序。

  • public MainPage()  
  • {  
  •     this.InitializeComponent();  
  •     this.cbSelectLang.SelectionChanged += cbSelectLang_SelectionChanged;  
  • }  
7、cbSelectLang_SelectionChanged方法的代码如下:
  • void cbSelectLang_SelectionChanged(object sender, SelectionChangedEventArgs e)  
  • {  
  •     ComboBox cb = sender as ComboBox;  
  •     if (cb != null)  
  •     {  
  •         string appLanguage = string.Empty;  
  •         switch (cb.SelectedIndex)  
  •         {  
  •             case 0:  
  •                 appLanguage = "zh-Hans";  
  •                 break;  
  •             case 1:  
  •                 appLanguage = "zh-Hant";  
  •                 break;  
  •             default:  
  •                 appLanguage = "zh-Hans";  
  •                 break;  
  •         }  
  •         //更改语言   
  •         ResourceContext rsContext = ResourceManager.Current.DefaultContext;  
  •         rsContext.Languages = new List<string>(new string[] { appLanguage });  
  •         //rsContext.QualifierValues["Language"] = appLanguage;   
  •         //加载资源   
  •         ResourceLoader loader = new ResourceLoader();  
  •         this.txtbText1.Text = loader.GetString("item1");  
  •         this.txtbText2.Text = loader.GetString("item2");  
  •         this.txtbText3.Text = loader.GetString("item3");  
  •     }  
  • }  
设置应用程序的语言可以用上面代码中的
                ResourceContext rsContext = ResourceManager.Current.DefaultContext;
                rsContext.Languages = new List<string>(new string[] { appLanguage });
同时,下面有一行我给注释了。
                //rsContext.QualifierValues["Language"] = appLanguage;
也就是说,两种方法都可以修改首选语言。
一是设置ResourceContext的Languages属性;

二是ResourceContext的QualifierValues是一个字典集合,我们修改其中键为Language的值

也能达到同样效果。


那么,应用程序的资源的URI和结构以及引用资源的标识符是如何分布的呢?且听下回分解。88

5.png (23.63 KB, 下载次数: 0)


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3