我一直在努力弄清楚这个问题,我相信我之前在Android开发博客或SO上看到过一些关于这个问题的东西,但它目前逃离了我。如果可能的话,我想知道使用单个APK针对不同API级别的最佳方法。
例如,我希望能够利用新的冰淇淋三明治功能和UI模式,但也希望支持姜饼及以下版本。最好的解决方案是用类似的代码库制作不同的项目,但重写特定的功能以使用特定的功能,并在市场上发布多个apk,或者我可以使用一种形式的反射来缩减规模?
任何帮助将非常感激,谢谢!主要是,我想知道是否多个APK一定是坏的,或者如果我最好有一个APK。
这是关于向后兼容性的规范博客文章:http://android-developers.blogspot.com/2009/04/backward-compatibility-for-android.html
ICS -> Gingerbread可以变得复杂,如果你使用自定义主题或想使用片段。
我正在为developer.android.com写一篇文章,详细介绍这一点,但简短的版本是:
-
创建res/values-v11和res/values文件夹。v11文件夹应该包含从
android.theme.Holo
继承的主题,而非v11文件夹应该包含从android.theme
继承的主题。如果你不使用自定义主题,你可以跳过这一步——设置targetSdkLevel
>= 11将为你做所有的魔术。 -
使用支持包在pre-Honeycomb设备上提供Fragment/Loader支持:http://developer.android.com/sdk/compatibility-library.html