我知道这个问题已经回答了HERE,但是不久之前,由于没有给出好的答案而且可能已经改变了,我会再次提出问题:
是否有某些工具或IDE plugin
分析源代码或APK
以查看是否在应用中的任何位置使用了权限。有很多库,以及相当大的项目,所以删除一些权限并在应用程序上运行smoke test
是不明智的,因为它可以在一些微妙的地方使用。
例如,我不知道为什么我们有权限READ_SMS
,但是如果我们删除它,因为没有明显的用途,它可能会导致崩溃。
答案 0 :(得分:1)
LINT会检查您是否在LINT checks上看到了丢失的权限。
AndroidManifest.xml
并使用Android权限删除所有代码<uses-permission>
(意味着,请勿删除属于您应用的权限,例如{{ 1}}和UA_DATA
)。C2D_MESSAGE
,然后点击Analyze
Inspect Code...
Android -> Constant and Resource Type Mismatches
。如果选择此选项,Android Studio将为每个错误包含一个权限。因此,您最终会在Manifest文件中获得相同权限的多个副本,只需删除重复项即可。你也可以手动完成。以下是LINT规则的说明:
ID ResourceType
描述
此检查查看已使用各种支持注释(例如RequiresPermission或UiThread)注释的Android API调用,并标记未按注释指定的任何未正确使用API的调用。此检查标记的错误示例:
- 将错误类型的资源整数(例如R.string)传递给期望不同类型的API(例如R.dimen)。
- 忘记在需要它的方法中调用重写方法(通过super)
- 调用需要权限的方法,而无需在清单中声明该权限
- 将资源颜色引用传递给需要RGB整数值的方法。
......还有更多。有关详细信息,请参阅http://developer.android.com/tools/debugging/annotations.html
上的文档
我正在使用Android Studio 2.1.2。