Android培訓—支援不同的平台版本

來源:互聯網
上載者:User

儘管最新的Android版本經常會給的應用程式提供更好的API,但是你還是應該支援較舊的Android版本,一直到更多的裝置更新到新的Android平台。本節課向你介紹如何在利用最新的API的同時繼續支援較舊的版本。

定期更新的Platform Versions表顯示了運行每個Android版本裝置的發布情況,這個表中的資料是基於訪問Google
Play Store的裝置數量來統計的。通常,支援90%左右的活動裝置是一個比較好的選擇,同時你的應用程式還要支援最新的版本。

提示:為了提供更好的功能以及跨幾個Android版本的功能性,你應該在你應用程式中使用Android
Support Library,這樣就可以在較舊的版本上使用最接近的平台版本。

指定最小和目標API等級

AndroidManifest.xml檔案描述了應用程式相關的細節,並標識了它所支援的Android版本。尤其是<uses-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等級的代碼只有在系統上有可用的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屬性,而不必擔心較低版本在遇到這些代碼是會被中斷。例如,如果你設定targetSdkVersion=”11”,預設情況下,你的應用程式在Android3.0以上會包含ActionBar。如果要把功能表項目添加到操作欄,你需要在菜單資源XML中設定android:showAsAction=”ifRoom”。在跨版本的XML檔案中,這樣做是安全的,因為較舊的Android本表只是簡單的忽略showAsAction屬性(也就是說,你不需要一個單獨的res/menu-v11/目錄)

使用平台樣式和主題

Android提供了基於作業系統的外觀和感覺的使用者體驗主題。這些主題可以在資訊清單檔中使用。通過使用這些內建的樣式和主題,你的應用程式會自然的按照最新發行的Android的外觀和感覺來顯示。

讓你的Activity外觀像一個對話方塊:

<activityandroid:theme="@android:style/Theme.Dialog">

讓你的Activity有一個透明的背景:

<activityandroid:theme="@android:style/Theme.Translucent">

使用res/values/styles.xml中自訂的樣式:

<activityandroid:theme="@style/CustomTheme">

要讓一個主題應用於整個應用程式(程式中所有的Activity),就要把android:theme屬性添加到<application>元素中:

<applicationandroid:theme="@style/CustomTheme">

建立和使用主題的更多資訊,請讀樣式和主題指南。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.