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

来源:互联网 发布:软件陷阱 编辑:程序博客网 时间:2024/05/21 14:42

当最新版本的平台可以为你的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-sdkminSdkVersiontargetSdkVersion属性指出了你的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 这个类里面提供了唯一的系统版本号的代码。程序可以利用这个代码来建立判断条件,让那些最新的函数,紧紧在可以运行他们的系统版本上运行。

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文件里面自定义的主题:

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

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

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

想了解更多的关于创建和使用主题的信息,请阅读:Styles and Themes

原创粉丝点击