Android Studio-强大的gradle用5招教你多渠道打包
来源:互联网 发布:52单片机stc 编辑:程序博客网 时间:2024/04/20 11:42
第一招:使用buildTypes
buildTypes { release { minifyEnabled false debuggable false jniDebuggable false 'proguard-rules.pro' } debug { debuggable true jniDebuggable true versionNameSuffix '.2016041601' } }
- 1.在buildType中可以默认有两种模式,debug和release模式,当然你自己还可以再添加其他模式。
2.下面是buildType中的常用属性
minifyEnabled 混淆处理shrinkResources 去除无用资源signingConfig 签名proguardFiles 混淆配置applicationIdSuffix 增加APP ID的后缀versionNameSuffix 增加versionName的后缀debuggable 是否保留调试信息jniDebuggable 是否保留JNI调试信息
3.还有的属性可以在属性栏里的Build–>Edit Build Types中查看
第二招:使用productFlavors
productFlavors { first { applicationIdSuffix ".first"// applicationId 'com.busterace.multichannel.first' buildConfigField "boolean", "AUTO_UPDATES", "false" manifestPlaceholders = [META_DATA_1 :"first_app", META_DATA_2 :"first_app"] } second { applicationId 'com.busterace.multichannel.second' buildConfigField "boolean", "AUTO_UPDATES", "false" manifestPlaceholders = [META_DATA_1 :"second_app", META_DATA_2 :"second_app"] } third { applicationId 'com.busterace.multichannel' buildConfigField "boolean", "AUTO_UPDATES", "true" manifestPlaceholders = [META_DATA_1 :"third_app", META_DATA_2 :"third_app"] signingConfig signingConfigs.release } }
- 1.在属性栏Build中–>Edit Product Flavor 可以添加多种打包渠道,里面也可以配置一些属性。
- 2.从上图可以看出来defaultConfig也是Flavor中的一个,打包时会优先使用你选择的Flavor配置,如果没有再使用defaultConfig中的配置。
- 3.注意:build type与product flavor 是多对多的关系,也就是说能够打六个不同类型的包,分别是
- first_debug.apk
- second_debug.apk
- third_debug.apk
- first_release.apk
- second_release.apk
- third_release.apk
- 4.在java代码中使用设置的属性:当我们进行build工程的时候,android studio会自动生成BuildConfig.java文件,这样当我们需要使用时就非常方便,下面是使用代码
applicationId.setText("application_id:" + BuildConfig.APPLICATION_ID);
第三招:使用manifest资源占位符
在AndroidManifest中有些属性需要修改,比如友盟的value,测试的与正式的是不一样的,这时候就可以使用资源占位符来替换,注意manifestPlaceholders的写法,尤其是多个的写法!
AndroidManifest文件中
<meta-data android:name="meta_data_1" android:value="${META_DATA_1}"/>
<meta-data android:name="meta_data_2" android:value="${META_DATA_2}"/>
app.gradle文件中的product flavor中来替换资源
first {
manifestPlaceholders = [META_DATA_1 :"first_app",
META_DATA_2 :"first_app"]
}
第四招:使用buildConfigField
- 在第二招里面我们已经可以配置一些属性了,但是有时候还是不能满足我们,不过还是有办法的,我们可以在flavor中使用buildConfigField自己创建想要的属性,注意:里面的三个值缺一不可
first {
buildConfigField "boolean", "AUTO_UPDATES", "false"
}
- 使用的方法和第二招中一样,都是在BuildConfig.java中会自动生成字段,去调用就好
第五招(大招):使用资源覆盖
- 有些资源图片我们也想做到替换怎么办,使用资源覆盖,在src文件夹下面建立对应flavor的资源文件就能实现该效果。
-
这里面我替换了图片和部分字符串资源
-
经过上面5个招数大部分要替换的都可以做到了,合理使用上面5个招数,让打包更加方便~
附录:
1.Build Variants
- 当我们使用点击Run App时
- 我们可能不知道下载到手机上的是哪个渠道打出来的包,或者要选择自己想要的渠道去调试,可以在属性栏中Build–>Select Build Variants
- 在这里就可以选择想要的渠道了
2.flavor的那些事
- 1.如果在Build Flavors的界面中对某个flavor进行重命名,那么在app.gradle中之前写的一些属性就会因为studio自动生成flavor而覆盖掉丢失,所以想改名字最好在gradle中修改!
- 2.当选择了build variant,对应的flavor的图标也会有相应的变化。看下图
3.签名
- 如果想要将release版本的apk通过Run app的方式直接下载到手机上需要配置下签名文件
代码方式
signingConfigs { release { storeFile file('E:/AndroidStudioProjects/MultiChannel/releaseKey.jks') keyAlias 'release' keyPassword '123456' storePassword '123456' } }
下面是flavor的代码
third { signingConfig signingConfigs.release }
也可以直接在Project Structure中设置
附上demo链接:http://download.csdn.net/detail/busterace/9493237
1 0
- Android Studio-强大的gradle用5招教你多渠道打包
- Android Studio Gradle 多渠道打包
- Android Studio--Gradle多渠道打包
- Android Studio--Gradle多渠道打包
- Android studio gradle 多渠道打包
- Android Studio Gradle多渠道打包
- Android studio gradle 多渠道打包
- Android Studio--Gradle多渠道打包
- Android Studio Gradle多渠道打包
- android studio gradle 多渠道打包
- Android Studio Gradle多渠道打包
- 【Android Studio】gradle多渠道打包
- Android之Android Studio--Gradle多渠道打包
- Android Studio 使用Gradle多渠道打包的原理与方法
- 关于Android Studio使用Gradle多渠道打包的一些记录
- Android Studio使用Gradle多渠道自动打包
- android studio中使用gradle多渠道打包
- Android Studio之Gradle多渠道打包
- 跨浏览器处理事件
- 编程学习笔记之MFC内部组织架构
- 166. Fraction to Recurring Decimal
- 关于github
- 将博客搬至51CTO
- Android Studio-强大的gradle用5招教你多渠道打包
- 进程调度时机跟踪分析进程调度与进程切换的过程
- 工具类
- Error:failed to find Build Tools revision 21.1.1
- 稀疏自编码器
- 递归函数
- 简单在线聊天系统的实现(完成)
- android_5.1系统在下拉状态栏上添加一个item
- dp学习之AvoidRoads解法