Android Studio依赖库导入

来源:互联网 发布:淘宝提前收款在哪里 编辑:程序博客网 时间:2024/06/06 20:52

在我们的项目中,或我或少都会用到一起第三方的库,那么对它的管理也就成为了项目中的一部分。这里就介绍下在Android Studio中如何去管理项目中的库和它们的依赖。

如何添加一个库

Android Studio中添加一个库有三种方法

第一种,直接拷贝到libs目录下

如图先把ja包拷贝到module中的libs目录下,然后点击如下图中所示按钮(Sync Project with Gradle Files)。完成,很简单的,这是常用的做法。
拷贝到libs

第二种, 在Project Structure中添加

  1. 打开Project Structure(File->Project Structure… 或者 ctrl+alt+shift+S),选择要添加的module, 选择Dependencies。
    Dependiencies

  2. 点击右边绿色的“+”号。
    添加

  3. 选择File dependency, 可以选择添加该Project下面的库文件。选择Module dependency, 可以选择Project下的依赖Module.
  4. 点击确定就可以添加。
    确定
    打开Module下的build.gradle文件,我们可以看到,这里新增加了我们添加的库,当然你也可以直接修改这个文件。
dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    testCompile 'junit:junit:4.12'    compile 'com.android.support:appcompat-v7:23.1.1'    compile 'com.android.support:design:23.1.1'    compile files('libs/universal-image-loader-1.9.4.jar')    compile project(':app2')}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

另外说一句,module库中build.gradle的申明为com.android.library

apply plugin: 'com.android.library'
  • 1
  • 1

第三种, 使用”Library dependency“方式添加

相信有人注意到了,在Project Structure中点击绿色的“+”号,会出现三种选择,在前面我介绍了其中两种,但我把“Library dependency”这个选择规入了第三种添加方式。原因是这里我们并不会直接去操作jar包,而是把它交给了Gradle去管理。我们先来看下怎么去添加,这里我以Google的gson为例:
1. 打开在Project Structure->Module->Dependencies->”+”->Library dependency。输入你要添加的jar包名字,可输入关键字,点击搜索。
Choose Library Dependency
2. Gradle会去搜索合适的库,选择你想到的库,点击确定。
com.google.code.gson:gson:2.5
3. 点击确定。
确定
来看下Module的build.gradle文件, 可以看到,这里的gson并没有看到libs\之类的路径,你在libs或者module中也找不到对应的jar文件。

dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    testCompile 'junit:junit:4.12'    compile 'com.android.support:appcompat-v7:23.1.1'    compile 'com.android.support:design:23.1.1'    compile files('libs/universal-image-loader-1.9.4.jar')    compile project(':app2')    compile 'com.google.code.gson:gson:2.5'}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

那么这个jar包在哪里呢?注意项目下面的External Libraries,展开它,原来它跑到这里来了。选中gson,点击右键,选择Library Properties…,可以看到,原来它的jar包下载到了这里。我们还可以对它进行管理,附加javadoc或者soure等等。
External Libraries

这不是很方便呢,如果第三方库有更新的版本了,也可以方便的去替换。那么还有个问题,这些jar包是从哪里去下载的呢?
还记得下Project中的build.gradle中的这句话吗,Android Studio就是从build.gradle里面定义的Maven仓库服务器上下载library的。jcenter 就是一个标准的Android library文件服务器,所有通过gradle导入的jar包都是从http://bintray.com/bintray/jcenter这个仓库上扒下来的。如果你需要的jar包在这个网站上没有,那就无法通过gradle的方式来导入。

allprojects {    repositories {        jcenter()    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

除此之外,我们还可以分享自己的Library到jcenter上,还可以自己定义特有的Maven仓库服务器,这里就没有去研究了。
好了,添加库到这里就说完了,至于如何删除一个库就很简单了,你可以在Project Structure中去删除,也可以在build.gradle中去删除。这里就不用多说了。
另外还可以修改依赖的顺序,同样的都可以在Project Structure或者build.gradle中做修改,也没有啥子多说的。

依赖范围

在Project Structure->Dependencies中,每一个库后面都有一个Scrope选项,这有什么用呢。
Scrope
Dependency scope 是用来限制Dependency的作用范围的, 影响项目在各个生命周期时导入的库的状态。
compile:默认选项,是对所有的build type以及favlors都会参与编译并且打包到最终的apk文件中。
provided:是对所有的build type以及favlors只在编译时使用,类似eclipse中的external-libs,只参与编译,不打包到最终apk。
APK:只会打包到apk文件中,而不参与编译,所以不能再代码中直接调用jar中的类或方法,否则在编译时会报错。
Test compile:针对单元测试代码的编译编译以及最终打包测试apk时有效,而对正常的debug或者release apk包不起作用。
Debug compile:针对debug模式的编译和最终的debug apk打包
Release compile:针对Release 模式的编译和最终的Release apk打包。

0 0
原创粉丝点击