【问题标题】:Android permission clean-upAndroid权限清理
【发布时间】:2015-10-15 06:59:14
【问题描述】:

我知道HERE已经回答了这个问题,但这是不久前的事了,由于没有给出好的答案并且可能已经改变,我会再问一次:

是否有一些工具或IDE plugin 可以分析源代码或APK 以查看权限是否在应用程序中的任何位置使用。有很多库,以及相当大的项目,因此删除一些权限并在应用程序上运行 smoke test 是不明智的,因为它可以在一些微妙的地方使用。

例如,我不知道为什么我们有权限READ_SMS,但如果我们删除它,因为它没有明显的用途,它以后可能会导致崩溃。

【问题讨论】:

  • 我知道我也在原帖上回答了......但除非有可接受的答案,否则它们不能被标记为重复。所以我也在这里回答。一旦答案被接受,我们可以将其中一个问题标记为重复。

标签: android apk android-permissions


【解决方案1】:

如您在 LINT checks 上看到的那样,LINT 会检查缺少的权限。

  • 所以,去你的AndroidManifest.xml并删除所有标签<uses-permission>使用Android权限(意思是,不要删除属于你的应用程序的权限,例如UA_DATA和@987654326 @)。
  • 然后运行 ​​LINT 分析。点击Analyze,然后点击Inspect Code...
  • 查看下方Android -> Constant and Resource Type Mismatches
  • 您应该会看到所有缺失的权限。
  • 然后您只需右键单击它们并选择Apply fix "Add Permission"。如果您选择此选项,Android Studio 将为每个错误包含一个权限。因此,您最终会在清单文件上获得相同权限的多个副本,只需删除重复项即可。您也可以手动完成。

这里是 LINT 规则的描述:

 ID 资源类型

 描述

此检查会查看已使用各种支持注释(例如 RequiresPermission 或 UiThread)注释的 Android API 调用,并标记任何未按照注释指定正确使用 API 的调用。此检查标记的错误示例:

  • 将错误类型的资源整数(例如 R.string)传递给需要不同类型(例如 R.dimen)的 API。
  • 忘记在需要它的方法中调用被覆盖的方法(通过 super)
  • 在未在清单中声明该权限的情况下调用需要权限的方法
  • 将资源颜色引用传递给需要 RGB 整数值的方法。

...还有更多。有关详细信息,请参阅http://developer.android.com/tools/debugging/annotations.html 上的文档


我使用的是 Android Studio 2.1.2。

【讨论】:

    猜你喜欢
    • 2013-08-24
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多