清理未使用的Android权限

Cli*_*iff 41 permissions android lint findbugs

如果我想研究在Android应用中如何以及在哪里使用[Mainfest.xml中的请求]权限以便删除它们是否有一种简单的方法可以做到这一点?lint或findbugs是否为跟踪项目中使用/滥用的权限提供某种支持?

Gab*_*iro 9

我来自未来拯救你的生命.

在这里(将来),LINT会检查是否缺少权限,您可以在LINT检查中看到.

  • 因此,请转到您的AndroidManifest.xml<uses-permission> 使用Android权限删除所有代码(这意味着,不要删除属于您的应用的权限,例如UA_DATAC2D_MESSAGE).
  • 然后运行LINT分析.点击Analyze然后Inspect Code...
  • 看下 Android -> Constant and Resource Type Mismatches
  • 您应该看到所有缺少的权限.
  • 然后,您可以右键单击它们并选择Apply fix "Add Permission".如果选择此选项,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.

  • 哇,这确实非常有趣!谢谢Mr. Future开发人员! (2认同)