在最新版本的Android为app提供很好的新API时,也应该继续支持旧版本的Android直到大部分设备已经更新了。这里将要介绍如何在使用最新API带来的优点的同时继续支持老版本。

DashboardforPlatformVersions会经常更新来展示每个Android版本的活跃设备,是根据访问GooglePlayStore的设备数量统计出来的。整体上,在app支持支持最新的版本同时,支持90%以上的活跃设备是一个很好的体验。

提示:为了在多个Android版本中提供最好的特性和功能,应该在app中使用AndroidSupportLibrary,它可以让你在旧版本上可以使用多个最新版本的API。

指定最低和最高API等级

在AndroidManifest.xml中描述了app的详细信息同时也说明了支持哪些Android版本。特别是<uses-sdk元素中的minSdkVersion和targetSdkVersion属性,他们定义了app能兼容的最低API等级和最高的API等级。

例如:

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

当新版的Android发布后,一些属性和行为可能会改变。为了让app在使用新的属性同时保证app适应每个用户的设备,应该设置targetSdkVersion来指定最高支持的Android版本。

在Runtime时查看系统版本

Android在Build常量类中为每个版本地同了一个唯一的编码。在app中使用这些代码来保证那些依赖高版本的API代码只在这些API可用的时候才执行。

1 private void setUpActionBar() {2     // Make sure we're running on Honeycomb or higher to use ActionBar APIs3     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {4         ActionBar actionBar = getActionBar();5         actionBar.setDisplayHomeAsUpEnabled(true);6     }7 }

注意:在解析XML资源时,Android会忽视当前设备不支持的属性。所以可以很安全的使用新版本才有的新XML属性,不用担心老版本遇到这些代码时会挂掉。例如,如果设置targetSdkVersion="11",app会默认在Android3.0和更高版本中包含ActionBar。然后如果要在actionbar中加菜单项,需要在菜单xml资源中设置android:showAsAction="ifRoom"。在多个版本的xml文件中这样做是安全的,因为就老本的Android会直接忽视showAsAction属性(也就是说,不需要单独版本的res/menu-v11/)。

使用平台样式和主题

Android提供了一些用户体验相关的主题可以让app看起来和系统一样。这些主题可以通过manifest文件应用到app中。通过使用自带的样式和主题,app就会和每个Android系统看起来有一样的样式和感觉。

让activity看起来像一个dialogbox:

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

让activity有一个透明的背景:

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

应用在/res/values/styles.xml中自定义的样式:

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

要把一个样式应用到整个app中(所有的activity),就在<application>元素中增加android:theme属性:

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

更多关于创建和使用样式的信息,查看StyleandThemes。

更多相关文章

  1. 箭头函数的基础使用
  2. NPM 和webpack 的基础使用
  3. Python list sort方法的具体使用
  4. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  5. Android中shape中的属性大全
  6. Android自动测试之benchmark test 简介
  7. Android使用Java的第三方jar注意事项
  8. Android(安卓)开发有哪些新技术出现?
  9. Google:五亿Android设备激活

随机推荐

  1. android DisplayMetrics学习
  2. Android 中处理POWER/HOME流程
  3. 如何解决android NDK r8c 老是重新编译源
  4. C#开发android应用实战 源码
  5. android中The connection to adb is down
  6. 2011.08.15(2)——— android audioManager
  7. android去掉标题的方法
  8. 使用greenDao操作本地数据库,Android9.0读
  9. Android(安卓)开发之Android(安卓)应用程
  10. Android(安卓)Studio 开发,找不到android.