android版本兼容,高版本低版本兼容性-[Android_YangKe]

 

 

 

在Android系統中版本兼容性比較差,不經過特殊處理 同一個APP很難保證在 各個版本間正常運行。對於有豐富編程經驗的開發者來說,現在做出一個產品可能會很容易,技術也遊刃有餘,但是考慮到兼容性及適配我相信很多開發者還是很頭疼的,所以今天在這裏說一下我常用的解決方法,大家共同進步  也希望朋友們給我點建議及錯誤提醒,我相信通過不斷的學習和努力,自己會像夏天裏的竹子一樣不僅長速快 一節仍比一節硬實(好的質量)--->程序員思維就是沒有Bug      O(∩_∩)O~

 

 

 

官方原文--->特此聲明需要翻牆---> http://developer.android.com/training/basics/supporting-devices/platforms.html

 

新的Android版本會爲我們的app提供更靈活的API,但我們的app仍應支持舊版本的Android,直到更多的設備升級到新版本爲止。這裏將展示如何利用新的API同時仍支持舊版本Android。

 

 

 

 

  • *:Platform Versions 的控制面板會定期更新,通過統計訪問Google Play Store的設備數量,來顯示運行每個版本的安卓設備的分佈。一般情況下,在更新app至最新Android版本時,我們最好先保證新版的app可以支持90%的設備使用。

 

* Note:爲了能在幾個Android版本中都能提供最好的特性和功能,應該在我們的app中使用 Android Support Library,它能使我*們的app能在舊平臺上使用最近的幾個平臺的API。

 

 

 

 

**:指定最小和目標API級別

AndroidManifest.xml 文件描述了我們的程序可以支持哪種版本的設備.通過<uses-sdk>標籤 使用minSdkVersion 、targetSdkVersion 元素(minSdkVersion表示較低版本,targetSdkVersion表示最高支持版本)。

For example :

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

 

 

 

隨着新版本Android的發佈,一些風格和行爲可能會改變,爲了能使app能利用這些變化,而且能適配不同風格的用戶的設備,我們應該將targetSdkVersion的值儘量的設置與最新可用的Android版本匹配。

 


 

 

***:運行時檢查系統版本

Android提供了一個獨特的代碼構建常量類Build爲每個平臺版本。通過它可以獲得我們當前運行程序的版本號,使用它在您的應用程序構建條件,確保同一個APP可以在多版本系統上運行。

 

在我們自己開發應用過程中,常常使用如下的代碼形式判斷運行新API還是舊的API:

<span style="white-space:pre">											</span>// HONEYCOMB 代表 android 版本號的一個常量
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)    
    {	    
            // 包含新API的代碼塊
    }
    else
    {
            // 包含舊的API的代碼塊
    }

 


 

 

 

* Note:當解析XML資源時,Android會忽略當前設備不支持的XML屬性。所以我們可以安全地使用較新版本的XML屬性,而不 

* 需要擔心舊版本Android遇到這些代碼時會崩潰。例如如果我們設置targetSdkVersion="11",app會在Android 3.0或更高時默

* 認包含ActionBar。然後添加menu items到action bar時,我們需要在自己的menu XML資源中設置android:showAsAction="if     

* Room"。在跨版本的XML文件中這麼做是安全的,因爲舊版本的Android會簡單地忽略showAsAction屬性(就是這樣,你並不需

* 要用到res/menu-v11/中單獨版本的文件)。

 

 

 

 

 

 

 

****:使用不同的風格和樣式爲主題

 

使activity看起來像對話框:

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

使activity有一個透明背景:

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

/res/values/styles.xml中自定義主題:

		<activity android:theme="@style/CustomTheme">

統一整個 app 應用主題 我們可以在 AndroidManifest.xml 中添加android:theme屬性:

		<application android:theme="@style/****.Theme">

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章