Android App多业务部门开发协作
Android Studio常见多团队模式
1、Lib文件加载本地aar文件:刚接触android的时候基本都是通过这种方式来集成第三方包的;
2、module加载Library,本地库;
3、maven等远程包,方便版本控制等;
以上三种方式都是常见的依赖第三方模式,但是在多部门多团队多版本协作的时候会显得有些凌乱;
比如某个业务模块因为一些原因,这期迭代准备不上了,代码要是在主工程中,则回滚代码将是噩梦,要么该业务模块通过aar包等方式接入,但是每次主工程运行都要重新加载aar,非常麻烦;
多repository协作开发
目的是单业务部门单仓库,以本地主工程倒入本地其他业务仓库的方式协作开发;
所有仓库在同一个级别文件夹:
----->主工程仓库
----->A业务仓库
----->B业务仓库
因为仓库都是单独维护的,所以可以随意切换主工程中的A B业务版本;
下面介绍如何将A业务导入主仓库;
1、A仓库正常设置Library模块:
2、主仓库的配置
- 在主工程根目录的settings.gradle文件中设置
// 引入外部工程入口:
include ‘:testlibrary’
project(’:testlibrary’).projectDir = new File(rootDir.parent + ‘/TestDependency/testlibrary’)
2)在app module的build.gradle文件中设置dependencies
//引入外部工程
implementation project(path: ‘:testlibrary’)
3)主工程引入A工程中的print方法;
上面是子工程被引入主工程,但是子工程是作为业务方仓库来设计的,不仅仅需要被导入主工程,还需要能够依赖主工程的相关数据,下面设计子工程如何依赖主工程数据
3、子工程设置如下代码
provider
/**
* 实现获取主工程中的各种用户信息
*/
public interface IAccountProvider {
/**
* 获取用户token
*
* @return access token
*/
String getAccessToken();
/**
* 获取用户ID
*
* @return user id
*/
String getUserId();
/**
* 登陆
*
* @param activity 当前TestDependencyActivity
* @param callback 登陆成功失败等的回调信息
*/
void goLogin(<