A. minSdkVersion設置為7,而android sdk用的是4.0,會不會有問題
不會有問題的,由於andrid系統是向下兼容的,也就是說,高版本的SDK會兼容低版本的SDK。
舉例說明:
1. 新建一個 Android Project (HelloAndroid), 指定為 Android 2.2 版本,對應的 minSdkVersion 填8,finish;
2. 此時我們運行 HelloAndroid ,會運行一個 2.2 版本的模擬器。
3. 假若現在去 AndroidManifest.xml 文件 中修改 android:minSdkVersion=7,再次運行,那麼會在已經打開的 2.2 模擬器上運行。因為 Android API 都是向後兼容的,所以系統在編譯時,這個 Project 是利用 2.1 版本來編譯的,但也可以在 2.2 模擬器上運行;若先把 2.2 模擬器關閉,再運行 HelloAndroid 這個Project 的話,那麼會新建一個 API Level=7 的 模擬器來運行這個程序(也就是 2.1模擬器)。
4. 假若修改 android:minSdkVersion=10, 那麼無論是否打開了 2.2 版本的模擬器,都會報錯:
ERROR: Application requires API version 10. Device API version is 8 (Android 2.2).
Launch canceled。
B. android的軟體能向下兼容嗎
當然可以,安卓兼容性很好的
C. 開發一個android程序,可以在不同安卓系統版本的手機上運行嗎
可以的,在新建一個 android project 時,要求輸入 minSdkVersion 這一項,一般我們是指定和我們使用的 SDK 版本相一致的 API Level. 然後,在androidManifest.xml 文件中會有一個對應的屬性:android:minSdkVersion .那這個屬性就決定了本程序最低兼容的android系統版本。
由於andrid系統是向下兼容的,也就是說,高版本的SDK會兼容低版本的SDK
舉例說明:
1. 我們新建一個 Android Project (HelloAndroid), 指定為 Android 2.2 版本,對應的 minSdkVersion 填8,finish;
2. 此時我們運行 HelloAndroid ,會運行一個 2.2 版本的模擬器。
3. 假若我們現在去 AndroidManifest.xml 文件 中修改 android:minSdkVersion=7,再次運行,那麼會在我們已經打開的 2.2 模擬器上運行。因為 Android API 都是向後兼容的,所以系統在編譯時,這個 Project 是利用 2.1 版本來編譯的,但也可以在 2.2 模擬器上運行;若我們先把 2.2 模擬器關閉,再運行 HelloAndroid 這個Project 的話,那麼會新建一個 API Level=7 的 模擬器來運行這個程序(也就是 2.1模擬器)。
4. 假若我們修改 android:minSdkVersion=10, 那麼無論你是否打開了 2.2 版本的模擬器,都會報錯:
ERROR: Application requires API version 10. Device API version is 8 (Android 2.2).
Launch canceled!
D. Android是否有可能出現向下兼容的版本
不用,你可以設置最低適配的sdk版本,低版本可以裝在高版本,高版本不能裝在低版本上,設定最低版本就可以了
E. android問題:那些所謂的向後兼容庫,是不是是說,我能從API LEVEL8開始向上兼容到19,還是只有8—11
安卓的兼容性向後兼容是指高API的功能是能夠兼容低版本的API的。但是只對高於2.0版本的sdk來卓的!低於2.0的要兼容需要用到V4包下的API
F. 怎麼在開發時可以讓Android應用程序支持安裝到SD卡
自從Android 2.2版本開始,Android系統引入了一個全新的功能——APP2SD,這個功能讓Android系統允許將應用程序安裝到SD卡上面,一方面節約出更多的RAM空間,另一方面也允許應用程序擴大自身的體積。
但是僅僅Android系統支持APP2SD,這樣還是不夠的,應用程序如果不經過處理,仍然會一如既往的轉進RAM里。這是因為Android系統保持向後兼容的特性。那麼,如果讓應用程序不裝入RAM,而是裝入SD卡呢?這需要在應用程序的Android清單文件manifest.xml的manifest元素里加入android:installLocation屬性。其值為:perferExtenal或auto。
perferExtental——意味著此應用程序安裝到擴展存儲(通常就是SD卡),但是系統不能保證應用肯定會安裝到擴展存儲。如果擴展存儲沒有空間或者不可用,那麼系統仍然會將應用程序安裝到RAM里。
auto——意味著此應用程序可能安裝到擴展存儲,但是對安裝位置沒有特別偏好,將有系統根據自身演算法,參考很多因素之後決定將此應用程序安裝到哪裡。()
internalOnly——意味著此應用程序只能被安裝到RAM。
一旦加入android:installLocation,不論其值為什麼,用戶都可以將應用程序在RAM和SD卡之間自由移動。當應用程序安裝到SD卡後,需要注意以下幾點:
1. 僅apk文件保存在SD卡上,其他所有用戶的私有數據、資料庫、經過優化的dex文件和釋放的原生代碼仍然保存在RAM上。
2. SD卡里的應用程序在進行安裝時會被加密,因此安裝在SD卡上的應用程序僅對安裝這個應用程序的設備起效,在其他設備上將不能運行。
3. 當用戶啟用USB大容量存儲以共享文件給計算機、或者卸載SD卡,那麼所有安裝在SD卡上的應用都會被立即結束。
由於安裝在SD卡上的應用程序會受到SD卡狀態的影響,所以為了確保應用程序的健壯性,在決定應用程序是否可以安裝在SD卡上時,應該做到以下原則:
1. 有後台服務(Service)的應用程序,不應該支持APP2SD上。因為Service是前台界面不可見的,在卸載SD卡或者啟用USB時,用戶並無法知道該應用程序的Service是否處於活動狀態。所以可能造成Service的意外終止。
2. 輸入法程序不應該支持APP2SD。如果卸載SD或者啟用USB,那麼該輸入法將被終止,並由系統默認輸入法所替代。
3. 壁紙和包含桌面小工具(Widget)等常顯於界面的應用程序不應該支持APP2SD。
4. AccountManager等與用戶數據有關的應用程序不應該支持APP2SD,因為在SD卡正常掛載之前,程序都無法看到通過AccountManager創建的用戶。
如果應用程序有Service、或支持桌面小工具等以上提到的功能時,應該盡可能避免被安裝到SD卡上。一種保險的做法是指定android:installLocation的值為internalOnly。
由於APP2SD是Android 2.2版本的新特性,如果該應用程序被計劃支持2.2之前的版本,做到向後兼容的話,那麼需要進行以下步驟:
1. 在manifest元素里加入android:installLocation屬性,並指定其值為perferExternal或者auto。
2. 指定andorid:minSdkVersion值,其值可以小於8(2.2版本之前)。
3. 更改該應用程序的build target為API Level 8,以使編譯器能編譯此應用程序。(必須)如果不指定build target,那麼舊的Android庫將無法理解android:installLocation屬性,也就無法編譯此應用。
實現以上三個步驟之後,那麼如果此應用被安裝到API Level低於8的設備上時,android:installLocation屬性將被忽略。並且該應用會被安裝於RAM上。
G. android studio 怎麼支持向下兼容android版本
File -> Project Structure -> app -> Flavors
Min SDK version 選擇最低的兼容版本
H. android程序如何設計成向下兼容或者兼容多個android版本系統
android程序不可能實現向下兼容,設計既是如此;高版本中底層的變化,新介面什麼的低版本是支持不了的;要想兼容多個android版本系統,你只能在低版本的系統上開發。