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\.gradle\caches\modules-2\files-2.1\com.github.itsmechlark\android-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,参照*上的回答How to manually include external aar package using new Gradle Android Build System
dependencies {测试发现冒号前面的package.name.of.your.aar省略也是可以的
compile 'package.name.of.your.aar:myaar@aar'
}
repositories{
flatDir{
dirs 'libs'
}
}
使用Android Support Library
使用google的support Library,作为兼容包的一系列库,首先需要通过SDK Manager下载,这些内容会下载到sdk/extras/…./support/目录下,官网给的添加依赖的步骤就是在模块的build.gradel文件添加依赖,比如想使用百分比布局库,只需要添加如下依赖即可
dependencies {当然也可以通过引用jar包或aar的方式,具体视当前需要引入的支持库是否仅包含类文件而定。还是以引入这个百分比布局的库为例,在目录sdk\extras\android\m2repository\com\android\support\percent里面找一个版本的包如percent-23.4.0.aar,然后和上面添加本地aar一样的方法,将其拷贝到lib目录下,添加依赖即可。
compile 'com.android.support:percent:23.4.0'
}
依赖模块
将第三方开源项目以模块的方式导入,这种方式和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的方式即可。