Android Studio : 导入第三方包

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xukunhui2/article/details/51007003

1. 导入Eclipse + Adt 项目到Android Studio

如果你之前一直是用Eclipse + Adt开发的项目,想要导入到Android Studio中继续开发

  • 来到欢迎页面,选择如下红色方框选项
    这里写图片描述
  • 点击下一步,会遇到下面提示框
    这里写图片描述

    • 前两个选项与Android Studio的依赖相关(依赖关系是一个指针,指向现有的软件库,您只需要指明你要使用什么库,而不需要将所有库打包为jar文件,然后构建系统就会在构建过程中去获取相应的库,可能是从本地源获取,或者从它知道的网上源码库获取。)
    • 第三个选项是和Gradle的模块命名风格有关,如果你勾选了这个选项,你的新项目将有一个简单的命名为app的单个模块,如果取消它,项目就会有一个跟项目名称相同的模块,建议把它勾选
  • 点击finish,AS会自动build gradle (此处会耗时一会儿), 完成会有个import-summary.txt 文件,该文件主要是用来介绍gradle在构建过程以及当中遇到的一些问题。比如哪些文件被重新移动或者组合等

  • 从Message窗口中可以看到一些错误提示:
    这里写图片描述
    提示中表示你的sdk中没有该项目要求的api级别为10的build version,这里你可以重新安装缺失的build version,当然也可以通过更改设置的方式来完成。这里我选择后者,在app目录下build.gradle中更改compileSdkVersion 为21解决。(此处的api级别21是我sdk中可以编译的最新的build version)。更改完build.gradle后,需要同步。然后Gradle项目就会重新构建。
    上一节我们有说过Gradle是一个集成到Android Studio的构建系统。

2. 导入带有第三方jar包的Eclipse项目到Android Studio

导入一个带jar文件的项目到AndroidStudio,如果使用了Android 内置库以外的jar文件,其中一些jar文件将被转换成依赖关系,而另外一些会被显示的导入, 这里会告诉你如何处理一个项目的jar文件没有转换成依赖关系的情况。
这里写图片描述
如上所示,导入XMLJDOMParser项目,这个项目使用了流行的JDOMParser,是一个开源的项目,没有由Oracle或google或者其他主要的软件供应商管理,但很受欢迎在Java中大量被使用。

查看app目录下的build.gradle文件,可以发现如下:

dependencies {
    compile 'com.android.support:support-v4:23.2.1'
    compile files('libs/jdom-2.0.3.jar')
}

导入之后发现在libs文件夹下 jdom-2.0.3.jar文件已被保留。

在许多项目中,当你导入它们,jar文件将不被转化成依赖关系,取而代之的只是在build.gradle 文件中对库的一个引用。 但是,在这个项目,jdom 被保留下来,并有一个对jar文件的引用加入,查看gradle文件的依赖关系部分,明确的指向这个版本的jar文件。这就是导入项目是可能出现的情况。

当你使用一个软件库,而那是构建系统已知的软件库,库本身将不会导入。而表示依赖关系的字符串将被添加到build.gradle,以引用该库。如一些Android内置的支持库(com.android.support:support-v4:23.2.1)。如上代码第一种表示方式就是这个情况。但是,当该jar文件没有被识别,它会已其原始状态被导入到该项目,并且对该jar文件的引用会被添加到依赖关系的部分。无论哪种方式,该项目应该还是有效,你应该能够用Android Studio继续进行开发。


3. 使用Android Studio 导入Jar包

下面我们来介绍一下在Android Studio中添加外部的Jar包,Android Studio添加Jar文件的方法有几种,如何添加Jar文件到你应用程序的依赖,取决于你要如何的去使用它。
如果你正在开发一个单一的项目,而你只是使用JAR文件一次,你可以使用一个非常简单的工作流程,那么复制JAR文件放到目录结构中,然后将其添加为一个库;如果你要将JAR文件共享到多个项目中,你还可以使用另一个种简单的办法。下面我们来学习一下这两种方式。

新建一个HelloWord项目,,如下图所示,我们将导入Jdom包(一个解析和生成xml的库)。
这里写图片描述

1. 方法一:

  • 复制该Jar文件到app目录下的libs文件夹中,此时JAR文件不一定会被注册,并可供编码和编译使用
    这里写图片描述
  • 右键单击jar文件,菜单底部,选择将其添加为库,弹出一个Create Library对话框,点击OK。此时会看到一个短暂的提示,表示Gradle正在同步。然后在app下的build.gradle下查看,你可以看到已添加的一行编译特定的jdom-2.0.5.jar JAR文件作为项目的一部分。
    compile files('libs/jdom-2.0.3.jar')

此时你就可以在java 代码中使用该Jar包了,编译通过就说明我们添加该库是成功的。这种方式是在项目的app modules中添加依赖关系,查看Project Structure中的modules中的app模块,在Dependencies选项卡中,可以从这里添加依赖关系,点击”+” 和 “-” 来添加和删除你的依赖模块。如下图所示:
这里写图片描述
如果想要移除此Jar包,你可以选择jdom行,点击”-“删除该依赖关系,之后AndroidStudio会重新构建应用程序,然后查看build.gradle 文件中的一行,可以看出已经自动删除了,现在已经完全移除jar包,可以直接删除此jar包。


2. 方法二:
上述方式是一种比较简单的在主应用程序app Modules下添加依赖关系的方式,第二种是新建一个自己的Modules,添加一个jar文件到它自己的Modules,然后该Modules与你的主应用程序有依赖关系。

  • 在项目打开的情况下,选择File –> New Module 选择导入一个现有的JAR 或者 AAR 包作为它自己的模块,点击下一步,然后选择我想要的导入的jar包,JDOM文件。键入所需要的file name,如下所示:
    这里写图片描述

  • 在Project Structure中查看可以看到 Modules中多了刚刚导入的jdom模块了。点击app进入Dependencies依赖关系选项卡,点击+号,选择Choose Modules,选择刚刚添加的jdom模块依赖,点击确定,此时Gradle会再次同步。如下所示:
    这里写图片描述
    查看build.gradle 可以最后一行自动为其添加了依赖关系了。

    compile project(':jdom-2.0.3')
  • 最后重新rebuild Project,以确保所有代码可以编译通过。以上就是一种创建一个独立的Modules,你现在可以添加其他库到模块当中,它们就会自动成为当前应用程序的一部分

以上就是以不同的方式整合jar文件到你的Android应用程序,并作为依赖。这是了解依赖的一个好的开始,这是一种连接一切代码到你要集成的应用程序中的方法。
接下来会告诉你另外一种方式添加,用一种叫做 “远程存储库”的方式。


3. 使用Moven依赖关系添加远程库

前面已经介绍了如何添加一个依赖到一个项目链接到你提供的*.jar文件。你也可以链接到存在的别的地方的库,无论是sdk自带的库或是从”远程仓库”自动下载的库。

Android Studio的依赖系统是基于一个被称为Maven的架构,而Maven仓库是库的”库”。这是一个开发者可以添加库的地方,然后其他开发人员可以下载它们。

现在我们来学习一下如何通过Moven来添加一个远程库,新建一个GsonApp的项目,需要添加一个Gson库,用来处理Json格式的数据解析。
这里写图片描述

上一讲: Android Studio : Gradle 讲到两个build.gradle 脚本文件,第一个处于顶层目录结构的build.gradle文件,这个文件一般不会去修改他,这里面有两个应用了jcenter ()方法, 这与远程仓库的使用至关重要。还有一个在app目录下的build.gradle文件,包含依赖关系。比如 如下就是一个引用现有库的例子:

compile 'com.android.support:appcompat-v7:23.1.121:23' 

它引用了开头字符串为com.android.support的那些库,然后引用了特定的库 appcompat-v7。现在我们来了解这些库来自何处?我们打开SDK Manager,在顶部extras文件夹下Android Support Library 查看该库的版本:
这里写图片描述
可以看到Android Support Library 的版本23.2.1版本已经安装完成了,因此这种依赖表明 “我要23.2.1版的支持库V7”,明确的引用我下载的这个文件。当你生成你的项目,Gradle 根据这个字符串,然后在一个列表查找它,那是Android Studio安装的一部分。它知道在哪里可以得到该文件。

但是如果使用不属于Android sdk的库呢?有一些Android很流行的开源库,Android Studio同样为你提供了一个非常简单的方法,去寻找并链接到这类库。

  • 与上一讲所述方法类似,在Project Structure中点击app进入Dependencies依赖关系选项卡,点击+号,选择Library dependenice(库依赖关系), 这里会列出所有流行库的依赖字符串。
    这里写图片描述
  • 搜索Gson,找到Moven Center里面的相关的gson依赖字符串。点击确定,然后在app下的build.gradle中查看,可以看到最后一行已经添加了此字符串了。

    compile 'com.google.code.gson:gson:2.6.2'

此时在java代码中测试可以使用此gson库了。如果我能做到这一点,编译并运行应用程序,那么我知道我添加的依赖可以正常使用了。

在上面的操作中可以看到我还没有包含 *.jar 文件到我的项目,不过,Gradle会根据我项目的需要它搜索那些库。如果我需要更改库的版本,可以在build.gradle文件中去修改它的版本,也可以从Project Structure中去添加一个更新的依赖库来。那么,这些库来自何方?它还是如何运作的呢?

我们回到顶层目录里面的build.gradle文件里,我们在看看这两个jcenter() 方法调用。

...
    repositories {
        jcenter()
    }

...

allprojects {
    repositories {
        jcenter()
    }
}

跟踪repositories下jcenter()方法,该方法位于RepositoryHandler.java中

    /**
     * Adds a repository which looks in Bintray's JCenter repository for dependencies.
     * <p>
     * The URL used to access this repository is {@literal "https://jcenter.bintray.com/"}.
     * The behavior of this repository is otherwise the same as those added by {@link #maven(org.gradle.api.Action)}.
     * <p>
     * Examples:
     * <pre autoTested="">
     * repositories {
     *     jcenter()
     * }
     * </pre>
     *
     * @return the added resolver
     * @see #jcenter(Action)
     */
    MavenArtifactRepository jcenter();

它返回一个MavenArtifactRepository实例。通过方法介绍了解到MavenArtifactRepository类封装了repository的url 。该url应该是moven的仓库地址 https://bintray.com/ 。bintray 是一个软件分发服务,它支持gradle使用的功能,它可以让下载需要的库.

可以搜索刚我们测试的Google gson,可以看到搜索到的内容和我们Android Studio中使用的完全一样。 https://bintray.com/bintray/jcenter/com.google.code.gson%3Agson/view

所以jcenter()这个方法,是指向在网络上的这个位置,这就是它是如何得到那个库,并整合到Android Studio项目,这不是唯一可用的Maven仓库,还有原始的仓库,Maven Central,并且gson库也被存储在那里。但是,Google团队已经决定使用bintray仓库。打开url:jcenter.bintray.com 那显示了仓库存储包的顶层视图,这些库都存储在这里。

所以这是关于这些远程依赖如何运作的提示。还有jcenter()方法告诉构建脚本到 jcenter.bintray.com 搜索库,然后app级别的构建脚本对应着实际使用的库,用包名,库名称和版本表示。在生成过程中,Gradle首先查找本地,看它是否能在sdk库找到,如果不能,它搜索远程仓库,当发现了库,就会下载,然后那个库就可以Android Studio中使用了.


以上就是Android Studio添加库的的几种方式。

猜你喜欢

转载自blog.csdn.net/xukunhui2/article/details/51007003