Gradle:如何定制Android清单权限?
对于我的构建系统,我需要构建几个应用程序变体,每个应用程序变体请求不同的权限集。如何在不调用单独脚本的情况下使用Gradle实现这一点?我只是通过在Gradle文件中使用不同的风格来实现这一点:Gradle:如何定制Android清单权限?,android,gradle,Android,Gradle,对于我的构建系统,我需要构建几个应用程序变体,每个应用程序变体请求不同的权限集。如何在不调用单独脚本的情况下使用Gradle实现这一点?我只是通过在Gradle文件中使用不同的风格来实现这一点: free { packageName 'com.sample.free' buildConfigField "boolean", "HAS_AD", "true" } paid { packageName 'com.sample.
free {
packageName 'com.sample.free'
buildConfigField "boolean", "HAS_AD", "true"
}
paid {
packageName 'com.sample.paid'
buildConfigField "boolean", "HAS_AD", "false"
}
然后我在src下创建了一个名为“free”的新文件夹,并在该文件夹下创建了一个名为“res”的文件夹
在该文件夹中创建一个新文件“AndroidManifest.xml”,其中包含以下代码:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sample" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
根据Android工具项目网站上的信息:
与构建类型类似,产品风格也会贡献代码和功能
资源通过它们自己的源集
及
处理使用的所有源集时,将使用以下规则
要构建单个APK,请执行以下操作:
- 所有源代码(src/*/java)作为多个文件夹一起使用,生成单个输出
- 所有清单都合并到一个清单中。这允许产品口味具有不同的成分和/或 权限,类似于生成类型
- 所有资源(安卓资源和资产)都使用覆盖优先级,其中构建类型覆盖产品风格,这 覆盖主源集
- 每个构建变量都从资源中生成自己的R类(或其他生成的源代码)。他们之间什么都不分享 变体
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sample" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>