簡體   English   中英

在Eclipse和清單中為Android應用選擇API級別

[英]Picking API level for Android app in Eclipse and manifest

我不能完全確定在Eclipse下進行開發時設置API級別時不會犯任何錯誤,因此這里有一些我不確定的示例。

  1. 在Eclipse中開發Android應用程序時,我總是將Eclipse下的BuildProjectTarget和清單中的android:targetSdkVersion設置為最新的可用Android版本。 這種做法正確嗎? 注意:我確實根據項目設置了android:minSdkVersion(通常值為10)

  2. 我知道執行上述操作將在使用android下版本中不可用的某些東西時觸發Eclipse警告,提示不支持的API:minSdkVersion(例如使用不帶支持庫的片段)有一些不值得信任的示例,如果您將發生什么情況使用Gradle / Ant腳本還是手動構建項目?

  3. 如果將BuildProjectTarget和android:targetSdkVersion設置為例如16,然后使用一些不推薦使用的API(如WebView setCertificate())(在API級別17中不推薦使用),將會發生什么。 此方法會在所有設備上運行,還是僅在Android 4.1以下版本上運行,會導致應用崩潰或被忽略?

  4. 我知道Eclipse使用SDK / platforms文件夾中的Java庫android.jar,並且在設備應用程序上鏈接到存儲在設備上的該庫時,但我沒有得到的是android手機上存在該庫的多個版本,或者只有一個(該Android版本的最新版本)? 還在這個版本的framework.jar中扮演角色嗎?

  5. 當您使用類似google_play_services之類的庫時,庫會怎樣? 這些是否打包到apk中或引用了設備上已經存在的庫? 我知道,當您使用Facebook SDK時,罐子會打包成apk,但不知道這些Google庫是否有所不同?

  1. 是的,此做法是正確的,並且已完成以確保支持最新的android版本。

  2. 當您設置minSdkVersion時,這是您的應用程序將支持的最低版本的Android,使用ant / gradle進行編譯將在您為較舊版本的API級別使用較新api級別引入的方法時顯示錯誤。

  3. 棄用意味着這是另一種方法替換了該方法,並且該方法將從Android源代碼中刪除,因此鼓勵開發人員不要使用它們。 但是,是的,它們將起作用,直到它們保留在源中為止。

  4. android.jar是android操作系統中包含的方法和東西的依賴項,您可以調用這些東西,不,我不認為framework.jar在其中起作用。

  5. 所有外部庫均被引用並添加到apk中。 但只有一些谷歌的,那些不是主要的。 (看一下gapps軟件包,這將為您提供一些細節。鏈接: http ://goo.im/gapps)

希望我做對了,並幫助您理解。

在Eclipse中開發Android應用程序時,我總是將Eclipse下的BuildProjectTarget和清單中的android:targetSdkVersion設置為最新的可用Android版本。 這種做法正確嗎? 注意:我確實根據項目設置了android:minSdkVersion(通常值為10)

是。 這樣,您可以確保始終使用最新版本的sdk。

我知道執行上述操作將在使用android下版本中不可用的某些東西時觸發Eclipse警告,提示不支持的API:minSdkVersion(例如使用不帶支持庫的片段)有一些不值得信任的示例,如果您將發生什么情況使用Gradle / Ant腳本還是手動構建項目?

只需使用Build.Version.SDK_INT確保較舊的設備不會到達代碼的那部分。 這將為您提供設備的當前SDK。

如果將BuildProjectTarget和android:targetSdkVersion設置為例如16,然后使用一些不推薦使用的API(如WebView setCertificate())(在API級別17中不推薦使用),將會發生什么。 此方法會在所有設備上運行,還是僅在Android 4.1以下版本上運行,會導致應用崩潰或被忽略?

不推薦使用的方法將繼續起作用,但是可以使用更好的替代方法。 如果您可以選擇使用更好的替代方法,請使用它。 如果您支持的設備由於舊版本而沒有其他選擇,請繼續使用不建議使用的方法。 if else分支基於Build.Version.SDK_INT值, if else可能必須執行一些操作。

我知道Eclipse使用SDK / platforms文件夾中的Java庫android.jar,並且在設備應用程序上鏈接到存儲在設備上的該庫時,但我沒有得到的是android手機上存在該庫的多個版本,或者只有一個(該Android版本的最新版本)? 還在這個版本的framework.jar中扮演角色嗎?

較新的設備包含較舊設備的代碼。 因此,沒有必要保留對其他版本的引用。

當您使用類似google_play_services之類的庫時,庫會怎樣? 這些是否打包到apk中或引用了設備上已經存在的庫? 我知道,當您使用Facebook SDK時,罐子會打包成apk,但不知道這些Google庫是否有所不同?

jar中的類文件將打包在.apk中。 設備上的Google Play服務使用這些類與您的應用進行通信。

暫無
暫無

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

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