(一)开始____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指南。

posted @ 2014-07-28 17:28  ╰→劉じ尛鶴  阅读(174)  评论(0)    收藏  举报