android studio中application module,library module,java module的区别

本文详细解释了Android Studio中Application Module、Library Module及Java Module的区别。Application Module可独立运行,而Library Module和Java Module主要用于提供代码复用。文章还讨论了不同模块间的转换方式及其编译结果。

android studio中application module,library module,java module的区别


如题,我们知道,android stuido 中一个project中可以包含很多个module。我查了一下,主要是包含了android application module,android library module,java library module这三种module。

我现在的理解是android application module以作为一个可以运行的应用,而android library module和libs中的.jar文件一样,就是用来调用的库,而java library module也类似android library module。

疑问:

  1. 一个project中可以有多个android application module么?如果可以的话都可以作为一个单独的程序运行么?
  2. android application module也可以像android library module一样当作库来调用么?
  3. android library module可以作为一个程序运行么?
  4. 三者之间有什么区别?


解答:

  1. 可以又多个 app module, 都可以作为单独的程序运行,因为编译的时候是针对单个 module 编译的,而 module 之间也都是相互独立的,所以之间没有相互影响。
  2. 原则上 app module 也能像 library 一样当作库来调用,不过 Android Studio 使用 Gradle 编译,而编译 app module 和 library module 时使用的插件是不一样的(生成结果也不同),所以也就不能直接作为库来调用,不过做一些简单的修改,就能马上修改成一个 library module 库,目录结构和代码都不需要改变。
  3. 如刚才所说, library module 的编译结果不是 apk ,所以也就没法运行。
  4. app module 和 library module 以及 java module 主要区别在于生成内容的不同,app module 生成 apk 程序文件。library module 生成 aar 文件,java module 生成 jar 文件。 aar 和 jar 文件都可以作为 app 的依赖库,主要区别在于 aar 除了能携带编译好的程序以外,还能携带资源,是对jar文件的一个提升。


转载地址: https://segmentfault.com/q/1010000004204055


### Android Studio Module 配置教程 #### 1. 创建新的模块 在 Android Studio 中,可以通过以下方式创建一个新的模块: 通过菜单栏选择 `File` -> `New` -> `New Module...`,打开新建模块向导对话框。在此处可以选择不同类型的模块模板,例如 Phone Tablet 庢、Wear OS App 或者 Library 等[^1]。 #### 2. 修改 build.gradle 文件 每一个新创建的模块都会自动生成对应的 `build.gradle` 文件。对于应用模块而言,通常会在文件顶部看到如下代码: ```groovy apply plugin: 'com.android.application' ``` 这段代码表明当前模块是一个可以独立运行的应用程序模块[^3]。如果正在配置的是库模块,则应改为: ```groovy apply plugin: 'com.android.library' ``` 这样设置后,该模块将被识别为一个库模块而非应用程序模块。 #### 3. 设置依赖关系 为了让不同的模块之间能够互相调用功能或者共享资源,需要正确设定它们之间的依赖关系。假设有一个名为 `app` 的主应用模块以及另一个叫作 `mylibrary` 的库模块,可以在 `app/build.gradle` 文件中的 dependencies 块里加入下面这一行来建立两者间的联系: ```groovy implementation project(':mylibrary') ``` 这条语句告诉构建系统当编译 app 模块的时候也要一起编译 mylibrary 并将其作为依赖项包含进来。 #### 4. 自定义 Gradle 版本 根据所使用的 Android Studio 版本不同,默认情况下可能会自动下载特定版本号的 gradle 分发包。比如如果是 android studio 3.5.2 则关联的就是 gradle-5.4.1-all.zip;而若是选择了更高版本如 4.0.1,则默认匹配到 gradle-6.1.1-all.zip 。当然也可以手动指定所需的 gradle 发布版,在全局级 settings.gradle 或本地 module-level buildscript repositories 下调整相应参数即可实现定制化需求[^2]。 #### 5. 使用 Maven 仓库加速依赖加载 为了提高外部库导入效率并解决可能存在的网络连接问题,建议添加阿里云 maven 仓库地址至项目的根目录下的 top-level build.gradle 文件内的 allprojects.repositories{}闭合标签内部位置: ```groovy allprojects { repositories { google() jcenter() // Deprecated but still useful sometimes. maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } } } ``` 以上操作有助于加快国内开发者获取远程组件的速度,并减少因国际互联网状况不佳带来的不便影响[^5]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值