一、需求背景
实际项目开发过程中,经常会遇到这样的场景:一个项目要根据需要打包成多个存在差异的版本,比如对外版本、对内版本,或者开发版本、测试版本、线上版本等等……那么如何通过维护一套代码的前提下实现打包多版本的需求呢?在Android Studio中我们可以使用productFlavors来实现这样的需求。
二、创建差异化版本目录结构
根据版本的差异化在src目录下创建对应的java文件夹,如下图:
创建external与internal版本,将版本差异化的代码文件放在这2个目录对应的文件夹下,具体的目录层次同main下面的一样即可;
三、配置gradle文件
在moudle的gradle配置文件中增加如下配置:
android { …… productFlavors { internal { manifestPlaceholders = [app_label:"对内app"] applicationId "com.ad.demo.internal" } external { manifestPlaceholders = [app_label:"对外app"] applicationId "com.ad.demo.external" } } }
四、在代码中判断版本
如果有些逻辑需要在代码中判断版本,可以通过BuildConfig.FLAVOR去获取当前选择的是什么版本值:
if(BuildConfig.FLAVOR.equals("external")){ textView.setText(getResources().getString(R.string.my_app_name) + "对外应用"); }
五、按版本打包
签名打包的时候,选择对应的版本即可
转载于:https://blog.51cto.com/alany/1827538