定位 Android 权限声明来源
在 Android 开发过程中,排查某个应用权限由哪个第三方依赖库引入是一个常见问题。本文介绍了一种通过 Gradle daemon 日志快速定位权限声明来源的方法。
Gradle daemon 是 Gradle 构建系统的后台进程,其日志文件(位于 ~/.gradle/daemon/ 目录)详细记录了依赖解析和 AndroidManifest.xml 合并过程。通过使用 grep 命令在这些日志中搜索特定权限字符串(如 "android.permission.INTERNET"),可以获取相关记录。查询结果通常能明确指出该权限在哪个依赖库的 AndroidManifest.xml 的哪一行被声明,并显示合并操作的日志行号。
根据日志信息,开发者可以确认权限来源。若需移除不需要的权限,可以在应用的主 AndroidManifest.xml 文件中使用 `