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

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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、付费专栏及课程。

余额充值