Android studio差异化打包,一套代码如何Gradle
2019-08-23 本文已影响53人
像程序那样思考
随之开发的效率提升,越来越多的需求诞生了,比如我今天说的这个如何一套代码加载不同的app_name,布局文件,主题,资源文件?
一定要做一个会“偷懒”的程序员,遵守“懒”的一字方针;
究竟怎么做呢?
因为之前做过多渠道打包,猜想是不是和多渠道打包差不多呢?
做任何事情之前得先分析,需要怎么做?从哪几个方向会出发?时间是多久……分析之后就开始实施了:
具体如下:
第一步:在app的build.gradle中配置
//差异化打包,名字任意起
flavorDimensions 'heb'
//多渠道打包
productFlavors {
//andorid 应用组件命名和已安装应用有冲突,我们使用 “APP英文名+包名+类名”来避免。
wnh {
dimension = 'heb'
// 设置applicationId(这里很重要,两个相同applicationId的apk不同同时安装在同一台Android手机中)
applicationId = 'com.xxx'
targetSdkVersion 28
maxSdkVersion 28
signingConfig signingConfigs.release
buildConfigField "int", "App", "1"
manifestPlaceholders = [
app_name : "xxx",
app_icon : "@mipmap/ic_launcher",
app_round_icon: "@mipmap/ic_launcher",
app_style : "@style/AppTheme"]
}
ydh {
dimension = 'heb'
applicationId = 'com.xxx'
targetSdkVersion 28
maxSdkVersion 28
signingConfig signingConfigs.release
buildConfigField "int", "App", "2"
manifestPlaceholders = [
app_name : "xxx",
app_icon : "@mipmap/ic_launcher",
app_round_icon: "@mipmap/ic_launcher",
app_style : "@style/AppTheme"]
}
ylh {
dimension = 'heb'
applicationId = 'com.xxx'
targetSdkVersion 28
maxSdkVersion 28
signingConfig signingConfigs.release
buildConfigField "int", "App", "3"
manifestPlaceholders = [
app_name : "xxx",
app_icon : "@mipmap/ic_launcher",
app_round_icon: "@mipmap/ic_launcher",
app_style : "@style/AppTheme"]
}
}
第二步:在清单文件中配置,application节点下:
<application
android:name=".common.MyApplication"
android:allowBackup="true"
android:icon="${app_icon}"
android:label="${app_name}"
android:supportsRtl="true"
android:roundIcon="${app_round_icon}"
android:theme="${app_style}"
tools:ignore="GoogleAppIndexingWarning"
tools:replace="icon,label,theme,roundIcon"
android:usesCleartextTraffic="true"
tools:targetApi="n">
第三步:把studio切换到project目录下,在src目录下创建和main同级的包,(包名必须和gradle里面名字一致)
第四步,根据进行差异化的不同之处和相同之处放置不同的问文件,具体如图:
image最后为了防止外部原因,建议先同步,然后rebuild一下,接下来就是静等待打包了;
最后
漫漫开发之路,我们只是其中的一小部分……只有不断的学习、进阶,才是我们的出路!才跟得上时代的进步!
最后
最后感谢大家能看到这,希望能带给大家帮助!
同时也希望各位可以帮忙点个赞,关注一下,谢谢大家的支持!
漫漫开发之路,我们只是其中的一小部分……只有不断的学习、进阶,才是我们的出路!才跟得上时代的进步!
我从事Android开发快十年了,今年年初我花近两个月的时间收录整理了一套Android进阶知识体系,如果有想法深入的系统化的去学习,可以Android进阶技术交流(895077617 )免费获取整理版的资料
**,我会把我收录整理的资料都送给大家,帮助大家更快的进阶。
重要的事说三遍,关注+喜欢,让更多需要的朋友们都可以看到并且领到!