我喜歡在我的應用程序中使用TrafficStats API。問題是 - 我的目標是2.1如何使用2.2功能,如果我的目標是2.1?
它真的是我的應用程序的一個插件,它將在沒有此功能的情況下運行。包含這個並保持應用程序與2.1兼容的方式是什麼?我知道我可以開始維護2個APK,但這是我不想做的事情,似乎很麻煩。有沒有其他方法?
我喜歡在我的應用程序中使用TrafficStats API。問題是 - 我的目標是2.1如何使用2.2功能,如果我的目標是2.1?
它真的是我的應用程序的一個插件,它將在沒有此功能的情況下運行。包含這個並保持應用程序與2.1兼容的方式是什麼?我知道我可以開始維護2個APK,但這是我不想做的事情,似乎很麻煩。有沒有其他方法?
還有別的辦法嗎?
第1步:項目的構建目標定到Android 2.2(或更高,如果你願意的話)
第2步:總結版本後衛塊到Android 2.2特定功能的所有來電:
if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.FROYO) {
// do something only on 2.2
}
第3步:確保你的android:minSdkVersion
是隻要你想低(例如,7的Android 2.1)
第4步:運行偶爾皮棉檢查,以確認您不小心使用的東西p關閉到Android 2.2以外的版本後衛區域
這看起來像一種方式去。現在我參考2.2我只是擔心我可能會意外地使用一些2.2特定的API。你認爲使用條件編譯和切換到2.1來測試編譯將是一個可靠的方法來測試它嗎? – katit
@katit:「我只是擔心我可能意外地使用了一些2.2特定的API」 - 這就是lint進入的地方。如果你這樣做,它會對你大喊大叫。 「你是否認爲使用條件編譯和切換到2.1來進行測試編譯將是一個可靠的測試方法?」 - 我只是使用皮棉。見http://tools.android.com/recent/lintapicheck – CommonsWare
哈..我使用IntelliJ IDEA並注意到很好的驗證和東西。不知道是不是皮棉。似乎我需要做的唯一工作就是運行我的IDE中的「分析代碼」,它將包含lint輸出以及它自己的檢查 – katit
您可以在這裏找到一些解決方案(http://developer.android.com/resources/articles/backward-compatibility.html)。 – Piotr