我有一个项目只是使用
Android 1.5进行编程,但随着Android 2.2中其他手机和一些很酷的功能的增加,我们希望支持这些功能,而不会失去对1.5的支持或分支新的代码库.是否可以使用Android SDK?
我确实有一些“丑陋”的方法,比如保持相同的代码库,但有一个构建系统,为平台构建不同的版本,并保持不同的Java文件在我们的基于构建的基础上添加选择哪个版本.我希望有其他人根据市场上运行多个Android版本的许多应用程序版本解决了这个问题.
解决方法
we’d like to support the features
without losing support for 1.5 or
forking a new code base. Is it
possible to do with Android SDK?
当然.这些技术已经存在了大约十年左右.
选项#1:使用反射在运行时访问新类(或现有类的新方法). See here for an example.
选项#2:使用条件类加载,通过创建一个接口和两个实现(一个用于较旧的API,一个用于较新的API),以及在运行时加载正确的实现.由于较新的实现不会加载到较旧的设备上,因此较新的实现使用旧设备缺少的类或方法这一事实不会造成问题. See here for an example.