Android Gradle 注入编译变量
最近为了制作 Android 应用打包脚本,学习了一下 gradle。Gradle 构建系统语法简洁、功能强大、配置灵活,笔者只是把它当作一个构建工具来使用,基于它所提供的便利制作可以修改版本号、编译号、id 及导入证书的脚本。
对于一个项目或者一个工程,Gradle 可以定义多个构建任务,debug 和 release 是常见的两个构建任务,用户还可以根据需要自定义自己的构建任务,如测试构建任务和预发布构建任务,甚至是针对不同发布渠道的构建任务。这里只用到 debug 任务。
gradle 命令行支持传入自定义参数,并在编译过程注入这些参数。
修改 appid 及 版本号 修改 build.gradle 文件 android { compileSdkVersion 21 buildToolsVersion '26.0.2' defaultConfig { applicationId project.hasProperty('applicationId') ? applicationId : "com.domain.myApp" minSdkVersion 14 targetSdkVersion 21 versionCode project.hasProperty('versionCode') ? versionCode.toInteger() : 100 versionName project.hasProperty('versionName') ? versionName : "1.0.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } 命令行中传入对应 key 的参数 gradle assembleDebug -PversionCode="200" -PversionName="2.0.0" -PapplicationId="com.domain.myApp.debug" 修改应用 id 的最好同时修改包名,不然会有包名冲突,修改包名需要修改 AndroidManifest.xml 文件,先在 build.gradle 文件中使用 manifestPlaceholders 属性定义一个键: