当前位置: 首页 > news >正文

Android多工程(project)开发实例

开发过程中,我遇到过这样一种需求,多个App并行开发,但是基础库(网络、图片、自定义view之类)完全可以用同一套,基础库一般不会频繁修改,但是如果修改了某一些代码,又希望对所有引用基础库的工程生效,也不需要多次复制代码或者重复道服module。

这里我介绍一种很方式

先说关键:把别的Prokect的Module,变成自己的Module

这里说的把别的Prokect的Module,变成自己的Module,并不指简单的“import Module”,而是直接引用,两个工程的都可以使用这个module,一个修改,领个工程同事生效,只有一份代码 这里的“工程”是Project,不是Module,类似于Eclipse的工程,这里的多工程都是独立的,都可以作为App跑起来

这里我大致分为三个工程,业务工程(Bussiness)、引用库(Library)、UI库(UIKit)。在同一个文件夹里,新建三个工程。

引用库(Library)、UI库(UIKit):

业务工程(Bussiness)

实现代码

在业务工程(Bussiness)的setting.gradle这样写,把其他工程的module转成自己的module

include ':app'
include 'Lib'
project(':Lib').projectDir = new File('../Library/Lib')
include 'UIKitLib'
project(':UIKitLib').projectDir = new File('../UIKit/UIKitLib')
复制代码

在业务工程(Bussiness)的App的build.gradle这样写,跟阴天自己的module一样的

dependencies {
    compile project(':Lib')
    compile project(':UIKitLib')
}
复制代码

这里有个实例:代码

相关文章:

  • eclipse中项目svn转gitLab全过程
  • webRTC开启摄像头
  • 白话 KMP 算法
  • python web开发之flask框架学习(2) 加载模版
  • 异步任务 -- FutureTask
  • (二)学习JVM —— 垃圾回收机制
  • 搭建私有CA和证书认证
  • Linux rpm 命令参数使用详解
  • 智能合约开发环境搭建及Hello World合约
  • zookeeper安装部署
  • java B2B2C Springcloud多租户电子商城系统- 分布式事务
  • Shell 脚本 100 例《四》
  • Powershell 批量重命名
  • 浙江台州警方侦破特大制售假酒案 涉案金额超4000万元
  • 《SQL必知必会》读书笔记
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【mysql】环境安装、服务启动、密码设置
  • Android优雅地处理按钮重复点击
  • Fundebug计费标准解释:事件数是如何定义的?
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • JWT究竟是什么呢?
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • oldjun 检测网站的经验
  • Spark学习笔记之相关记录
  • tensorflow学习笔记3——MNIST应用篇
  • 当SetTimeout遇到了字符串
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 简单易用的leetcode开发测试工具(npm)
  • 世界上最简单的无等待算法(getAndIncrement)
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 【云吞铺子】性能抖动剖析(二)
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • # Apache SeaTunnel 究竟是什么?
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #stm32驱动外设模块总结w5500模块
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)IOS中获取各种文件的目录路径的方法
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .Net mvc总结
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .Net8 Blazor 尝鲜
  • .NET分布式缓存Memcached从入门到实战
  • .net快速开发框架源码分享
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • .NET中使用Protobuffer 实现序列化和反序列化
  • [20170705]diff比较执行结果的内容.txt
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决
  • [Android View] 可绘制形状 (Shape Xml)
  • [AutoSar]BSW_Com02 PDU详解