android app 马甲包,教你一招APP如何快速定制马甲包
废话不多说,给我上·····
按照本文进行定制马甲包的好处:
马甲包和主包可以进行同步打包,一键生成
不会增加apk的大小,不同的包打进对应的资源
不影响主线的开发(无须拉分支、版本迭代时增加的需求,也无须在写一遍)
在各个马甲包的母包上,可以利用一些加固平台,进行渠道分包
关于马甲包的方式,会从最简单的方式开始介绍:
最简单的方式
AndroidManifest.xml的配置
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL}" />
app gradle的配置
android {
defaultConfig {
flavorDimensions "versionCode"
}
productFlavors {
GS1408 {//默认母包
applicationId = "com.gs"
manifestPlaceholders = [app_name: "主包",
icon : "@mipmap/logo",
style : "@style/SplashAppTheme"
]
}
JSQ{
applicationId = "com.gsjsq"
manifestPlaceholders = [app_name : "马甲包1",
icon : "@mipmap/logo",
style : "@style/SplashAppTheme",
]
}
BJ {
applicationId = "com.gsbj"
manifestPlaceholders = [app_name : "马甲包2",
icon : "@mipmap/logo",
style : "@style/SplashAppTheme",
]
}
productFlavors.all { flavors ->
manifestPlaceholders.put("UMENG_CHANNEL", name)
}
}
}
使用
记的使用前先编译
android:allowBackup="true"
android:icon="${icon}"
android:label="${app_name}"
android:networkSecurityConfig="@xml/network_security_config"
android:roundIcon="${icon}"
android:supportsRtl="true"
android:theme="${style}"
tools:replace="android:label">
//tools:replace="android:label" 别忘了这个需要配置
到这里已经完成多名多icon了,这里只是替换了不同app名字、style主题、包名
这种方式没有替换app内部的任何布局或资源。这种肯定不行的,市场审核不一定通过啊。
马甲包正确的打开方式(替换app内部的资源)
上面的完成后,咱们继续,开始发功
在src目录下创建存放马甲包资源的文件夹(需要跟上方app gradle配置的一样)
JSQ、BJ。
注意:GS1408是母包,测试时把它隐藏、或者不要放到第一位,as编译运行时默认取的第一个渠道。
2. 再放入不同渠道的资源时,切记资源一定要和主包命名一样
这样在你编译时打包时,AS在打包时会根据不同的渠道把不同马甲包的资源打进来。
图片的使用:
// 跟正常的使用没区别
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_width="wrap_content"
android:src="@mipmap/home_select"
android:layout_height="wrap_content"/>
到这里就完成了马甲包的定制。
到这里的操作,都是默认指,资源都在一个app下的情况。
另外两种情况:
1.资源都在同一个lib_res下,app直接依赖lib_res
app下不要使用mipmap
mipmap全部放到项目所依赖的lib
app gradle依旧按照上文的配置productFlavors
lib的gradle,也要加上多渠道 productFlavors的配置,还有清单文件
lib的AndroidManifest.xml
lib的gradle
注意:app的gradle下配置几个,这里也要配置几个,否则会报错。
不同的是,这里只要声明就可以,不需要具体在配置,如下面代码配置:
defaultConfig {
flavorDimensions "versionCode"
}
productFlavors {
// GS1408 {
// }
MJ {
}
JSQ {
}
productFlavors.all { flavors ->
manifestPlaceholders.put("UMENG_CHANNEL", name)
}
}
其他和上文介绍也要的一样
2.组件项目的马甲包配置
如下图:
关系:
modle_开头的三个模块会依赖公共 lib_res
app会依赖modle_开头的三个模块
马甲包配置:
上文介绍的配置依旧保留
马甲包的资源还是放到lib_res下
modle三个模块的gradle,都加上多渠道productFlavors配置,和 1.资源都在同一个lib_res下,app直接依赖lib_res 配置一样
切记!切记!切记!
lib_res、modle下的productFlavors配置是一样的多渠道的先后顺序一定要和app的productFlavors配置顺序一样
这样才更好的方便你测试
总结
app gradle 配置productFlavors
图片资源公共目录lib_res,也要配置productFlavors
app模块modle配置productFlavors
不同马甲包的名字、logo等是放到app gradle 配置productFlavors 多渠道中的
productFlavors多渠道名字的配置、顺序一样要保持
清单文件别忘配置
资源图片/或者color/或者drawable下的shape等等,命名一定要一样
app下不再使用mipmap
创建马甲包对应的文件夹,在src目录下。和多渠道名字保持一致
如果对你有帮助,请帮忙点个赞吧!
如有什么描述错误的请指出,我会及时纠正!
Thanks
标签:lib,APP,配置,productFlavors,gradle,马甲,一招,app
来源: https://blog.csdn.net/qq_34501274/article/details/100136385
android app 马甲包,教你一招APP如何快速定制马甲包相关推荐
- 延迟稳定性测试软件,怎么看网络有没有丢包 教你一招查看自己网络的稳定性和延时情况...
川北在线核心提示:原标题:怎么看网络有没有丢包 教你一招查看自己网络的稳定性和延时情况 网络游戏对网速与稳定性要求很高,一旦网络不稳定.网速不佳,就会出现跳ping.延时长,影响游戏体验.那么怎么看网 ...
- 教你一招利用Python快速去除图片水印
大家好,我是IT界搬运工. 相信大家都有在网上下载好图片但是有水印的烦恼,那么问题就来了:看到心爱的图片想要"占为己有".怎么把图片上的水印去除呢?今天我就来教你一招利用Pytho ...
- 教你一招APP如何快速定制马甲包
废话不多说,给我上····· 按照本文进行定制马甲包的好处: 马甲包和主包可以进行同步打包,一键生成 不会增加apk的大小,不同的包打进对应的资源 不影响主线的开发(无须拉分支.版本迭代时增加的需求, ...
- android app 隐藏应用,教你一招,隐藏我们手机中的APP应用!
原标题:教你一招,隐藏我们手机中的APP应用! 在我们的生活中,经常会有将手机借给别人的时候,如果我们手机中有不愿意让家人或者同事看的应用,想删除又舍不得,怎样快速的将其隐藏起来呢? 干货君今天发现了 ...
- android高德hud导航,教你一招,手机导航秒变HUD抬头显示
现在大多数人开车都会选择手机导航,但其实边开车边看手机,尤其在夜间是十分危险的! 所以,今天小编就教大家一个超级高大上的导航方式.导航投影到车玻璃上,告别低头看手机!如下: HUD功能 相信懂车的朋友 ...
- 参考文献名称怎么复制_PDF格式的英文文献怎么翻译成中文?教你一招最简单快速的办法...
大家写论文的时候经常都需要找一些参考文献对吧?有时还需要一些外文的参考文献,不过从网上下载下来的外文文献很多都是PDF格式,不过不翻译的话看起来还是有点吃力的,特别是专业名词很多的文献,简直令人头大, ...
- 教你一招:如何快速制作来访登记二维码?
新冠肺炎疫情防控工作中至今,联防联控变成了避免 人员流动性的最关键方式,外界人员登记.追朔也是头等大事."一个本子.一支笔"的登记方式在多地早已变成"过去式", ...
- 【硬核】教你几招,如何快速把一个团队搞垮?
大家好,我是Tom哥~ 成功的道路千万条,但失败因素却总是那么几个 今天,我们聊聊团队管理者的哪些行为会把一个团队搞垮.搞崩 写不完的周报 Tom哥在阿里呆过很多年,看到过很多人内卷战火甚至蔓延到了周 ...
- this.$modal.confirm 自定义按钮关闭_Excel迫使人类基因重命名?用VBA给科学家们支一招!—— 怎样快速定制工具栏按钮...
点击上方蓝色文字关注我们吧~ 大家好!前几天有一个不大不小的科技新闻引起了很多朋友的共鸣: -NO.01- 为什么Excel会让科学家犯愁? - - - - 之所以说它能引起共鸣,是因为科学家们遇到 ...
最新文章
- 舍友清华博士毕业,我建议他留在高校
- Java中Comparable和Comparator的区别
- 图片本地化 php,php抓取远程图片本地化函数,很好用的.喜欢的拿去
- 【深度学习】修改每张人像---ImageNet 的衰落
- 数据可视化【二】HTML+CSS+SVG+D3
- 关于huihoo的一些意见和建议(转贴自Huihoo社区)
- 【BZOJ】1015 [JSOI2008]星球大战starwar(并查集+离线处理)
- mongodb安装及可视化工具robomongo安装
- 百度Hi Csrf蠕虫攻击
- Springboot2.2.6中的RSocket使用, RSocket 进行反应式数据传输
- 2018届成都市二诊数学(文)21题第二问的另类证法(切线放缩法)
- esp8266--04wifi开关
- 如何提高一个网站的排名?
- 如何转型社交新零售电商?转型社交新零售的核心关键是什么?
- cocos2d-x 中添加显示文字的三种方式 LabelTTF 、LabelBMFont 和 LabelAtlas
- 聚合支付和它的可持续发展之路
- 关于交叉熵(Cross Entropy)与Softmax
- 七夕情人节该送女朋友什么礼物,推荐五款让女朋友超惊喜的礼物
- Biological Psychiatry:vmPFC在情绪、决策、社会认知和精神疾病中扮演多重角色
- 链路层交换机和路由器的区别
热门文章
- win10使用共享文件夹传输数据提示输入网络凭据问题
- Winter And Snowmen
- 南开大学张昊计算机,纽约南开校友会隆重举办纪念南开大学建校100周年庆典
- 苹果手机投影到墙上_买家用投影仪必须知道的常识(去专业、简单易懂,绝对无广告)...
- ipcam rtsp流生成 mp4( 附源码)
- 大法将致:将Windows Server 2016打造成个人办公系统,WIN2016打造成超级WIN10,WIN2016优化设置
- 心田花开:解锁各类语文阅读理解答题技巧
- 深度 | 用于图像分割的卷积神经网络:从R-CNN到Mark R-CNN
- 取消大小周易,取消周报难
- OpenCV:图片文字分割