【发布时间】:2011-09-12 23:06:22
【问题描述】:
我有一个必须与 Android 2.1(Eclair,API 级别 7)兼容的应用程序。我想使用仅受 Android 2.2+ 支持的清单属性(Froyo,API 级别 8)。通常,我不想在我的代码中直接调用(即不通过反射)ANY 8 级 API。
这个问题的公认解决方案是针对 Froyo (API 8) 进行编译,并在 manfiest 中包含一个 uses-sdk 标记以指示向后兼容性:
<uses-sdk android:minSdkVersion="7"/>
需要注意的是,现在我们需要对 Eclair 进行仔细和广泛的测试(通过自动测试和/或手动),以确保我们没有意外使用 Froyo 特定的 API 调用。
在我看来,这几乎不是一个可以接受的解决方案。我强烈倾向于只使用反射来调用高于应用程序基线要求的 API,并且只想支持高于基线的清单设置。有没有办法干净简单地解决这个问题?
我目前的解决方法是删除与基线 API 不兼容的清单条目,并在任何公开发布之前执行测试编译。
感谢您的任何建议!
【问题讨论】: