如何创建模块
(1)project(在当前工程下面) --> new Module --> Android Library (Android应用程序的库)-->Module name:给这个库取名 lib_network(命名一般以lib_开头)
(2)ibrary依赖库和appapplication 的build.gradle区别:
library库只能被依赖,不能独立运行。application 应用可以独立运行。在库里面,库既然不是应用程序,不能独立运行,只能被其他应用程序依赖,那么就没有应用程序的Id。应用程序会有唯一的标识即其Id,还有版本号。
将Library依赖库改造为可运行的程序
①将build.gradle中的plugins的library改为application
②defaultConfig中添加唯一标识符applicationId
[versionCode 1 versionName “1.0”可有可无,可以拷贝下来]
③添加主界面LoginActivity(作为独立运行的应用程序需要有界面)
注意勾选Launcher Activity作为运行初始界面
④配置login模块下的AndroidManifest.xml⽂件
创建的所有的Activity都是在AndroidManifest.xml文件有注册的
↓表示注册了,但是缺乏主界面的<intent-filter>配置
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
⑤将app模块下的res → values 和values-night目录
copy 到 login→ res并更改名字
在strings中添加<string name="app_name">登录</string>
更改them中的name(注意两套主体都要改)
→最后在AndroidManifest.xml⽂件中配置label和theme
引用外部依赖库(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(注意是固定的写法)
2. 在工程里面,在buildSrc里新建一个New->File -> build.gradle(Groovy版本)/ build.gradle.kts(kotlin版本)
3.在 build.gradle写入代码
plugins{
`kotlin-dsl`
}
repositories{
mavenCentral()
}
Android Studio默认在编译的过程中,但凡做了以上操作,就可以通过buildSrc给所有的模块进行共享数据的
什么时候需要添加buildSrc:当需要统一管理所有build.gradle中的常量时
4.添加一个配置文件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即可。