注:本文翻译自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获得更多关于创建和使用主题的信息。

最新文章

  1. Hadoop技巧(02):时间同步
  2. 欢迎来到Joyful Physics博客
  3. Java BigDecimal
  4. linux中配置NTP基本操作
  5. jQuery 一些小技巧
  6. iOS多语言备选机制
  7. Linear Regression
  8. 普通用户开启AUTOTRACE 功能
  9. [转载]在網頁上加入HTML5 的Video Tag,直接播放MP4、OGG…等
  10. poj 3687 Labeling Balls(拓扑排序)
  11. jQuery库冲突解决办法
  12. 【java】TreeSet、Comparable、Comparator、内部类、匿名类
  13. KFold,StratifiedKFold k折交叉切分
  14. Ubuntu 14.04 安装配置备忘录
  15. linux 校准时间方法
  16. Java 内存监控(一)之 jps命令
  17. Balanced Numbers (数位DP)
  18. Java如何显示一年的周数?
  19. logging的使用
  20. PhoneGap开发不可或缺的五件装备

热门文章

  1. vue之nextTick全面解析
  2. 拖拽系列二、利用JS面向对象OOP思想实现拖拽封装
  3. mongodb新人扫盲
  4. 1.各个浏览器内核?经常遇到的浏览器兼容性有哪些?解决办法?常用的hack技巧?
  5. Python装饰器实现几类验证功能做法
  6. 【转】一分钟内检查Linux服务器性能
  7. git常用命令记录
  8. jmeter将参数值写入到指定文件
  9. 7.java 加解密技术系列之 AES
  10. C语言之变量和数据类型