如何在我的应用中搜索不兼容的Android API用法

时间:2012-12-14 19:53:14

标签: android-sdk-tools

假设我已按如下方式设置Android应用程序的AndroidManifest.xml:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"/>

我感兴趣的是如何扫描我的源代码以调用不属于我指定的minimimun SDK版本的Android API,在此示例中是API级别8.这样,我可以检查每个可疑的调用确保它使用反射测试正确包装,或其他一些向后兼容性的保证,以便它不会使旧设备崩溃。理想情况下,我可以将此调用标记为“安全”,以便在后续扫描时不会触发。

例如,假设开发人员在不知情的情况下检查了一些使用DownloadManager的代码,这是一个API等级为9及更高级别的API。由于上面的'uses-sdk'语句,MyApp将在Android 2.2(API Level 8)设备上构建,安装和运行。但是,一旦代码路径在该2.2设备上调用DownloadManager方法,用户将遇到未解决的虚拟方法异常(崩溃)。这就是我要避免的。

理想情况下,在构建期间,我可以从命令行执行扫描这些可能不兼容的API;并且,它可以处理对android:minSdkVersion的更改,而无需进行太多的重组。

1 个答案:

答案 0 :(得分:1)

我很难找到这个,所以我会回答清楚(即使这是一个2岁的问题)。

在Eclipse中,右键单击项目,单击“Android工具”&gt; “运行lint:检查常见错误”。

这将为您提供lint可以在您的代码中找到的所有奇怪的列表,包括您在清单中定义的minSdkVersion的不兼容性(可以在列出“正确性”类别。