每次我都會對此產生困惑,我會搜索並且「思考」我理解了它,但是我並沒有太多。構建版本與MinSdk vs targetSdk
有人可以向我解釋您正在構建的API與您在清單中指定的Min SDK以及您指定的目標SDK之間的區別。
例如: 我有一個應用程序,它的minSDK爲8,targetSDK爲15,我構建的是SDK12。有什麼區別?它運行什麼設備?我從這些差異中獲得什麼? 有人請解釋! 謝謝
每次我都會對此產生困惑,我會搜索並且「思考」我理解了它,但是我並沒有太多。構建版本與MinSdk vs targetSdk
有人可以向我解釋您正在構建的API與您在清單中指定的Min SDK以及您指定的目標SDK之間的區別。
例如: 我有一個應用程序,它的minSDK爲8,targetSDK爲15,我構建的是SDK12。有什麼區別?它運行什麼設備?我從這些差異中獲得什麼? 有人請解釋! 謝謝
有什麼區別?
不同之處在於減去兩個數字的結果。但這在這裏並不重要。 :-)
它運行什麼設備?
這取決於你的代碼和其他東西一樣多。但是,它將在API等級7及以下版本上運行,而不是而不是,因爲它們會低於您的minSdkVersion
。 Android設備(和市場)不會允許您的應用程序位於API Level 7和更低的設備上。
我從這些差異中獲益多少!
通過設置12的構建目標,你說的編譯器和編譯工具:「我想通過API等級12使用的API更新比從API級別8,但我答應這樣做以避免舊設備上的這些新API「。當您嘗試使用較新的API而沒有適當的保護(例如,檢查android.os.Build.SDK_INT
)時,構建工具(特別是Lint)會對您大吼。
通過將android:targetSdkVersion
設置爲15,您正在對編譯器和構建工具說:「當我編寫此代碼時,我在考慮API Level 15」。設備新比你的目標可以選擇不同的事情,嘗試更好地仿效的生活回到API級別15
後者是AsyncTask
最好的例子。傳統上,任務可以並行運行。然而,如果你有android:targetSdkVersion
設置爲13或更高,和您是在API級別13或更高的設備上運行,然後任務將默認串行執行。如果您使用API級別13或更高,但android:targetSdkVersion
爲12或更低的設備運行,則設備將回退到舊的行爲,以保持兼容性。
謝謝you.as總是愛你的解釋。如果我想讓我的應用程序在api 8和更高版本上運行而不使用構建工具,那麼我應該怎麼做?建立對8和設置明斯克8,但有targetdk到最高數量? – Snake
@Snake:「好的,如果我想讓我的應用在api 8和更高版本上運行而不使用構建工具,那麼我該怎麼辦?」 - 我不知道「不使用構建工具」是什麼意思。 – CommonsWare
我的意思是沒有使用android.os.Build.SDK_INT,並試圖找出什麼可以工作,什麼不會 – Snake
敏SDK是的最少Android操作系統的API,你的應用程序需要在工作
目標SDK是你的主要目標平臺的版本,這是通常總是比最小值更高。
它不會將設備視爲設備的平臺版本可以更改。
您用來構建自己的應用程序的SDK將定義所有可用的類。我們沒有理由不使用最高可用(目前爲17)
minSDK就是,如圖JoxTraex提到:「原料藥的最少的Android OS設定您的應用程序需要在工作」
targetSDK最高建立你的測試你的應用程序。這將啓用一些功能(Holo,Goodbye Menu按鈕)。這些更改是在新的Android版本中默認引入的,但您應該在清單中寫入這些新功能已經過測試。
謝謝你的回答 – Snake
可能的[目標API和minSDK的目的是什麼]的重複(http://stackoverflow.com/questions/2755598/what-is-the-purpose-of-both-target-api-and-minsdk ) – kabuko
thx爲downvote和沒有它不是重複和該線程已超過2年ago.chances是事情已改變與平板電腦 – Snake
我沒有downvote,但感謝承擔。另外,平板電腦也不會有任何改變。這兩者的含義與過去完全相同。 – kabuko