大型项目架构模式(模块化/组件化)

确保没有问题:

  1. sync now
  2. 运行整个 app

如何创建模块

(1)project(在当前工程下面) –> new Module –> Android Library (Android应用程序的库)–>Module name:给这个库取名 lib_network(命名一般以lib_开头)

(2)ibrary 依赖库和 application 的 build.gradle 区别:

  1. library 库只能被依赖,不能独立运行; application 应用可以独立运行。
  2. 库不是应用程序,不能独立运行,只能被其他应用程序依赖,没有应用程序的Id (applicationId)。
  3. 应用程序会有唯一的标识即其Id,还有版本号。

将 Library 依赖库改造为可运行的程序

  1. 将 build.gradle 中的 plugins 的 library 改为 application

  2. defaultConfig 中添加唯一标识符 applicationId

[versionCode 1 versionName “1.0”可有可无,可以拷贝下来]

  1. 添加主界面 LoginActivity (作为独立运行的应用程序需要有界面)

注意勾选 Launcher Activity 作为运行初始界面

  1. 配置 login 模块下的 AndroidManifest.xml ⽂件

创建的所有的Activity都是在AndroidManifest.xml文件有注册的

↓表示注册了,但是缺乏主界面的配置

1
2
3
4
<intent-filter> 
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
  1. 将 app 模块下的res → values 和 values-night 目录
  • copy 到 login → res 并更改名字
  • 在 strings 中添加登录
  • 更改 them 中的name(注意两套主体都要改)
  • 最后在 AndroidManifest.xml ⽂件中配置 label 和 theme 、LAUNCHER

引用外部依赖库(Logger)

在build.gradle中添加引用

implementation api 引用模块的区别:

  1. implementation 只是在当前模块中引用工程或者依赖(子模块无法继承)
  2. api 但凡依赖当前模块的地方都可以继承/依赖api(project(“:Logger”))
  3. app 只能导入依赖库不能导入独立的应用程序
    引用之后就可以直接用组件里的东西了

统一管理 build gradle 配置文件中的常量信息

[版本信息、依赖文件](避免修改多遍)

Build.gradle中好多东西是一样的,方便统一修改依赖库信息

  1. 在当前工程目录下创建文件夹 Open In –> Explorer –> 打开了当前这个工程,进去–>
  • 创建一个文件夹 buildSrc\src\main\java (注意是固定的写法)
  1. 在工程里面,在 buildSrc 里新建一个 New -> File ->
  • build.gradle(Groovy版本)
  • build.gradle.kts(kotlin版本)
  1. 在 build.gradle 写入代码
    通过 buildSrc 给所有的模块进行共享数据

    1
    2
    3
    4
    5
    6
    7
    plugins{
    `kotlin-dsl`
    }

    repositories{
    mavenCentral()
    }

    Android Studio 默认在编译的过程中,但凡做了以上操作,就可以通过 buildSrc 给所有的模块进行共享数据的
    什么时候需要添加 buildSrc :当需要统一管理所有 build.gradle 中的常量时

  2. 添加一个配置文件 Configers 统⼀管理常量(在buildSrc\src\main\java下创建file)
    可以创建多个静态类(注意不要和系统的重名),统一管理版本信息、依赖
    后续如果需要改的话就统一更改一个即可

使用一个开关管理 application 和 library 之间的切换

在开发的时候作为应用程序,但是在使用的时候应该作为一个库导入依赖
library 或者 application (模块还是应用程序)
apply plugin: ‘com.android.library’
只有是应用程序才有 com.android.application 和 applicationId

提取通用的 common.gradle(进一步优化)

gradle 长得都一样,可以把里面的相同的部分都抽出来,common.gradle

在project工程目录创建⼀个文件 New -> File -> common.gradle (common.gradle.kts)

注意:要拷贝纯粹的依赖库的gradle

  1. common.gradle 中单独抽出 apply plugin:’org.jetbrains.kotlin.android’
  2. 不能抽出namespace,Id(独有的)
  3. 删除模块中相同部分、引入common.gradle

apply from:”${rootProject.rootDir}/common.gradle” (访问主程序下的根目录)

如何删除一个模块

方法一:
1.settings.gradle 删除对应模块的 include

2.在要删除的模块下 Open In –> Explorer 在工程里面删除对应文件夹

方法二:
1.点击File -> Project structure

2.在Project Structure窗口中,选择要移除的module,点击红色的“-”,然后选择Yes。

3.打开setting.gradle文件查看include后是否还有你的module,如果没有那就说明移除成功。

4.最后右键点击你的module这时候已经有了delete,直接点击delete即可。

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2023-2025 Annie
  • Visitors: | Views:

嘿嘿 请我吃小蛋糕吧~

支付宝
微信