android开发实战系列(14)-- 不同平台版本支持

虽然最新版本的Android通常会为你的app提供丰富的API,但是,在更多的设备得到系统升级之前,你还是应该让你的app继续支持旧的系统。文章将向你展示如何在充分利用最新API的同时,继续支持旧的Android版本。 通过统计Android设备访问Google Play Store的数量,平台版本面板(Platform Versions)会定期更新数据以展示Android设备运行各个版本系统的分布情况。一般来说,惯用的做法是让你的app支持9成的机型,同时针对新系统制作对应的版本。

提示:为了提供最好的特性以及跨多个Android版本的功能,在你的app中,你应该使用Android的支持库(Android Support Library),它允许你使用最近几个Android版本中的API。

Specify Minimum and Target API Levels

AndroidManifest.xml描述了有关你的app的详细信息,并同时确定了它支持的Android版本。具体地来说,<uses-sdk/>标签里面的minSdkVersion是指你的app所能兼容的最低版本的API,而targetSdkVersion是指你的app是基于哪一个版本的API设计的。

举个例子来说:

   
   
  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
  2. <uses-sdk android:minSdkVersion"15" />
  3. ...
  4. </manifest>
新版本的Android系统中,一些系统风格和用户习惯可能会改变。为了使你的app充分利用这些变化,并确保你的app适应各种设备的风格,你应该使app中 targetSdkVersion 的值匹配最新版本的Android系统。

Check System Version at Runtime

Andorid在Build常量类中给每个平台都提供了一个独特的代码。它用于检测当前系统版本是否为最新版本或者更高,如果是的话,就可以使用新系统提供的API;否则就会无法使用。

   
   
  1. private void setUpActionBar() {
  2. // Make sure we're running on Honeycomb or higher to use ActionBar APIs
  3. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
  4. ActionBar actionBar = getActionBar();
  5. actionBar.setDisplayHomeAsUpEnabled(true);
  6. }
  7. }

注:解析xml资源时,Android会忽略掉当前设备不支持的xml的属性。这样的话,在你的app中,你就可以放心的加入那些只有新系统才会支持的xml属性,而不用担心旧系统遇到这些代码时会出现错误。举个例子来说,如果你将app中的targetSdkVersion的值设定为11,它会在Android 3.0或者更高版本系统中包含ActionBar这个属性。为了将菜单选项添加到ActionBar中,你需要在菜单的xml中设定android:showAsAction="ifRoom"。在跨版本的xml文件中,这样的做法是安全的,原因是老版Android会忽略掉showAsAction属性(也就是说,在res/menu-v11/目录下不需要一个单独的版本)。

Use Platform Styles and Themes

Android给用户提供了可供体验的主体效果,这些由底层操作系统带来的视觉体验会表现在app上。通过使用这些内置的风格和主题,你的app就会向用户展现最新版本的Android体验。

让你的activity看起来像一个对话框:

   
   
  1. <activity android:theme="@android:style/Theme.Dialog">

让你的activity拥有一个透明的背景:

   
   
  1. <activity android:theme="@android:style/Theme.Translucent">

申请你要定制的主题,会在/res/values/styles.xml中定义:

   
   
  1. <activity android:theme="@style/CustomTheme">

申请一个应用到你的app中所有activities的主题,在<application>标签中添加android:theme属性:

   
   
  1. <application android:theme="@style/CustomTheme">
想了解更多关于创建和使用theme的信息请参阅 Styles and Themes 指南。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值