【Android Developers Training】 13. 支持不同

系统 2060 0

注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。

原文链接: http://developer.android.com/training/basics/supporting-devices/platforms.html


尽管最新版本的Android系统为你的应用提供了大量的API,你仍然应该继续支持较老版本的Android,直到更多的设备更新了系统。这堂课将向你展示应该如何利用新API的同时,还可以继续支持过去的版本。

Platform Versions 中的面板中,会定期地更新所有活跃设备所使用的系统版本的比例,这些信息来自于访问了谷歌应用市场(Google Store Play)的设备。当将你的应用定位于最新版本的Android系统时,支持90%左右的活跃设备是一个值得提倡的好习惯。

Tip:

为了在多个Android版本中都能得到最佳的特性和功能,你应该在你的应用中使用 Android Support Library ,这可以允许你在较旧的版本中,使用一些最近平台的API。

 

一). 指定最低和目标API Level

AndroidManifest.xml 文件中,描述了你的应用的细节,和它所支持的Android版本。特别地, <uses-sdk> 标签中的“ minSdkVersion ”表示了你的应用所能兼容的最低系统版本,而“ targetSdkVersion ”属性字段表示了你的应用是基于哪个版本(最高的)系统进行开发和测试的。

例如:

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

    ...


      
      
        </
      
      
        manifest
      
      
        >
      
    

当一个新的Android系统发布后,一些风格和行为可能会改变。为了使你的应用可以使用这些改变带来的好处,并使你的应用能够在每个用户的设备上适用,你应该将 targetSdkVersion 设置为最新的 Android 系统版本。

 

二). 在运行时检查系统版本

Android为每个系统版本提供了独一无二的系统代号,这些代号是 Build 类中的静态常量。你可以在你的应用中通过使用这些代码,来保证那些依赖于较高API Level的代码仅在系统负荷要求的情况下才会被运行。

      
        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
      
      
        );

    }

}
      
    

Note:

当解析XML资源文件时,Android会将当前设备部支持的XML属性字段忽略。所以你可以放心地使用只在较新的系统版本中才支持的属性字段,而不必担心旧版本当遇到这些字段时应用汇崩溃。例如,如果你设置:“ targetSdkVersion=11 ”,你的应用在Android 3.0或更高的系统平台上使用了默认的Action Bar。然后为了给Action Bar添加菜单项,你需要在你的菜单(menu)XML资源文件中设置:“ android:showAsAction=ifRoom ”。即使是跨版本情况,这样做也是安全的,因为旧版本的Android会直接忽略“ showAsAction ”这个属性字段。(所以,你不需要类似于“ res/menu-v11/ ”这样的文件)

 

三). 使用平台的风格和主题

Andorid提供了和基本操作系统的外观相切合的用户主题。这些主题可以通过清单文件应用到你的系统当中。通过使用这些内置的风格和主题,你的应用可以和新发布的Android系统风格保持一致。

比如,使你的activity看上去像一个对话框:

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

为了使你的activity有透明背景:

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

为了应用你在“ /res/values/styles.xml ”中自定义的主题:

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

为了将一个主题应用到你的整个App中,在 <application> 标签下添加“ android:theme ”属性字段:

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

阅读 Styles and Themes 获得更多关于创建和使用主题的信息。

【Android Developers Training】 13. 支持不同平台版本


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论