商道 王凯,花心总裁的逃妻,陆家嘴四季酒店
APK文件只能包含一个AndroidManifest.xml文件,但Android Studio项目可以包含多个文件(通过buildSrc、导入的库引入)。因此,在构建应用时,Gradle构建会将所有清单文件合并到一个封装的APK的清单文件中。
清单合并工具
可以互相合并的基本清单文件,合并优先级如下(优先级由高到低):
重要说明:build.gradle文件中的构建配置将替换合并清单文件中的任何对应属性。如build.gradle文件中的minSdkVersion将替换
合并工具行为: 重点:清单合并不依赖默认属性值。因此,应该按照期望明确定义每个属性。(每个属性的默认值都会记录在Manifest reference:) 可以针对整个元素或者只对元素中的特定属性应用标记。
隐式权限:允许应用在无权限的情况下继续访问特定API,前提是应用的targetSdkVersion设置为低于添加限制的SDK版本的值。 原则: 合并工具可以添加至合并清单的权限列表: 具体合并策略: 检查清单合并冲突:在Android Studio中打开AndroidManifest.xml文件,单机编辑器底部的 Merged Manifest选项卡。合并冲突启发式算法
合并规则标记
所以标记都属于Android tools命名空间,因此必须现在<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp"
xmlns:tools="http://schemas.android.com/tools">
节点标记:
属性标记:
标记选择器:
隐式系统权限
低优先级清单声明
添加至合并清单的权限
targetSdkVersion是3或者更低
WRITE_EXTERNAL_STORAGE, READ_PHONE_STATE
targetSdkVersion是15或者更低,并且使用READ_CONTACTS
READ_CALL_LOG
targetSdkVersion是15或者更低,并且使用WRITER_CONTACTS
WRITE_CALL_LOG
总结
合并策略:通过合并规则标记设置。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android studio开发小型对话机器人app(实例代码)
Android通过Java sdk的方式接入OpenCv的方法
Android 通过cmake的方式接入opencv的方法步骤
Android Studio finish()方法的使用与解决app点击“返回”(直接退出)
Android 进度条 ProgressBar的实现代码(隐藏、出现、加载进度)
网友评论