簡體   English   中英

在Android中使用targetSDKVersion有什么影響

[英]What is the effect of using targetSDKVersion in Android

這是Android文檔中關於AndroiManifes.xml文件中uses-sdk元素的targetSDKVersion屬性的摘要。

使用此屬性集,應用程序表示它能夠在較舊版本(低至minSdkVersion)上運行,但已經過明確測試,可以使用此處指定的版本。 指定此目標版本允許平台禁用目標版本不需要的兼容性設置(否則可能會打開以保持向前兼容性)或啟用較舊應用程序不可用的較新功能。

任何人都可以解釋在這種情況下的前向兼容性意味着什么,或者提出可以禁用的“兼容性設置”的例子嗎?

這主要用於說明您支持並適應大型OS跳轉,例如,您可以設計一個可以運行1.6到3.2的應用程序,而不是說目標版本是11+,它可以工作,但在API版本中11及以上,您將在兼容模式下運行,平板電腦將詢問您是否要拉伸或縮放應用以適應屏幕。

如果您將目標版本設置為11,系統將了解您實際上已經做了一些事情來適應該API級別,因此您將不會看到縮放或拉伸的選項,而是只是像它被設計時那樣使用它僅限3.0+

較新的Android版本總是添加了可能無法在“兼容模式”中使用的功能。 即在3.0 Android設備上運行針對2.2的設備將運行“向后兼容”功能,但如果目標是3.0和minSdk版本2.2,將允許在2.2+設備上安裝(向后兼容性打開),但也運行在沒有打開向后兼容性的3.0版本(這就是前向兼容性的含義)。

targetSDKVersion

您正在編譯的版本。 如果您嘗試使用任何較新的api,您將只會遇到編譯器錯誤,因為編譯器不會知道這些api的含義。

的minSdkVersion

您支持的最低sdk版本。 此下方的任何設備都無法從市場上看到或無法安裝您的應用。

請注意,如果您使用目標sdk中的api,它們在較低版本中存在, 則會編譯,但不會起作用並可能導致您的應用崩潰。 因此,您需要在構建代碼時考慮到這一點。

比如做支票就好

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH)
    ... Use ice cream sandwich apis ...

保證API 14之前的用戶不會崩潰。

編輯:

有關從版本到版本的API更改列表,請訪問http://developer.android.com/sdk/index.html

例如,剛剛公布的4.0.3版本中的新內容概述: http//developer.android.com/sdk/android-4.0.3.html

該版本的真正細節: http//developer.android.com/sdk/api_diff/15/changes.html

您可以從minSdkVersion定義不同的targetSDKVersion,這實際上意味着您可以使用targetSDKVersion中SDK的功能,同時您具有向后兼容性。

這可能會考慮您的應用程序的任何代碼部分(例如將C2DM集成到您的應用程序中,甚至將您的應用程序提供給具有Android 2.1但沒有C2DM支持的設備)或清單中(即安裝選項為auto,這將被省略為android 2.1)。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM