IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android工程开发的团队协作模式 -> 正文阅读

[移动开发]Android工程开发的团队协作模式

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、主仓库的配置

  1. 在主工程根目录的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(Activity activity, TestCallback callback);
}

设置config

public final class TestSdkConfig {
    private static final TestSdkConfig sdkConfig = new TestSdkConfig();
    private IAccountProvider accountProvider;

    private TestSdkConfig() {
    }

    public static TestSdkConfig getInstance() {
        return sdkConfig;
    }

    /**
     * 初始化config
     *
     * @param context 主工程Application的上下文
     */
    public void init(Context context) {

    }

    public void setAccountProvider(IAccountProvider accountProvider) {
        this.accountProvider = accountProvider;
    }

    public IAccountProvider getAccountProvider() {
        return accountProvider;
    }
}

4、主工程添加

package com.wwl.xui.td;

import android.app.Activity;
import android.content.Intent;

import com.wwl.testlibrary.TestCallback;
import com.wwl.testlibrary.config.IAccountProvider;
import com.wwl.xui.ui.login.LoginActivity;

public class AccountProvider implements IAccountProvider {
    @Override
    public String getAccessToken() {
        return "Access Token From Main Project";
    }

    @Override
    public String getUserId() {
        return "User Id From Main Project";
    }

    @Override
    public void goLogin(Activity activity, TestCallback callback) {
        callback.success("主工程执行callback:Success");
        Intent intent = new Intent(activity, LoginActivity.class);
        activity.startActivity(intent);
    }
}

记得在Application中初始化:

package com.wwl.xui;

import android.app.Application;

import com.wwl.testlibrary.config.TestSdkConfig;
import com.wwl.xui.td.AccountProvider;

public class XUiApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        TestSdkConfig.getInstance().init(this);
        TestSdkConfig.getInstance().setAccountProvider(new AccountProvider());
    }
}

好了上面就是核心代码了;
只是将TestDependency工程开放了内容不多,有需要的可以自行查看,有问题欢迎留言讨论;
传送门

后面有时间了会陆续将这几年项目中遇到比较好的工程设计模式分享出来,内容包括小程序多业务部门开发、vue多语言多主题组件化开发、Flutter多国家地区多个应用共同开发(目前公司正在使用,不知道分享出来是否涉及侵权,所以只整理常见的,网上已经有的模式,另外只提供思路和文章中分享出来的demo代码片段,不提供repository);
好久没敲java果然今天手生了,以后会多加练习,后面找时间把这些年android的一些知识点和一些新内容分享给大家,加油;

天黑了,上传下demo代码,吃饭去了,另外昨天七夕,因疫情原因没办法回去陪老婆,这里像老婆道歉(虽然她看不到这篇博客),以后要多陪陪家人。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-16 11:52:22  更:2021-08-16 11:52:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:44:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码