Android 模块化开发

 

1、前言

  模块化开发的优势什么的这里就省略了,本文主要记录自己 Android 模块化开发的使用过程

 

2、新建一个模块

  

  上图就是选择新建模块的时候,常用的两个选项,第一个新建的是可以独立运行的一个模块应用程序,而第二个建立的只是一个 库项目,不能独立运行,必须依赖于一个应用程序来运行

3、将Model与当前项目关联(引入模块)

  项目单击右键,选择 “Open Module Settings”,添加模块的引用

添加模块后,如果报 Support 版本不一致问题,可以选择将版本号改为一样(推荐),或者将 Module Support 库的依赖方式改为 compileOnly

4、Android Studio 如何删除模块

  ①  选中要删除的module 右键选择open modules settings,然后选中要删除的modules ,点击减号。

  ② 上一步只是移除了 Module 的引用,但是文件还存在,如果想要移除文件,需要切换到 Project 浏览模式,删除 模块文件

 

5、Gradle依赖(以 AS 3.0为例)

  我们平时在引入依赖的时候,常用的是 implementation ... ,但是Gradle提供的引入依赖的方式还有很多种,接来下,我们大概看一下各种发生有何区别:

  ①implementation

    使用该命令编译的依赖,仅仅对当前 Module 提供接口。如 Module A 依赖 Library B,而Library B又依赖 Library C,如果 Library B对C的依赖使用 implementation,那么在 Module A中是无法访问 Library C提供的结构的

  ②api ( 等同于 AS 2.X 中的 compile )

    和implementatioin 相对,如果 B 对 C使用 api 依赖,那么 Moudle A中 也能访问到 C 提供的结果。

    (注意:这种方式经常会导致依赖依赖冲突)

  ③compileOnly

    只在编译时有效,不会参与打包

    (可以在自己的 Module 中使用该方式依赖一些 开发者 常用的库,比如 gson,okhttp 等,避免冲突)

  ④runtimeOnly

    只有生成 apk 是参与打包,编译时不会参与。极少使用

  ⑤testImplementation

    只有单元测试的代码编译时或最终打包测试 apk 时有效

  ⑥implementation fileTree

    导入本地文件夹。例 implementation fileTree(dir: 'libs', include: ['*.jar']),这句话的意思是导入 libs 文件夹下所有以 .jar 后缀结尾的包

 

6、将 Android 项目导出为 Module 并引入其它工程

  推荐 Android将项目导出为module并引入工程

原文地址:https://www.cnblogs.com/lkc9/p/11245029.html