Android|Android 多渠道打包如何修改app name,icon()
搞过多渠道打包的都知道,我们只需要在 module 的build.gradle中配置相应的渠道号就行:
productFlavor{
baidu {
}
xiaomi{}
wandoujia{}
}
像这样,就可以了,然后将友盟的chanelvalue修改下就可以了,需要不同的渠道,配置不同的applicationid,也不是什么难事。不过今天我遇到的需求是,不同的渠道配置不同的appname和icon。一开始我想着用之前的哪种方法应该可行,然后就试了下,一试不知道,试过就蛋疼了,appname是可以换掉,但是icon呢,,咋整,,,找了一圈方法,都木有找到,郁闷,string类型的,都可以通过常用的那种替换占位符的方式来改,或者是resValue(这个没有试,,但是似乎是可以的)。然后各种搜资料,有什么设置 useOldManifestMerger false ,不过自己没试成功(不能怪我,理论是这个道理的,只不过gradle版本不一样,Google升级了,导致我懵逼了)偶然间Google了一下 how to change app icon for diffrent productFlavors in android,点开第一个链接,然后答主的答案给了我一些启发:
文章图片
QQ截图20160811184619.png 【Android|Android 多渠道打包如何修改app name,icon()】然后搜啊搜,又找到了这个
文章图片
QQ截图20160811185123.png 然后经过自己的摸索,搞了出来了,简单来说:
大家看第一张图你的目录结构就会发现,如果我们在src/main/文件夹下新建以我们去渠道名为名的,目录结构和main一样的文件目录,当我们打包的时候就会读取这里面的资源文件,所以呢,我就新建了个清单文件,将头部换成图二所示,在根目录添加
xmlns:tools="http://schemas.android.com/tools"
然后application
tools:replace="android:icon"
android:icon="@drawable/icon_all"
替换你需要换的icon就行,ok,至此搞定,至于为什么这么搞,我看到了官方的一篇文章清单合并,另外还有篇国内译文
剩下的就靠小伙伴么自己摸索了。。。。
推荐阅读
- android第三方框架(五)ButterKnife
- Android中的AES加密-下
- 带有Hilt的Android上的依赖注入
- Beego打包部署到Linux
- android|android studio中ndk的使用
- Android事件传递源码分析
- RxJava|RxJava 在Android项目中的使用(一)
- Android7.0|Android7.0 第三方应用无法访问私有库
- 深入理解|深入理解 Android 9.0 Crash 机制(二)
- android防止连续点击的简单实现(kotlin)