如何确定已弃用的权限?

Dek*_*kel 5 java permissions android manifest deprecated

我正在开发一个具有庞大源代码库的Android应用程序.我不喜欢它,我的应用程序不需要一些权限,我开始怀疑有一些已被弃用,不再需要.

问题是 - 如何确定是否,以及哪些确实已弃用?

我试图删除可疑权限并重新编译它(使用Eclipse Juno),并希望编译后将其标记为错误或警告,但事实并非如此.

还尝试在代码上显式运行Lint,它也没有检测到它.

应用程序在设备上编译并运行,我想当在某些代码流中调用相关的API时,会在AccessDenied中引发运行时异常.

有没有有效的方法来检测该API,而无需浏览所有源代码或在多种情况下运行应用程序?

谢谢!

Geo*_*its 0

不幸的是,简短的回答是否定的。没有自动方法来检测它。唯一经过尝试且真实的方法是一一删除权限并进行测试,或者单步执行代码进行检查。

不过应该有。我怀疑编写一个读取项目代码并确定所需权限的脚本并不难。最困难的部分是使其与 API 更改保持同步。