Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android學習路線(十九)支持不同設備——支持不同(Android)平台版本

Android學習路線(十九)支持不同設備——支持不同(Android)平台版本

編輯:關於Android編程

當最新的Android版本為你的應用提供著很棒的APIs時,你卻要在更多的設備更新之前繼續支持老的系統版本。這篇課程如何在繼續支持低版本的系統的情況下使用新版本的高級API。

Platform Versions 儀表板展示了最新的活躍設備上運行的Android系統版本的分布,基於設備訪問Google Play商店的次數。通常情況下,支持90%的活躍設備同時使用最新版本作為target是一個好習慣。

貼士: 為了在不同的Android版本上提供最好的特性和功能,你應該在你的應用中使用Android Support Library ,它能夠允許你在老版本的系統上使用一些最近版本的APIs。

指定最小以及目標API級別


AndroidManifest.xml 文件描述了你的應用的詳情以及它支持的系統版本。 特別的,minSdkVersion 和targetSdkVersion 屬性分別指定了應用最低兼容的API級別以及你為應用所設計以及測試的最高API級別。

例如:


    
    ...

由於新版的Android系統發布,一些樣式和行為肯能改變。為了允許你的應用利用這些改變並且確保你的應用使用每個用戶的設備,你需要將targetSdkVersion 的值設置為最低可用的Android版本。

在運行時檢查系統版本


Android為每個平台版本在Build 常量類中提供了唯一的標識碼。在你的應用中使用這個標識碼來創建條件確保只有在系統版本支持的情況下執行高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",你的應用在默認情況下再Android 3.0或更高版本中包含ActionBar。然後要為action bar添加菜單項目,你需要在你的menu下的資源文件中設置android:showAsAction="ifRoom" 。在一個跨版本的XML文件中這樣做也是完全沒問題的,因為老版本的Android直接忽略了這個屬性(這樣的話,你就沒有必要分開創建一個res/menu-v11/目錄)。

使用平台的樣式和主題


Android為用戶提供了用戶體驗主題,它賦予應用底層操作系統的界面和感覺。這些主題可以在你的應用的清單文件中被應用。通過設用這些內置的樣式和主題,你的應用就會具有每個發布版本的界面和感覺。

讓你的activity看起來像一個對話框:


讓你的activity背景透明:


應用你的在/res/values/styles.xml中定義的自定義主題:


要讓主題應用到整個應用中(所有的activity),在 元素中添加android:theme屬性:


更多關於創建和使用主題,請參閱Styles and Themes向導。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved