[翻译]Android教程-保存数据-支持不同的平台版本

展示 平台版本 的仪表盘会基于浏览过 Google Play Store的设备数量有规律的更新,来展示运行每一种版本Android的激活设备的分布. 一般而言,支持激活设备总数的90%,而将你应用目标指向最新的版本是一个良好的实践.

提示: 为了向一系列的Android版本提供最棒的特性和功能, 你应该在你的应用中使用 Android 支持库, 它能让你可以使用在老版本上使用最新平台的API .

设置最低和目标API级别

AndroidManifest.xml 文件描述了有关你的应用及识别其所支持的Android版本的详细信息. 具体来说, 用于 <uses-sdk 元素的 minSdkVersion 和 targetSdkVersion 属性,确定了你的应用将要兼容的最低级别的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的代码只在这些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 . 此后想ActionBar添加菜单项时,你需要在你的菜单资源XML中设置 android:showAsAction="ifRoom". 在一个多版本的XML文件中这样做是安全的, 因为较老的Android版本会简单地忽略掉 showAsAction 属性 (即不需要在res/menu-v11/有一个分开的版本).

使用平台样式和主题

Android 提供了给予依赖于操作系统的外观的用户体验主题. 这些主题可以在主配置文件manifest中应用于你的app. 借助于这些内置的样式和主题,你的应用随着每一次的新发布自然的跟随最新的外观.

让你的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), 将 android:theme 属性添加到 <application> 元素:

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

更多创建和使用主题的信息,见 样式和主题 指南.

你可能感兴趣的:(android,版本)