2010-05-26 36 views
7

我有一個剛剛使用Android 1.5進行編程的項目,但隨着Android 2.2中其他手機和一些很酷的功能的激增,我們希望支持這些功能,而不會失去對1.5的支持或爲新的代碼庫分支。是否可以使用Android SDK?有沒有辦法使用Android 2.1/2.2中的功能,同時保持minSDK版本爲3?

我的確有一些「醜陋」的方式來做到這一點,如保持相同的代碼庫,但有一個構建系統,爲平臺構建不同的版本,並保留不同的Java文件基於選擇哪個版本的版本。我希望別人已經解決了基於市場上運行在多個Android版本上的衆多應用程序的問題。

+0

重複http://stackoverflow.com/questions/4968988/what-if-i-want-to-release-an-update-with-higher-minsdk-than-the-one-on-the-市場/ 4969477#4969477 – rds 2011-03-24 17:07:01

回答

6

我們想支持的功能 不失1.5或 派生一個新的代碼庫支持。是否可以使用Android SDK做 ?

當然。這些技術已經存在了大約十年左右。

選項#1:在運行時使用反射來訪問新類(或現有類的新方法)。 See here for an example.

選項2:通過創建接口和兩個實現(一個用於較舊的API,一個用於較新的API)並在運行時加載正確的實現,使用條件類加載。由於較新的實現不會在較舊的設備上加載,因此較新的實現使用舊設備所缺少的類或方法的事實不會造成問題。 See here for an example.

+2

另請注意,對於XML屬性,您可以自由使用它們,舊版本的平臺將忽略它們。例如,您可以針對2.2 SDK進行構建,以使用新屬性來聲明您可以安裝在SD卡上,並且您的應用程序將繼續在較舊的平臺上運行,而無需執行其他任何操作。 – hackbod 2010-05-27 06:25:20

+0

Commonsware,您的另一個例子,PickDemo.java更有助於在API 4及更高版本的API上顯示聯繫人。 – Yar 2012-11-08 09:56:36

+0

@Yar:我不認爲'PickDemo'存在於2010年3月。:-)這裏有一個鏈接:https://github.com/commonsguy/cw-omnibus/tree/master/Contacts/Pick – CommonsWare 2012-11-08 10:33:38

相關問題