前言

  Module项目,顾名思义就是作为app的独立的单元模块的项目。

  在小型app项目里因为没有这么多页面与java文件,所以模块意义不大,所以在小型项目里意义更多是用于管理libs,毕竟将所有的第三方库都放到主项目的libs下,如果第三方库多了管理这个libs文件夹会特别费劲,因为文件太多了。我们可以将一些重量级的第三方库独立用一个Module管理。

  而在大型项目里意义就很大了,因为Android开发是不建议在主项目里放入大量的文件来管理各个模块的,一方面很乱各种依赖,另一方面也违背了插拔模块与面对对象的思想。所以将一些模块独立开放到module里意义重大,这样在分工开发的时候各自的开发人员只需要关注自己的module项目就行了。 另外各个java文件也可以很平面化管理(只在项目里创建几个类别文件),而不是根据一个模块在主项目里创建一个这个模块名称的文件夹,然后在里面又创建类别文件夹在来区分放入各种这个模块的activity、adapter、util、widget、bean。正确做法应该将这个模块独立成一个module项目。

添加一个新的Module项目

    第一步:在Android studio的菜单栏 找到 > File > New > New Module... 点击进入 Create New Module

    

    选择Android Library 点击 Next

    第二步:输入项目名称

    

    

导入一个旧的Module项目

  第一步:在Android studio的菜单栏 找到 > File > New > Import Module... 点击进入

  

  第二步:导入一个自己需要的项目,并且设置名称,点击Finish。我这里选择了一个叫MyModule的项目

成功导入后我们可以在目录下面看到这个项目。

第三步,导入完成后并不是结束了,现在需要配置这个项目成为library项目

  1.首先我们需要进入我们的app主项目的build.gradle下添加这个项目

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' implementation project(':MyModule')//在这里引用项目 注意别忘记:号 }

  2.修改根目录下的settings.gradle文件 添加上你导入的项目名称

include ':app', 'MyModule'
rootProject.name='FragmentDemo'

3.打开MyModule项目下的build.gradle,我们将在这里配置相关属性,首先我们看看如果没有配置过的build.gradle是什么样的并且标注要修改的点

  没有修改过过的build.gradle

apply plugin: 'com.android.application' //这里要修改成 'com.android.library'

android {
compileSdkVersion 28
defaultConfig {
applicationId "com.zh.mymodule" //这个id要去掉
minSdkVersion 27 //注意这里的最低版本,需要与主项目一致
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}

  修改后

apply plugin: 'com.android.library'

android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 27
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}

  4.重新编译整个项目,就可以看到我们的项目变成library项目了

删除一个Module项目

  1.去掉settings.gradle文件里,需要删除的项目名称。 这步很重要如果不删除这个项目名称,你无法在Android studio里删除这个导入的项目,并且就算手动在文件夹里删除目录Android studio依然自动生成这个项目的目录

  2.去掉app主项目的build.gradle文件里,implementation project()的项目

  3.然后就是重新编译一下项目,这个时候项目的library属性就被去除了,然后直接删除这个项目即可。

设置Module项目的Libs的Jar在主项目里使用

1.在项目里添加libs包,并且加入jar

2.设置这个module项目的build.gradle

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
api files('libs/xxxxxxxx.1.0_L.jar') //关键点 api files
}

这样就可以在主项目上使用这个jar包了,而不是jar只局限在这个module项目里

    

END

Android studio 添加引用Module项目 与 设置Module项目的Libs的Jar在主项目里使用的更多相关文章

  1. Android Studio 添加引用Module项目

    新建Android项目,修改为Module 新建一个android项目 给项目命名,这里命名为MyLibrary,作为可引用的Module项目 点击下一步,选择一个Activity,点击ok 下面将这 ...

  2. Android studio 添加引用新建类库

    1.新建一个工程包 2.修改AndroidManifest.xml 将AndroidManifest.xml 修改为 <manifest xmlns:android="http://s ...

  3. 在Android Studio添加本地aar包引用

    1.如何在Android Studio添加本地aar包引用 https://jingyan.baidu.com/article/2a13832890d08f074a134ff0.html 2.完成上述 ...

  4. Eclipse / android studio 添加第三方jar包 步骤

    eclipse 将第三方包放到libs文件夹后并没有引用. 基本步骤分为3步,具体介绍如下: 打开自己的Eclipse,在自己的Android工程上名上右键->Build Path ->C ...

  5. Android Studio(六):Android Studio添加注释模板

    Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...

  6. 在Xcode5和Android Studio添加工程间的依赖

    正在编辑中,尚未完成 先看看ios的target是什么,请先参看http://www.cocoachina.com/bbs/read.php?tid-10884.html做个大概了解 这里有一篇文章, ...

  7. Android studio 中引用jar的其实是Maven?(二)

    上一篇:Android studio 中引用jar的其实是Maven?(一) 搭建maven仓库: 去了解一个新的事物的时候,最好的方式就是去使用它.例如去了解一座城市的时候,最好的方式就是乘坐公共交 ...

  8. Android studio 中引用jar的其实是Maven?(一)

    由于Studio比eclipse多了一步对工程构建的步骤,即为build.gradle这个文件运行,因此其引入第三方开发jar包与lib工程对比Eclipse已完成不同,引入第三方jar与lib工程显 ...

  9. 【Android Studio安装部署系列】十五、Android studio添加Assets目录

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Android Studio新建项目时是没有assets目录,需要自己手动创建. app右键——New——Folder——Asset ...

随机推荐

  1. nginx新增简单下载站点

    配置nginx server { autoindex on;# 显示目录 autoindex_exact_size on;# 显示文件大小 autoindex_localtime on;# 显示文件时 ...

  2. Spring Boot整合Thymeleaf模板引擎

    什么是Thymeleaf Thymeleaf是一款用于渲染XML.XHTML.HTML5内容的模板引擎.类似Velocity,FreeMaker模板引擎,它也可以轻易的与Spring MVC等Web框 ...

  3. JDK8之新特性扩展篇

    之前分篇章讲了一些JKD8中添加的新特性,还有一些新特性这里也一并讲下. BASE64 base64编码解码已经被加入到了jdk8中了. import java.nio.charset.Standar ...

  4. VMware中 CentOS7挂载windows共享文件夹

    在编译自己的hadoop时,不想再次在虚拟机中下载jar包,就想到了挂载自己本地的maven仓库,使用本地仓库来进行编译,这里就需要使用VMware的VMware Tools了,直接复制官方文档如下 ...

  5. CSS兼容问题资料汇集

    CSS兼容问题一直困扰着CSSer,面对各浏览器,往往感觉束手无策,愁眉不展.CSS Hack是在标准CSS没办法兼容各浏览器显示效果时才会用上的补救方法,在各浏览器厂商解析CSS没有达成一致前,我们 ...

  6. 读书笔记二、ndarray的数据类型

    dtype(数据类型)是一个特殊的对象,它含有ndarray将一块内存解释为特定数据类型所需的信息: import numpy as np arr1=np.array([1,2,3],dtype=np ...

  7. 记一次为解决Python读取PDF文件的Shell操作

    目录 一.背景 二.问题 三.解决 四.一顿分析及 Shell 操作 五.后续 一.背景 本想将 PDF 文件转换为 Word 文档,然后网上搜索了一下发现有挺多转换的软件.有的是免费的.收费,咱也不 ...

  8. 【锁】Innodb锁

    InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION):二是采用了行级锁.行级锁与表级锁本来就有许多不同之处,另外,事务的引入也带来了一些新问题.下面我们先介绍一点背景知识 ...

  9. Nmap扫描与Tcpdump抓包分析

    扫描与抓包分析 3.1 问题 本案例要求熟悉Linux主机环境下的常用安全工具,完成以下任务操作: 使用NMAP扫描来获取指定主机/网段的相关信息 使用EtterCAP截获明文通信的密码.检测非加密通 ...

  10. NX二次开发-设置功能区工具栏的可见性UF_UI_set_ribbon_vis

    NX9+VS2012 1.打开D:\Program Files\Siemens\NX 9.0\UGII\menus\ug_main.men 找到装配和PMI,在中间加上一段 TOGGLE_BUTTON ...