前一篇博客详细讲了怎样建立一个安卓工程,见从零构建Android工程,今天在它的基础上演示怎样对主工程添加依赖。java
进入主题以前,先声明下,build版本3.x以上已不在支持compile
指令,使用implementation
或api
。假设有两个 module A 和 B,而且 A 依赖 B。若是在 B 中使用implementation
依赖了jar、aar或module,那么 A 中没法获取到被依赖库的 api。所以,api
指令诞生了。git
在app
目录下新建libs
文件夹,并将须要的jar
文件拷贝到libs
目录下。github
方式一:spring
逐个jar
文件添加依赖。json
implementation files('libs/json_simple-1.1.jar')
复制代码
方式二:api
依赖整个libs
目录app
implementation fileTree(include: '*.jar', dir: 'libs')
复制代码
两种方式能够共存。若是被依赖的module
中有jar
要传递依赖,则能够单独使用api
指令声明。不推荐使用api fileTree
。maven
aar是Android专用的库形式,aar文件不只包含java代码(class.jar文件),还能够包含asset目录和res目录的资源。同jar同样,有两种依赖方式,而且都放在libs
目录。gradle
方式一:ui
逐个aar
文件添加依赖。
implementation(name: 'fbcore-1.5.0', ext: 'aar')
复制代码
若是出现提示Failed to resolve: :fbcore-1.5.0:,那么还须要添加:
repositories {
flatDir {
dirs 'libs'
}
}
复制代码
该配置能够放在module的build.gradle文件,还能够放在项目的build.gradle文件中。
allprojects{
repositories{
jcenter()
google()
flatDir {
dirs 'libs'
}
}
}
复制代码
方式二:
依赖整个libs
目录
implementation fileTree(include: '*.aar', dir: 'libs')
复制代码
同jar同样,两种方式能够共存。
可是,下面两张图中,第一张是逐个aar
依赖的,第二张是依赖整个libs
目录的。
所以仍是建议逐个aar
依赖,在工程目录中显示效果更友好些。
见从零构建Android工程,已经描述了怎样建立并依赖module
。
一般状况下,咱们依赖的module
同主module
在同一个工程目录下,用上述方式依赖便可。可是,AndroidStudio
还支持依赖其余位置文件夹的module
。
首先制造如图的目录结构,library
同Demo
工程目录同级。
其次在settins.gradle
文件夹中添加:
include 'libModule'
project(':libModule').projectDir = new File(settingsDir, "../library")
复制代码
构建后,工程结构如图
使用implementation project(':libModule')
与主项目关联。
Gradle已经支持三个maven
库地址。已经包含了大多数经常使用的开发库。
repositories{
jcenter()
google()
mavenCentral()
}
复制代码
一般咱们使用本身开发的maven
库或使用别人的maven
库不在上述的三个仓库中,那么须要指定maven
库地址。
repositories {
maven { url "http://maven.springframework.org/release" }
maven { url "https://maven.fabric.io/public" }
}
复制代码
上面的地址仅供参考,并不是实际的仓库地址,须要修改为库的实际地址。
配置好maven库地址后,接下来就能够直接引用远程库。
implementation 'com.google.code.gson:gson:2.8.5'
复制代码
上述远程库名称由三部分构成,groupid
,artifactid
,version
。
此处是广告:Flueky的技术小站