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