当最新的Android版本为你的应用提供着很棒的APIs时,你却要在更多的设备更新之前继续支持老的系统版本。这篇课程如何在继续支持低版本的系统的情况下使用新版本的高级API。

Platform Versions仪表板展示了最新的活跃设备上运行的Android系统版本的分布,基于设备访问Google Play商店的次数。通常情况下,支持90%的活跃设备同时使用最新版本作为target是一个好习惯。

贴士:为了在不同的Android版本上提供最好的特性和功能,你应该在你的应用中使用Android Support Library,它能够允许你在老版本的系统上使用一些最近版本的APIs。

指定最小以及目标API级别

AndroidManifest.xml文件描述了你的应用的详情以及它支持的系统版本。 特别的,<use-sdk元素的minSdkVersiontargetSdkVersion属性分别指定了应用最低兼容的API级别以及你为应用所设计以及测试的最高API级别。

例如:

<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级别的代码。

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属性不被当前设备支持的情况。因此你可以安全的使用只支持最新版本的XML属性而不用担心在老版本上会崩溃。例如,如果你设置targetSdkVersion="11",你的应用在默认情况下再Android 3.0或更高版本中包含ActionBar。然后要为action bar添加菜单项目,你需要在你的menu下的资源文件中设置android:showAsAction="ifRoom"。在一个跨版本的XML文件中这样做也是完全没问题的,因为老版本的Android直接忽略了这个属性(这样的话,你就没有必要分开创建一个res/menu-v11/目录)。

使用平台的样式和主题

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">

要让主题应用到整个应用中(所有的activity),在<application>元素中添加android:theme属性:

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

更多关于创建和使用主题,请参阅Styles and Themes向导。

更多相关文章

  1. Android应用坐标系统全面详解
  2. APP如何适配不同的Android版本
  3. Android参考之代号、标签和版本号
  4. 对系统学习与写博客的看法——学完《第一行代码》有感
  5. android:versionCode、android:versionName之实现第一次登陆、版
  6. Android 黑科技之卸载系统应用(卸载流氓软件)
  7. 【Android】使用Intent调用系统其它程序,使用onKeyDown对音量键的
  8. android图形系统详解一:Canvas

随机推荐

  1. Android禁用返回键
  2. Android(安卓)浮点型当小数点后为0时自动
  3. android异步加载图片
  4. Android的SensorEventListener例子(摇晃手
  5. 对话框android
  6. Android修改system只读权限:remount
  7. Android之文件存储
  8. android Fragment + FragmentStatePagerA
  9. android 自动更新apk版本
  10. Android图片圆角处理