(一)开始____4、支持多设备——支持多平台版本
负责人:542971618
预计完成时间:7月19日
原文链接:http://developer.android.com/training/basics/supporting-devices/platforms.html
目录[隐藏] |
支持不同平台的版本
虽然最新版本的Android通常会为你的app提供丰富的API,但是,在更多的设备得到系统升级之前,你还是应该让你的app继续支持旧的系统。文章将向你展示如何在充分利用最新API的同时,继续支持旧的Android版本。 通过统计Android设备访问Google Play Store的数量,平台版本面板(Platform Versions)会定期更新数据以展示Android设备运行各个版本系统的分布情况。一般来说,惯用的做法是让你的app支持9成的机型,同时针对新系统制作对应的版本。
提示:为了提供最好的特性以及跨多个Android版本的功能,在你的app中,你应该使用Android的支持库(Android Support Library),它允许你使用最近几个Android版本中的API。
指定最低版本和目标版本API的级别
AndroidManifest.xml描述了有关你的app的详细信息,并同时确定了它支持的Android版本。具体地来说,<uses-sdk/>标签里面的minSdkVersion是指你的app所能兼容的最低版本的API,而targetSdkVersion是指你的app是基于哪一个版本的API设计的。
举个例子来说:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... > <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" /> ... </manifest>
新版本的Android系统中,一些系统风格和用户习惯可能会改变。为了使你的app充分利用这些变化,并确保你的app适应各种设备的风格,你应该使app中targetSdkVersion的值匹配最新版本的Android系统。
设备运行时检查系统的版本
Andorid在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的属性。这样的话,在你的app中,你就可以放心的加入那些只有新系统才会支持的xml属性,而不用担心旧系统遇到这些代码时会出现错误。举个例子来说,如果你将app中的targetSdkVersion的值设定为11,它会在Android 3.0或者更高版本系统中包含ActionBar这个属性。为了将菜单选项添加到ActionBar中,你需要在菜单的xml中设定android:showAsAction="ifRoom"。在跨版本的xml文件中,这样的做法是安全的,原因是老版Android会忽略掉showAsAction属性(也就是说,在res/menu-v11/目录下不需要一个单独的版本)。
使用平台的风格和主题
Android给用户提供了可供体验的主体效果,这些由底层操作系统带来的视觉体验会表现在app上。通过使用这些内置的风格和主题,你的app就会向用户展现最新版本的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中所有activities的主题,在<application>标签中添加android:theme属性:
<application android:theme="@style/CustomTheme">
想了解更多关于创建和使用theme的信息请参阅Styles and Themes指南。

浙公网安备 33010602011771号