Android差异化打包productFlavors --- 一套代码生成两个APK
来源:互联网 发布:java中反射method 编辑:程序博客网 时间:2024/06/05 10:26
有些时候,因为业务扩展,需要两个相同的app,通过分支管理,两套代码当然ok,但是这样后期维护,BUG修复总不能两套代码同时修改吧,这里推荐使用productFlavors差异化打包,一套代码生成两个APK
一、Flavor创建
在APP中build.gradle文件中的一段代码:
android { ... } //差异化打包 productFlavors { project1 { applicationId "com.android.app1" versionCode 120 versionName "1.2.0" manifestPlaceholders = [label: "APP1", icon: "@mipmap/icon_1",key:"11111"] } project2 { applicationId "com.android.app2" versionCode 100 versionName "1.0.0" manifestPlaceholders = [label: "APP2", icon: "@mipmap/icon_2",push_key:"22222"] } } buildTypes { ... }
二、添加相应目录
三、Manifest中的操作(主要是引用的一些第三方操作)
1、图标、APP命更换
<application android:name=".base.ElephantApplication" android:allowBackup="true" android:icon="${icon}" //引用前面定义好的icon android:label="${label}"//引用前面定义好的APP名字 android:supportsRtl="true" android:theme="@style/AppTheme">
2、对于一些第三方工具如推送,包名 key的更换
<service android:name="cn.jpush.android.service.DaemonService" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="cn.jpush.android.intent.DaemonService" /> <category android:name="${applicationId}" />//引用前面定好的包名 </intent-filter> </service>
<meta-data android:name="JPUSH_CHANNEL" android:value="developer-default" /> <meta-data android:name="JPUSH_APPKEY" android:value="${key}" /> //引用前面定好的key
四、一些资源的更换
在对应的目录下,放置相同名字的资源文件,打包的时候,会自动匹配该目录下的资源文件,对于一些公用的图片不用处理
对于一些颜色的修改、布局的修改,都可以用同一种方法(不同包下的同名文件)
五、代码动态控制展示
if (BuildConfig.FLAVOR.equals("project1")) { //当flavors是project1 的时候,需要做的处理,比如设置某个布局的隐藏之类的 } else if (BuildConfig.FLAVOR.equals("project2")) { //当flavors是project2 的时候,需要做的处理 }
六、打包或者AS调试
1、as调试
在这里可以选择,你要调试的包,然后进行运行测试
2、打包
七、大功告成
如果错误或者不对的地方,多多指教纠正
阅读全文
0 0
- Android差异化打包productFlavors --- 一套代码生成两个APK
- Android productFlavors实现差异化打包
- Android productFlavors实现差异化打包
- gradle差异化打包
- Android打包productFlavors 用法
- Ant打包Android代码生成apk文件
- Ant打包Android代码生成apk文件
- Ant打包Android代码生成apk文件
- Android差异化编译
- Android Studio -使用 Gradle打包多版本APK——buildTypes和productFlavors
- Android Studio打包生成APK
- android混淆打包生成apk
- Android studio打包生成apk
- Android Studio 打包生成 apk
- Android Studio打包生成apk
- android差异化更新(增量更新)
- Android 利用Gradle实现差异化构建
- Android 利用Gradle实现差异化构建
- java.lang.NoClassDefFoundError: org/quartz/JobDetail
- IDEA远程Debug
- 薪水支付案例(1)
- Spring boot中出现JDK dynamic proxy使用@Resource注入实例出现问题
- GAN
- Android差异化打包productFlavors --- 一套代码生成两个APK
- iOS苹果开发者证书/无需越狱/ipa签名/真机调试/udid定制服务连接/设备无需添加信任
- Stringutils 之 list转字符串
- git上传本地项目
- csdn博客推荐
- 怎样处理掉PDF Transformer+中添加的注释
- 常用的linux命令
- python3中使用ADFtest
- Knight Probability in Chessboard问题及解法