在AndroidManifest.xml中uses-sdk內(nèi)屬性意思
在AndroidMenifest.xml中,常常會有下面的語句:
<uses-sdk android:minSdkVersion="4"
android:targetSdkVersion="10"
android:maxSdkVersion="10" />
在default.properties中,會看到下面的語句:
target=android-10
如果是使用Eclipse的話,還可能會看到這樣的警告:
Attribute minSdkVersion (4) is lower than the project target API level (10)
那么,這里面的minSdkVersion、targetSdkVersion、maxSdkVersion、target API level四個數(shù)值到底有什么區(qū)別?
minSdkVersion與maxSdkVersion比較容易理解,就是在安裝程序的時候,如果目標(biāo)設(shè)備的API版本小于minSdkVersion,或者大于maxSdkVersion,程序?qū)o法安裝。一般來說沒有必要設(shè)置maxSdkVersion。
targetSdkVersion相對復(fù)雜一些,如果設(shè)置了此屬性,那么在程序執(zhí)行時,如果目標(biāo)設(shè)備的API版本正好等于此數(shù)值,他會告訴Android平臺:此程序在此版本已經(jīng)經(jīng)過充分測,沒有問題。不必為此程序開啟兼容性檢查判斷的工作了。也就是說,如果targetSdkVersion與目標(biāo)設(shè)備的API版本相同時,運行效率可能會高一些。
但是,這個設(shè)置僅僅是一個聲明、一個通知,不會有太實質(zhì)的作用,比如說,使用了targetSdkVersion這個SDK版本中的一個特性,但是這個特性在低版本中是不支持的,那么在低版本的API設(shè)備上運行程序時,可能會報錯:java.lang.VerifyError。也就是說,此屬性不會幫你解決兼容性的測試問題。你至少需要在minSdkVersion這個版本上將程序完整的跑一遍來確定兼容性是沒有問題的。(這個問題確實讓人頭疼)
在default.properties中的target是指在編譯的時候使用哪個版本的API進行編譯。
綜上,上面的四個值其實是作用于不同的時期:
target API level是在編譯的時候起作用,用于指定使用哪個API版本(SDK版本)進行編譯。
minSdkVersion和maxSdkVersion是在程序安裝的時候起作用,用于指定哪些版本的設(shè)備可以安裝此應(yīng)用。
targetSdkVersion是在程序運行的時候起作用,用于提高指定版本的設(shè)備上程序運行體驗。
這四個數(shù)值在程序編譯時也沒有嚴(yán)格的檢查,比如說,你可以將minSdkVersion設(shè)置的比maxSdkVersion還大,他會自動忽略掉錯誤的maxSdkVersion。
補充:本站還提供了一個關(guān)于Android Manifest功能與權(quán)限的在線查詢表供大家參考查詢:
Android Manifest功能與權(quán)限描述大全:
http://tools.jb51.net/table/AndroidManifest
- Android無需root實現(xiàn)apk的靜默安裝
- Android中獲取apk安裝包信息的方法
- Android實現(xiàn)檢查并下載APK更新、安裝APK及獲取網(wǎng)絡(luò)信息的方法
- Android apk安裝替換卸載廣播的實現(xiàn)代碼
- Android簡單判斷某個APK是否已經(jīng)安裝的方法
- Android編程實現(xiàn)監(jiān)控apk安裝,卸載,替換的方法
- Android模擬器中安裝apk的方法
- Android學(xué)習(xí)筆記之AndroidManifest.xml文件解析(詳解)
- 深入AndroidManifest.xml文件解析詳解
- AndroidManifest.xml配置文件解析
- Android APK應(yīng)用安裝原理解析之AndroidManifest使用PackageParser.parserPackage原理分析
相關(guān)文章
Android RecyclerView下拉刷新和上拉加載更多
這篇文章主要為大家詳細介紹了Android RecyclerView下拉刷新和上拉加載更多,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12
揭秘在ListView等AdapterView上動態(tài)添加刪除項的陷阱
今天遇到這么個需求,需要在運行時動態(tài)添加ListView的item,看起來很簡單,實際操作過程中卻遇到了麻煩,下面揭秘在ListView等AdapterView上動態(tài)添加刪除項的陷阱2016-04-04
基于Android SDK-在64位Linux中使用需要注意的問題
本篇文章是對Android SDK-在64位Linux中使用需要注意的問題進行了詳細的分析介紹,需要的朋友參考下2013-05-05
Android頂部工具欄和底部工具欄的簡單實現(xiàn)代碼
Android頂部工具欄和底部工具欄的簡單實現(xiàn)代碼,需要的朋友可以參考一下2013-05-05
Flutter持久化存儲之?dāng)?shù)據(jù)庫存儲(sqflite)詳解
這篇文章主要給大家介紹了關(guān)于Flutter持久化存儲之?dāng)?shù)據(jù)庫存儲的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者使用Flutter具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
Android App仿QQ制作Material Design風(fēng)格沉浸式狀態(tài)欄
這篇文章主要介紹了Android App仿QQ制作Material Design風(fēng)格沉浸式狀態(tài)欄的實例,同時也給出了4.4版本下實現(xiàn)效果與5.0的對比,需要的朋友可以參考下2016-04-04
Android教你如何發(fā)現(xiàn)APP卡頓的實現(xiàn)
這篇文章主要介紹了Android教你如何發(fā)現(xiàn)APP卡頓的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Android Studio編寫AIDL文件后如何實現(xiàn)自動編譯生成
這篇文章主要介紹了Android Studio編寫AIDL文件后如何實現(xiàn)自動編譯生成,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03

