2010-05-26 56 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

相关问题