W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
編寫:Lin-H - 原文:http://developer.android.com/training/basics/supporting-devices/platforms.html
新的Android版本會為我們的app提供更棒的APIs,但我們的app仍應(yīng)支持舊版本的Android,直到更多的設(shè)備升級到新版本為止。這節(jié)課程將展示如何在利用新的APIs的同時仍支持舊版本Android。
Platform Versions的控制面板會定時更新,通過統(tǒng)計訪問Google Play Store的設(shè)備數(shù)量,來顯示運行每個版本的安卓設(shè)備的分布。一般情況下,在更新app至最新Android版本時,最好先保證新版的app可以支持90%的設(shè)備使用。
Tip:為了能在幾個Android版本中都能提供最好的特性和功能,應(yīng)該在我們的app中使用Android Support Library,它能使我們的app能在舊平臺上使用最近的幾個平臺的APIs。
AndroidManifest.xml文件中描述了我們的app的細節(jié)及app支持哪些Android版本。具體來說,<uses-sdk>
元素中的minSdkVersion
和targetSdkVersion
屬性,標明在設(shè)計和測試app時,最低兼容API的級別和最高適用的API級別(這個最高的級別是需要通過我們的測試的)。例如:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
...
</manifest>
隨著新版本Android的發(fā)布,一些風格和行為可能會改變,為了能使app能利用這些變化,而且能適配不同風格的用戶的設(shè)備,我們應(yīng)該將targetSdkVersion
的值盡量的設(shè)置與最新可用的Android版本匹配。
Android在Build常量類中提供了對每一個版本的唯一代號,在我們的app中使用這些代號可以建立條件,保證依賴于高級別的API的代碼,只會在這些API在當前系統(tǒng)中可用時,才會執(zhí)行。
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);
}
}
Note:當解析XML資源時,Android會忽略當前設(shè)備不支持的XML屬性。所以我們可以安全地使用較新版本的XML屬性,而不需要擔心舊版本Android遇到這些代碼時會崩潰。例如如果我們設(shè)置
targetSdkVersion="11"
,app會在Android 3.0或更高時默認包含ActionBar。然后添加menu items到action bar時,我們需要在自己的menu XML資源中設(shè)置android:showAsAction="ifRoom"
。在跨版本的XML文件中這么做是安全的,因為舊版本的Android會簡單地忽略showAsAction
屬性(就是這樣,你并不需要用到res/menu-v11/
中單獨版本的文件)。
Android提供了用戶體驗主題,為app提供基礎(chǔ)操作系統(tǒng)的外觀和體驗。這些主題可以在manifest文件中被應(yīng)用于app中。通過使用內(nèi)置的風格和主題,我們的app自然地隨著Android新版本的發(fā)布,自動適配最新的外觀和體驗.
使activity看起來像對話框:
<activity android:theme="@android:style/Theme.Dialog">
使activity有一個透明背景:
<activity android:theme="@android:style/Theme.Translucent">
應(yīng)用在/res/values/styles.xml
中定義的自定義主題:
<activity android:theme="@style/CustomTheme">
使整個app應(yīng)用一個主題(全部activities)在元素中添加android:theme
屬性:
<application android:theme="@style/CustomTheme">
更多關(guān)于創(chuàng)建和使用主題,詳見Styles and Themes。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: