歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android Training - 支持不同平台版本

最新版本的Android經常能提供好的API給你的程序,你也必須繼續支持老的版本,直到大部分設備都已經更新。這個課程教你怎麼發揮新版本的優勢,同時能很好的支持老版本。

定期更新的平台版本報表展示了每個android版本下激活設備的分布情況,這個報表是基於訪問Google Play Store的設備統計的。最好的做法是,在支持最新的版本的同時支持90%的激活設備。

提醒:為了在多個版本中提供最好的特征和功能,你需要使用Android Support Library  到你的程序中,它允許你在老版本中使用最新平台的API。

指定最小和目標API級別

AndroidManifest.xml文件描述了程序的詳細資料,這裡可以定義程序可以支持什麼Android版本。元素中的minSdkVersion屬性定義了你的程序兼容的最低API,targetSdkVersion屬性定義了你的程序可以設計和測試的最高API級別。

例如:

  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >  
  2.     <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />  
  3.     ...  
  4. </manifest>  

一個新的版本發布,一些樣式和行為就可以改變。為了能利用這些改變去確保你的程序適用於每個用戶的設備,你應該設置targetSdkVersion值去匹配最新的版本。

運行時檢查系統版本

Android在Build常量類中為每個版本提供了一個唯一的代號。在程序中使用這個代號去判斷支持的版本,確保部分代碼能在更高的版本中被執行。

  1. private void setUpActionBar() {  
  2.     //確保你能在蜂巢或者更高版本中使用ActionBar APIs   
  3.     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {  
  4.         ActionBar actionBar = getActionBar();  
  5.         actionBar.setDisplayHomeAsUpEnabled(true);  
  6.     }  
  7. }  

提示:當解析XML資源時,Android會忽略當前設備不支持的XML屬性。所以你可以安全的使用新版本的XML屬性,而不用擔心老版本會報錯。例如,如果你設置了targetSdkVersion="11",你的程序在Android3.0或者更高版本中默認包含了ActionBar。為了添加菜單項到action bar中,你必須設置android:showAsAction="ifRoom"在menu資源文件中,這樣做是安全的,因為老版本會簡單的忽略這個屬性。(在這裡,你不需要在res/menu-v11中添加一個特別版本)

使用平台的風格和主題

Android提供了一些主題給程序使用,讓程序看上去更像基本的操作系統。這些主題可以在你的manifest文件中設置。使用了這些樣式和主題,你的程序將會很自然的展現在最新版本的系統中。

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

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

讓你的activity有半透明的背景:

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

使用你自己定制在/res/values/styles.xml中的主題:

 android:theme="@style/CustomTheme">

讓你整個程序(所有activity)使用一個主題,在元素中添加android:theme屬性:

 android:theme="@style/CustomTheme">

了解更多創建和使用主題的知識,可以看這裡: Styles and Themes

Copyright © Linux教程網 All Rights Reserved