Android(安卓)productFlavors 差异化打包
16lz
2021-01-26
最近有个教育类项目,需要四个app端,主题样式差不多有不少公共代码,如果创建四个AS工程,不利与代码管理且后期维护的难度加大。本着面向度娘编程的原则搜索了一波解决办法,发现gradle自带的productFlavors差异化打包工具 这个好东西,有效解决我以上问题,记录一下踩坑过程。
一. 配置productFlavors
二. 创建工程结构
三. 快乐编码
四. 调试、打包、注意事项
一. 配置productFlavors
在build.gradle(app)文件中:
配置了 parents 和 school 家长和学校端 ,配置各端applicationId...属性,则学校端包名为com.xxx.xxx.parents,注册第三方appkey时需使用该包名
1. manifestPlaceholders : 配置不同属性:
在mian-AndroidManifest.xml中使用manifestPlaceholders 中定义的属性值(公共权限、公共组件注册、第三方Appkey配置在该文件中)
2.buildConfigField:自定义区分 (公共代码中区分是哪一个app在运行)
可以通过 BuildConfig.FLAVOR 或 buildConfigField自定义的名字区分
3. implementation / schoolimplementation: 全部依赖第三方库/ 仅家长端依赖
二. 创建工程结构
红色为默认main包,里面写一些公共utils,application,base基类...等。手动新建如果紫色main同级parents工程目录
三. 快乐编码
注意事项:
子项目(school)中代码可以调用公共类(main)中的代码,公共类中不能出现调用子项目的代码
四. 调试、打包
选择不同子项目调试
一起打包
更多相关文章
- “adb不是内部或外部命令,也不是可运行的程序或批量文件“
- android软件安全与逆向分析重打包签名出错
- 为什么我们可以在非UI线程中更新UI
- 基于web的android图像处理示例(Win7+Apache+PHP+Matlab+Android)
- Android实现使用微信登录第三方APP的方法
- ubuntu下android开发环境配置及常用设置
- Android(安卓)Studio 单元测试入门
- 如何编写高效的Android代码
- Android(安卓)Async HTTP Clients: Volley vs Retrofit