美文网首页Android进阶
Android适配(三)适配不同的系统版本

Android适配(三)适配不同的系统版本

作者: 一叶枫飘 | 来源:发表于2017-11-03 14:49 被阅读0次

新的Android版本会为我们的app提供更棒的APIs,但我们的app仍应支持旧版本的Android,直到更多的设备升级到新版本为止。这节课程将展示如何在利用新的APIs的同时仍支持旧版本Android。

Platform Versions的控制面板会定时更新,通过统计访问Google Play Store的设备数量,来显示运行每个版本的安卓设备的分布。一般情况下,在更新app至最新Android版本时,最好先保证新版的app可以支持90%的设备使用。

注:为了能在几个Android版本中都能提供最好的特性和功能,应该在我们的app中使用Android Support Library,它能使我们的app能在旧平台上使用最近的几个平台的APIs。

1.指定最小和目标API级别

AndroidManifest.xml文件中描述了我们的app的细节及app支持哪些Android版本。具体来说,<uses-sdk>元素中的minSdkVersion和targetSdkVersion 属性,标明在设计和测试app时,最低兼容API的级别和最高适用的API级别(这个最高的级别是需要通过我们的测试的)。例如:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
    <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
    ...
</manifest>

随着新版本Android的发布,一些风格和行为可能会改变,为了能使app能利用这些变化,而且能适配不同风格的用户的设备,我们应该将targetSdkVersion的值尽量的设置与最新可用的Android版本匹配。

2.运行时检查系统版本

Android在Build常量类中提供了对每一个版本的唯一代号,在我们的app中使用这些代号可以建立条件,保证依赖于高级别的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属性,而不需要担心旧版本Android遇到这些代码时会崩溃。例如如果我们设置targetSdkVersion="11",app会在Android 3.0或更高时默认包含ActionBar。然后添加menu items到action bar时,我们需要在自己的menu XML资源中设置android:showAsAction="ifRoom"。在跨版本的XML文件中这么做是安全的,因为旧版本的Android会简单地忽略showAsAction属性(就是这样,你并不需要用到res/menu-v11/中单独版本的文件)。

3.使用平台风格和主题

Android提供了用户体验主题,为app提供基础操作系统的外观和体验。这些主题可以在manifest文件中被应用于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)在元素中添加android:theme属性:

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

相关文章

  • 屏幕适配

    适配 什么是适配?适应、兼容各种不同的情况 iOS开发中的适配?系统适配针对不同版本的操作系统进行适配屏幕适配针对...

  • Android适配(三)适配不同的系统版本

    新的Android版本会为我们的app提供更棒的APIs,但我们的app仍应支持旧版本的Android,直到更多的...

  • UI基础7 适配

    适配 什么是适配? 适应、兼容各种不同的情况 移动开发中,适配的常见种类 系统适配针对不同版本的操作系统进行适配 ...

  • 基础 (十二) : Autolayout

    适配 什么是适配? 适应、兼容各种不同的情况 移动开发中,适配的常见种类 系统适配 针对不同版本的操作系统进行适配...

  • iOS开发-屏幕适配三种技术(Autoresizing,Auto

    开发中:要进行适配 什么是适配: 适应、兼容不同的情况 常见的适配: 1.系统适配:针对不同版本的操作系统进行适配...

  • Autolayout

    1.屏幕适配 系统适配 什么是适配?适应、兼容各种不同的情况 移动开发中,适配的常见种类系统适配:针对不同版本的操...

  • Android 适配总结

    Android设备多,品牌多,尺寸多,系统版本分布大,碎片化严重。Android的适配包括系统的适配和屏幕的适配等...

  • 屏幕适配

    基本概念 适配 概念:适合兼容各种不同的情况系统适配:针对不同系统版本进行适配屏幕适配:针对不同大小的屏幕尺寸进行...

  • iOS • 记——Autolayout

    适配 什么是适配?适应、兼容各种不同的情况,移动开发中,适配的常见种类,如系统适配,就是针对不同版本的操作系统进行...

  • android sdk 每个版本的名称以及版本号

    背景 开发过程中经常会处理 不同android系统版本的适配问题,今天我们就来看一下 android 系统版本号与...

网友评论

    本文标题:Android适配(三)适配不同的系统版本

    本文链接:https://www.haomeiwen.com/subject/zvstmxtx.html