Android Studio依赖库导入

    xiaoxiao2021-03-25  97

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

    如何添加一个库

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

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

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

    第二种, 在Project Structure中添加

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

    点击右边绿色的“+”号。

    选择File dependency, 可以选择添加该Project下面的库文件。选择Module dependency, 可以选择Project下的依赖Module. 点击确定就可以添加。 打开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') } 12345678 12345678

    另外说一句,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包名字,可输入关键字,点击搜索。 2. Gradle会去搜索合适的库,选择你想到的库,点击确定。 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' } 123456789 123456789

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

    这不是很方便呢,如果第三方库有更新的版本了,也可以方便的去替换。那么还有个问题,这些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() } } 12345 12345

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

    依赖范围

    在Project Structure->Dependencies中,每一个库后面都有一个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打包。

    转载请注明原文地址: https://ju.6miu.com/read-20054.html

    最新回复(0)