您的位置:首页 > 移动开发

APP支持不同的设备 之 支持不同版本的平台

2013-03-17 23:20 411 查看
当最新版本的平台可以为你的APP提供最好的API的时候,你还是需要去支持老版本的平台,直到更多的设备升级到最新的版本。这一节里面讲述如果让你的APP最的利用新平台的API同时也支持好旧的版本。

Platform Versions 的控制平台会定期的更新处于使用状态的android设备的版本分布数据,这个数据是根据访问android play商店的设备数量得出的。一般来说,把你的app的target sdk设置为最新,最好要支持百分之90以上的处于使用状态的设备。

提示:为了在让你的APP在几个android的过度版本上提供最好的特性和功能,你应该在你的APP里面使用Android Support Library ,这个允许你在旧的平台版本上使用最新的几个平台上的API。

指定最小和目标API 版本

AndroidManifest.xml文件里面描述了关于你的APP的细节和你的APP支持的android版本。特别指出的是,
<uses-sdk
minSdkVersion
targetSdkVersion属性指出了你的APP兼容的最低的API版本和你已经测过的的最高的API版本。


例如:


<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
...
</manifest>

在android最新的发布版本上,有些风格和行为已经发生了变化。为了让你的APP利用到新的版本的优势以及保证你的APP去适应新版本的风格,你要把
targetSdkVersion
这个值设置为最新的android 版本。

运行时检测系统版本号

android在
Build 这个类里面提供了唯一的系统版本号的代码。程序可以利用这个代码来建立判断条件,让那些最新的函数,紧紧在可以运行他们的系统版本上运行。


[code]private void setUpActionBar() {
// Make sure we're running on Honeycomb or higher to use ActionBar APIs
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}
}

注意:当解析xml资源的时候,android会忽略那些当前系统不支持的属性。所以你可以在xml文件里面放心的使用那些新版本支持的属性,而不用去担心在老版本上这个属性会出问题。比方说,如果你设置targetSdkVersion="11",你的程序在android3.0或者之上的版本默认包含了
ActionBar。那么给actionbar增加一个menu项,你需要在你的menux
xml资源文件里面设置属性:android:showAsAction="ifRoom" ,这样写,在过度版本里面这个xml文件里面是很安全的,因为老的版本会默认的忽视shouwAsAction这个属性(这样,你就不需要去建立一个资源目录
res/menu-v11/
来区分这个menu了)。


使用平台的风格和主题


android提供了用户体验主题,使你的APP在当前运行的系统下达到好看的外观和舒服的使用感觉。这些主题可以利用manifest文件来应用到的你的app上。利用这些主题和风格,可以使得你的APP很自然的和最新的系统的外观和使用感觉保持一致。


让你的activity看起来想一个对话框:


<activity android:theme="@android:style/Theme.Dialog">


让你的activity背景透明:


<activity android:theme="@android:style/Theme.Dialog">

使用你在
/res/values/styles.xml文件里面自定义的主题:


[code]<activity android:theme="@style/CustomTheme">


为你的整个APP使用某个主题(所有的activity),增加android:theme到<application>标签里面:


<application android:theme="@style/CustomTheme">

想了解更多的关于创建和使用主题的信息,请阅读:Styles and Themes
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: