我有一个必须与Android2.1兼容的应用程序(Eclair,API级别7)。我想使用一个清单属性,它只支持Android 2.2+ (Froyo,API级别8)。通常,我不希望从代码中直接调用(即,不通过反射)任何级别8的API。
该问题的公认解决方案是针对Froyo (API 8)进行编译,并在manfiest中包含一个uses标记,以指示向后兼容性:
<uses-sdk android:minSdkVersion="7"/>现在我们需要对Eclair进行仔细和广泛的测试(通过自动测试和/或手动测试),以确保我们没有意外地使用Froyo特定的API调用。
在我看来,这是一个难以接受的解决办法。我非常喜欢只使用反射来调用高于应用程序基线需求的API,并且只希望支持高于基线的清单设置。有没有任何方法来清洁和简单地解决这一问题?
我目前的解决办法是删除与基线API不兼容的清单条目,并在任何公共版本发布之前执行测试编译。
谢谢你的建议!
发布于 2013-12-24 08:40:16
这是你现在能做的最好的了。
这也适用于在布局文件中使用不受支持/不推荐的属性。您不可能在Manifest文件或任何其他资源文件中添加条件。
但是,我不认为这是个大问题,至少现在是这样,因为从现在开始,你会看到大多数用户转向最新版本(4.0及以上)。
https://stackoverflow.com/questions/7395063
复制相似问题