• AndroidStudio导入第三方开源库


    AndroidStudio还是0.8的版本的时候下载下来看了一下,都推出三年左右的工具了,我竟然没有用过,昨天打算好好研究一下以便以后转向AS,毕竟google出的这么好的IDE,不用都对不起自己。不过真心很好用,尤其黑色的主题风格很舒服,但对于一直使用eclipse的我还是有点不习惯,主要是导包的方式和eclipse差异是在很大,于是在网上各种搜索,研究了很久才弄明白,根据别人的资料加上自己的理解做了一点记录。

    导入jar包

    比如导入volley.jar,只需要将jar文件拷贝到libs目录下,由于已经有了compile fileTree(dir: 'libs', include: ['*.jar'])行,于是只需要syncproject即可

    或者选中该jar文件,右键-> add as library,或者直接在模块的build.gradle中添加依赖

    dependencies {
       compile files('libs/volley.jar')
    }
    

    导入带资源的aar包

    通过仓库导入的方式是通用的,jar包也可以通过本地或者仓库来导入,方式是一样的,只是从本地导入jar和aar的方式是不太一样。实际上jar和arr都是一种压缩包,区别在于是不是只包含资源文件。

    从仓库导入

    在eclipse上我们一般是通过add Library将一个库工程添加进来,这里所说的aar其实也是一种压缩文件,不同于普通的jar包,它还包含了资源文件,相当于对库工程的打包,可以认为arr文件就是来代替整个工程作为library而存在的。这里只讨论如何导入这种包。

    这种包的导入最好是能从仓库导入,在模块的build.gradle文件中添加依赖,这样在build的时候就会自动去下载,比如引入sliding-menu库

    打开项目结构,这里只需要搜索关键字即可,点击ok就会自动从仓库下载,然后sync project


    下载完后就会发现已经导入了该库,可以在External Libraries下面看到


    同时也会在build.gradle文件里面添加这条依赖,平时我们会看到一些开源项目的readme文件里面都会告诉你怎么添加依赖,所以直接添加在这里,然后sync也是可以的。、

    可以看到已经成功的导入了SlidingMenu库。

     

    这个库是通过Gradle自己去仓库下载到的,他的位置在User.gradlecachesmodules-2files-2.1com.github.itsmechlarkandroid-sliding-menu...去仓库下载后就会缓存在本地,下次需要依赖该库时就不需要再次下载。

    从本地导入

    当然也可以本地导入这个aar包,首先删除前面添加的对sliding-menu的依赖,然后只把android-sliding-menu-1.0.1.aar拿出来放在lib目录下,在build.gradle文件添加如下内容再次同步项目,即可达到同样的目的。


    可以看到在External Library里面有了Sliding-Menu库,并且后面还有个短横线,表示是本地导入的?


    同时可以在module/build/intermediates/exploded-arr目录下看到导入的arr包的内容


    添加本地aar在不同版本表现不太一样,我使用的是AndroidStudio2.1.1,参照stackoverflow上的回答How to manually include external aar package using new Gradle Android Build System

    dependencies {
        compile 'package.name.of.your.aar:myaar@aar'
    }
    
    repositories{
        flatDir{
            dirs 'libs'
        }
    }

    测试发现冒号前面的package.name.of.your.aar省略也是可以的

    使用Android Support Library

    使用google的support Library,作为兼容包的一系列库,首先需要通过SDK Manager下载,这些内容会下载到sdk/extras/…./support/目录下,官网给的添加依赖的步骤就是在模块的build.gradel文件添加依赖,比如想使用百分比布局库,只需要添加如下依赖即可

    dependencies {
    compile 'com.android.support:percent:23.4.0'
    }
    当然也可以通过引用jar包或aar的方式,具体视当前需要引入的支持库是否仅包含类文件而定。还是以引入这个百分比布局的库为例,在目录sdkextrasandroidm2repositorycomandroidsupportpercent里面找一个版本的包如percent-23.4.0.aar,然后和上面添加本地aar一样的方法,将其拷贝到lib目录下,添加依赖即可。


    依赖模块

    将第三方开源项目以模块的方式导入,这种方式和eclipse中导入库工程是类似的,这里还是以slidingmenu为例,虽然这个项目我只用过一次可能以后都没有人使用了,但我想找个例子的时候首先想到了这个,将该项目SlidingMenu下载到本地,解压后得到library文件夹就是我们要用到的库,点击File->New->Import Moudle…

    选中库所在位置,点击Finish


    此时可以在项目的settings.gradle文件里面看到已经包含了两个模块。

     

    再为android程序添加模块依赖,选中模块slidingmenu-library点击Ok即可导入成功。


    其实就是添加了如下依赖,所以直接添加这句也是可以的。


    接下来就可以使用这个库提供的类和资源了。

    注:

    1、导入之后可能会出现一些错误,比如我的AS只下载了API 23,而slidingmenu的build.gradle文件里面可能使用其他的API级别。

    2、apply plugin: 'android-library'的意思是这个模块作为库模块存在,可以理解为eclipse中将项目的is Library勾选。可以看到上面有横线,表明被遗弃,应该是旧的写法,新的写法是’com.android.library’,当将模块配置为library时,build后在build/outputs/arr目录下可以看到输出的arr文件,只使用这个aar包也是可以的,如同上面导入本地的aar的方式即可。



  • 相关阅读:
    关于slot标签的使用
    vue组件
    template和component的理解(待更正)
    input 的属性autocomplete
    关于render: h => h(App)和components: { App }的区别
    关于vue的简单知识
    获取页面跳转携带的参数
    关于跨域的简单想法(此想法是错误的,特此备注)
    关于jq建立类似与双向绑定的函数
    关于jq将一个页面引入另一个页面,类似与组件化的解决方案
  • 原文地址:https://www.cnblogs.com/qhyuan1992/p/6071977.html
Copyright © 2020-2023  润新知