2013-06-24 87 views
11

我知道這個問題有很多,我也讀了這個page。但是,我仍然對確切的選擇感到困惑。什麼值設置:「最低要求SDK」,「目標SDK」和「編譯」

如果我有一個運行Android的2.3.6

我知道Minimum Required SDK應該是最低版本的Android,我的應用程序支持手機。 因此,例如,我會選擇較值Android 2.2以下,說Android 1.5


混亂的部分Target SDKCompile with

我有這下面安裝:(沒有在SDK管理器沒有Android 2.3.6提供)

的Android 4.2.2(API 17)
的Android 3.0(API 11)
的Android 2.3.3(API 10)
Android 2.2(API 8)

Target SDK應該設置爲最大值,即Android 4.2.2,而不管我的手機使用什麼;這是Android 2.3.6

選擇Android 4.2.2會覆蓋下面的所有電話嗎?是對的嗎?

或者

難道應該被設置爲精確/最接近的值作爲我的手機。這裏可用的是Android 2.3.3?但不超過我的手機Android 2.3.6


Compile with必須設置爲最大Android 4.2.2還是什麼?

回答

6

目標SDK是否應該設置爲Android 4.2.2, 的最大值,而不管我的手機使用什麼;這是Android 2.3.6?

這取決於你,但它始終建議使用最新的sdk作爲目標。

它只是說應用程序將在最小和目標sdk之間工作,但僅針對目標sdk進行測試,因此如果有任何兼容的設置系統必須處理它。

選擇Android 4.2.2會覆蓋下面的所有手機嗎?是對的嗎?

您的應用程序始終涵蓋從Min-SDK到Max-SDK。如果Min-SDK是1並且Max-SDk沒有設置,那麼你的應用程序支持所有的API。

它應該設置爲我的手機的確切/最接近的值。這裏的 可用一個是Android 2.3.3?但不超過我的手機Android 2.3。6

必須是最新的SDK

是必須設置爲最大的Android 4.2.2或編譯什麼?

它只是你選擇哪個SDK來編譯你的應用程序。但最好使用目標SDK,而目標SDK又是最新的。

+3

「您的應用程序只涵蓋從Min-SDK到Target-SDK」不正確。應用程序可以在運行在比目標SDK更高API級別的設備上安裝和運行。你只是沒有從最近的API級別獲得所有的好東西,並且可能會使用一些向後兼容模式 – laalto

+0

你能解釋更多關於Compile with嗎? – mavis

0

我一直將我的Compile with設置爲與Target SDK相同。

目標應該是你已經測試和架構你的應用程序來處理。隨着Android的發展,API行爲可能會發生變化,如默認AsyncTask的串行/並行/串行屬性(請參閱:Running multiple AsyncTasks at the same time -- not possible?http://commonsware.com/blog/2012/04/20/asynctask-threading-regression-confirmed.html),這取決於您的應用的目標API和設備API。那麼有趣的時刻讓我們發現它。

此外,各種API也會折舊,因此使用最新的API強制您只使用當前維護的內容。

相關問題