有没有办法使用Android 2.1 / 2.2中的function,同时保持minSDK版本为3?

我有一个刚刚使用Android 1.5进行编程的项目,但随着Android 2.2中的其他手机和一些很酷的function的激增,我们希望支持这些function,而不会失去对1.5的支持,或者分支新的代码库。 是否可以使用Android SDK?

我确实有一些“丑陋的”方法来执行它,例如保持相同的代码基础,但是有一个构build系统,为平台构build不同的版本,并保留不同的Java文件在哪个版本被select。 我希望别人已经解决了基于在多个Android版本上运行的市场上的许多版本的应用程序的问题。

Solutions Collecting From Web of "有没有办法使用Android 2.1 / 2.2中的function,同时保持minSDK版本为3?"

我们希望支持这些function,而不会失去对1.5的支持或者分支新的代码库。 是否可以使用Android SDK?

当然。 技术已经有大约十年左右的时间了。

选项1:在运行时使用reflection来访问新类(或现有类的新方法)。 看这里的例子。

选项2:使用条件类加载,通过创build一个接口加两个实现(一个用于较旧的API,一个用于较新的API),并在运行时加载正确的实现。 由于较新的实现不会在较旧的设备上加载,所以较新的实现使用旧设备所缺less的类或方法的事实不会造成问题。 看这里的例子。