Android学习路线(十九)支持不同设备——支持不同(Android)平台版本号
當最新的Android版本號為你的應用提供著非常棒的APIs時。你卻要在很多其它的設備更新之前繼續支持老的系統版本號。這篇課程怎樣在繼續支持低版本號的系統的情況下使用新版本號的高級API。
Platform Versions?儀表板展示了最新的活躍設備上執行的Android系統版本號的分布。基于設備訪問Google Play商店的次數。
通常情況下,支持90%的活躍設備同一時候使用最新版本號作為target是一個好習慣。
貼士:?為了在不同的Android版本號上提供最好的特性和功能,你應該在你的應用中使用Android Support Library?,它可以同意你在老版本號的系統上使用一些近期版本號的APIs。
指定最小以及目標API級別
AndroidManifest.xml?文件描寫敘述了你的應用的詳情以及它支持的系統版本號。 特別的。<use-sdk元素的minSdkVersion?和targetSdkVersion?屬性分別指定了應用最低兼容的API級別以及你為應用所設計以及測試的最高API級別。
比如:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... ><uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />... </manifest>因為新版的Android系統公布,一些樣式和行為肯能改變。為了同意你的應用利用這些改變而且確保你的應用使用每一個用戶的設備,你須要將targetSdkVersion?的值設置為最低可用的Android版本號。
在執行時檢查系統版本號
Android為每一個平臺版本號在Build?常量類中提供了唯一的標識碼。在你的應用中使用這個標識碼來創建條件確保僅僅有在系統版本號支持的情況下運行高API級別的代碼。
private void setUpActionBar() {// Make sure we're running on Honeycomb or higher to use ActionBar APIsif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {ActionBar actionBar = getActionBar();actionBar.setDisplayHomeAsUpEnabled(true);} }提示:?當解析XML資源時,Android系統會忽略XML屬性不被當前設備支持的情況。因此你能夠安全的使用僅僅支持最新版本號的XML屬性而不用操心在老版本號上會崩潰。
比如,假設你設置targetSdkVersion="11",你的應用在默認情況下再Android 3.0或更高版本號中包括ActionBar。然后要為action bar加入菜單項目。你須要在你的menu下的資源文件里設置android:showAsAction="ifRoom"?。在一個跨版本號的XML文件里這樣做也是全然沒問題的,由于老版本號的Android直接忽略了這個屬性(這種話。你就沒有必要分開創建一個res/menu-v11/文件夾)。
使用平臺的樣式和主題
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">要讓主題應用到整個應用中(全部的activity),在?<application>元素中加入android:theme屬性:
<application android:theme="@style/CustomTheme">很多其它關于創建和使用主題。請參閱Styles and Themes向導。
轉載于:https://www.cnblogs.com/yutingliuyl/p/7202555.html
總結
以上是生活随笔為你收集整理的Android学习路线(十九)支持不同设备——支持不同(Android)平台版本号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FAQ系列 | 几种常见MySQL无法启
- 下一篇: Spring Spring MVC