我正在開發一個android應用程序,並且擔心我們引入的代碼使用的API級別比其minSdkVersion
晚。自動檢查是否違反了android:minSdkVersion
我想知道是否有任何方法來自動檢測這些違規行爲。
在這個應用程序的AndroidManifest.xml
文件,它規定:
<uses-sdk android:minSdkVersion="8"
android:targetSdkVersion="17" />
NDK,版本是似乎是給我這個警告(或者是該警告的另一個原因是?):
Android NDK: Found stable platform levels: 14 3 4 5 8 9
Android NDK: Found max platform level: 14
Android NDK: Parsing ./jni/Application.mk
Android NDK: Found APP_PLATFORM=android-17 in ./project.properties
Android NDK: Adjusting APP_PLATFORM android-17 to android-14 and enabling -fPIE
/android-ndk/build/core/add-application.mk:128: Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml
雖然我知道任何工具不可能是100%準確的,由於運行時的調度,除了:
- 全AU的運行的minSdkVersion一個設備上的所有的代碼路徑一個完整的測試(在這種情況下機器人-8 = 2.2 = Froyo的)的源代碼的DIT,或
...有棉絨狀工具,構建設置更改還是其他任何可用於識別至少最明顯/明顯違規的內容?
如果沒有這樣的事情存在,是否有一個全面的API列表或將使審計更容易?
,我想我也許可以設定目標回'Android的8'和它可能會產生編譯器警告或錯誤的不可用的功能,但似乎並沒有工作 - 「android list targets」不顯示8可用,儘管它似乎被標記爲安裝在「android」下。我可能會很快考慮在某個時間點尋找並安裝較早版本的SDK和NDK,但認爲在此期間值得諮詢stackoverflow人羣的智慧。 – leander 2013-02-08 23:03:11
大部分的關注點都放在了SDK上 - Lint會告訴你關於你使用的東西比你的'minSdkVersion'更新的情況。不過,NDK目前可能缺乏這種東西。 – CommonsWare 2013-02-08 23:05:51
我剛剛發現'[javac]注意:用-Xlint重新編譯:deprecation for details.'這可能是我需要的... – leander 2013-02-08 23:07:05