Android利用productFlavors 打包不同版本API的调用

来源:互联网 发布:传送门骑士游数据错误 编辑:程序博客网 时间:2024/06/06 03:37

文章来源http://www.jianshu.com/p/81eff804d1b8

功能背景:

因公司项目要求,每次打包都需要打包三个版本,两个测试版本和一个线上的版本,


并且调用不同的baseURL,最开始的做法是每次打包一次就换一个baseURL,然后一个个打包,分别需要打包三次,如果编译很慢会浪费了很多时间,还需要注释掉不同的baseURL,于是想到应该如何一次性打包三个版本的apk并且调用不同的baseURL,如果有类似需求的,可以参照我下面自己实现的方式。

首先在 src 目录下新建几个自己需要打包对应名称的包,比如我要打包如下三个版本, uat ,nduat,product,新建各自java文件夹,可以直接复制main文件下的java包到各个新建目录下,然后只新建和声明自己需要类和对应常量(需一致)。

public class Constant {public static String BASE_URL = "http://www.*****";}

然后在主程序main需要的地方调用对应的常量baseUrl,实际开发中是调用api去请求数据


在代码中调用的是当前选择对应的productFlavors版本的代码,比如当前选择的是nduat版,其他版本会显示下面好像报错的红圈,编译正常,当我们打包成功后,它会调用对应目录下面常量


然后签名打包,配置gradle文件,这些按照基本流程走,按照下面基本的配置可以得到打包得到三个对应的版本,id 根据你自己的需要设置是否可以同时在一个手机上运行多个自己的app。







以上过程完成了开始提到的需求,具体实现代码起来很简单,以此类推,资源文件等也可以通过以上方式。



文/小安学开发(简书作者)
原文链接:http://www.jianshu.com/p/81eff804d1b8
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

0 0