前言

  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. JUC源码分析-线程池篇(三)ScheduledThreadPoolExecutor

    JUC源码分析-线程池篇(三)ScheduledThreadPoolExecutor ScheduledThreadPoolExecutor 继承自 ThreadPoolExecutor.它主要用来在 ...

  2. Unity Shader后处理-搜索灰度效果

    如U3D中Hierarchy面板下的搜索效果: 讲解分析: 1.这种PostEffect效果其实就是指Unity shader的后处理,即游戏中实现屏幕特效的常见方法.顾名思义屏幕后处理就是指在渲染完 ...

  3. Java生产环境下性能监控与调优详解

    1:JVM字节码指令与 javapjavap <options> <classes>cd monitor_tuning/target/classes/org/alanhou/m ...

  4. Spark Streaming与Storm的对比

  5. 快速读取 C++

    int read() { ; ; char ch=getchar(); ') { if (ch=='-') f=-; ch=getchar(); } ') { x=x*+ch-'; ch=getcha ...

  6. 基于nginx结合openssl实现https

    [root@localhost ~]#systemctl stop firewalld[root@localhost ~]#setenforce 0[root@localhost ~]#iptable ...

  7. 检测apache状态,当apache处于非running状态如何脚本启动

    编写脚本内容 #!/bin/bashURL="http://127.0.0.1/"curlit(){curl --connect-timeout 15 --max-time 20 ...

  8. react 使用触摸事件

    react开发支持的事件中,onClick事件,部分标签不支持点击,只能onTouchEnd,但是在移动端,手指触碰到事件绑定元素上,滑动,也会触发该事件,故来share解决办法,有更好的方法,欢迎评 ...

  9. 【BZOJ 3569】DZY Loves Chinese II

    题面 Description 神校XJ之学霸兮,Dzy皇考曰JC. 摄提贞于孟陬兮,惟庚寅Dzy以降. 纷Dzy既有此内美兮,又重之以修能. 遂降临于OI界,欲以神力而凌♂辱众生. 今Dzy有一魞歄图 ...

  10. Maven pom配置(Spring+SpringMvc+mybaties)

    <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven ...