一直觉得零碎知识点总结后再写下来,久而久之发现总结的时候反而想不起都有哪些只是碎片,从现在开始,想到一个记录一个
android studio的多渠道打包很好用,基本上大家都知道,不废话,只记录
以友盟推送和百度统计为例
第一步,在AndroidManifest.xml中的application标签下添加相关的meta-data,其中渠道的meta-data修改为下面的格式
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}"/>
上面的占位名 UMENG_CHANNEL_VALUE可以修改为自己的命名习惯,只要和后面配置文件中的对应就行
相似的,百度统计的渠道的meta-data也修改为下面的格式
<meta-data
android:name="BaiduMobAd_CHANNEL"
android:value="${BAIDU_CHANNEL_VALUE}"/>
第二步,在配置文件中加入配置代码
在主工程的build.gradle文件的android域里面添加如下代码
productFlavors {
pc {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "pc", BAIDU_CHANNEL_VALUE: "pc"]
}
m {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "m", BAIDU_CHANNEL_VALUE: "m"]
}
xiaomi {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi", BAIDU_CHANNEL_VALUE: "xiaomi"]
}
_360 {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "360", BAIDU_CHANNEL_VALUE: "360"]
}
baidu {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu", BAIDU_CHANNEL_VALUE: "baidu"]
}
wandoujia {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia", BAIDU_CHANNEL_VALUE: "wandoujia"]
}
huawei {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "huawei", BAIDU_CHANNEL_VALUE: "huawei"]
}
}
}
如果有更多的渠道需要添加,只需要按照上面的格式复制粘贴修改下渠道名称就可以了;如果你只有一个友盟推送没有百度统计,那么直接把BAIDU_CHANNEL_VALUE相关的删掉就可以了
第三步,打包。
在代码编译没有问题的情况下哈,①你可以选择工具栏中的Build下的 Genetate Signed APK...功能进行打包,按照提示最后点finish前可以选择需要打包的渠道。
②你也可以通过android studio自带的Terminal控制台用指令操作:gradlew assembleRelease指令,如下
这样就可以一键把所有渠道打包,当然渠道多的话需要一些时间,可以趁这会起来活动下胳膊腿,打包出来的apk是未sign的包,也就是未签名的,再用工具批量签名就行了,还可以用各种平台的加固助手操作
最后,我们打包的apk文件保存到了什么地方呢?
保存路径:当前主工程(有时候会添加很多第三方依赖工程)项目文件夹下build/outputs/apk下面就是我们刚才用指令打包的apk文件了