支持不同的平台版本

大部分时候我们需要支持不同的Android平台版本,但是某些特性在低版本的系统上不存在,那么我们就需求根据当前的版本做动态处理,一般来说,我们可以引入支持包来实现我们的功能。

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

在上面的例子中,minSdkVersion表示当前应用最低能安装到的系统版本,targetSdkVersion表示软件开发和调试的最适合版本,假设minSdkVersion=4,targetSdkVersion=22。那么我们不能安装到系统版本为3的系统上,如果安装的系统是[4,21)时,那么说明系统不能很好或者很完全地展示我们的软件特性,但是我们也需要使用支持包实现对应的功能,(支持包能够针对特定版本调用不同的api)。如果系统是22,那么软件运行最优,如果系统是23,那么我们软件也不会应用23的新特性。

虽然大部分时候我们使用支持包可以实现不同版本的兼容性,但是我们有时候也需要自己判断当前版本。

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);
    }
}

上面的例子中,Build.VERSION.SDK_INT 表示,系统的sdk版本。

不同的是,我们在编辑xml属性时,不需要进行版本判断,因为较旧的系统会忽视那些新的xml属性。

我们可以通过设置主题theme来让App跟随系统版本而有不同的展示。

To make your activity look like a dialog box:
<activity android:theme="@android:style/Theme.Dialog">
To make your activity have a transparent background:
<activity android:theme="@android:style/Theme.Translucent">
To apply your own custom theme defined in /res/values/styles.xml
:
<activity android:theme="@style/CustomTheme">
To apply a theme to your entire app (all activities), add the android:theme
 attribute to the [<application>
](https://developer.android.google.cn/guide/topics/manifest/application-element.html) element:
<application android:theme="@style/CustomTheme">
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容