2012-06-01 55 views
1

所以我前一段時間寫了一個Android應用程序,我試圖更新它。我想要在代碼部分構建,如果他們所使用的手機低於3.0,則以某種方式做某件事,否則以另一種方式做。Android目標SDK版本和手機

我的構建目標在project.properties文件中設置爲11,但它似乎仍然在Android版本< 3.0上運行?這是正常的嗎?我會在某個時候看到一些崩潰嗎?一切似乎正在工作...我的minSDKVersion是8,但是當我在Android 2.3.3上運行Android 3.0代碼時運行此應用程序?

回答

0

我想我有一個愚蠢的時刻。 如果我將我的minSDK設置爲8,那麼比8更新的東西應該可以正常工作。 如果我將構建目標設置爲11,然後在運行比11更早的SDK的手機上運行比8更新的任何代碼之前進行檢查,那麼應該涵蓋所有基礎。

我剛剛有點困惑,當我與targetSDK和minSDK搞亂

感謝您的意見。

1

它將在平臺上運行良好,早在API級別8,因爲這就是您的minSdkVersion。但是,如果您嘗試調用在第11級或更高版本中引入的任何API,它將在較早的(11之前)平臺上崩潰。爲了避免這種情況,您應該在調用任何此類方法之前在運行時檢查操作系統版本。有關如何執行此操作的建議,請參閱Retrieving Android API version programmatically

1

當接近這種發展時,通常最好從較低的API開始工作。每次完成API的工作版本時,確保它在無錯誤的情況下編譯,然後移動到下一個級別。如果你是targetSdkVersion和你的minSdkVersion不同,清單會警告你;然而,這主要是爲了確保你小心不要從更高級的API中調用方法。一個有用的解決辦法可能是:

private static int getApiLevel() { 
      return Integer.parseInt(android.os.Build.VERSION.SDK); 
    }