为什么我需要AndroidManifest中的权限?

为什么我需要AndroidManifest中的权限?,android,android-manifest,android-gradle-plugin,android-permissions,Android,Android Manifest,Android Gradle Plugin,Android Permissions,我目前正在尝试从我的AndroidManifest中删除所有不需要的权限,我的第一个想法是删除所有权限,看看它是否会在生成或运行时给我一个错误。当我删除了所有这些代码时,我在构建或运行时都没有失败 再深入一点,我发现生成时生成的清单位于/app/build/intermediates/manifest/full/debug/AndroidManifest。清单竟然拥有我删除的几乎所有权限 编辑 我试图询问,如果我将权限从我的AndroidManifest中删除,这是否是一种可接受的做法,我知道在

我目前正在尝试从我的
AndroidManifest
中删除所有不需要的权限,我的第一个想法是删除所有权限,看看它是否会在生成或运行时给我一个错误。当我删除了所有这些代码时,我在构建或运行时都没有失败

再深入一点,我发现生成时生成的清单位于
/app/build/intermediates/manifest/full/debug/AndroidManifest
。清单竟然拥有我删除的几乎所有权限

编辑


我试图询问,如果我将权限从我的
AndroidManifest
中删除,这是否是一种可接受的做法,我知道在生成时将从我的gradle依赖项中合并这些权限。

如果启用gradle中的manifest merging,那么您将从依赖项()中获得所有活动、权限和其他清单标记。您将只需要添加应用程序明确需要的内容。向应用程序清单中添加应用程序所依赖的权限是一种很好的做法,即使这些权限是重复的,因为应用程序依赖项可能会在将来的版本中删除这些权限

我想问,如果我知道将在生成时从gradle依赖项合并的AndroidManifest中保留权限,这是否是一种可接受的做法


从技术上讲,它可以工作,现在也没有什么不好的地方,但正如您不在应用程序
res/drawables
文件夹中保留未使用的资产一样,您的清单应该只列出代码所需的这些权限。

我已经详细阅读了,但谢谢您。我编辑我的帖子是为了让我的问题更清楚。我认为这篇文章总结得很好,但直接回答你的问题:是的,这是一个可以接受的做法。@RobVoisey所以你的应用程序现在取决于一个库,你可以随时根据自己的权限决定替换它。我认为这不是一个好主意。每当该库做了一个小的更改并决定清除它们请求的不必要的权限时,您就有麻烦了。我不明白为什么这样做是可以接受的。@njzk2但是正在将权限添加到生成的清单中,对吗?因此,删除该库意味着下次生成权限时不会添加该权限。