Android Studio使用第三方库
2016-02-16 16:11
369 查看
转自:http://ask.android-studio.org/?/article/37
1.使用本地jar
在AS中使用本地jar非常简单,只需要将jar文件放到libs目录下,然后点下工具栏中的Sync Project with Gradle Files图标即可。
刚放到libs目录下,尚未编译
按下工具栏中的Sync Project with Gradle Files图标,同步项目
编译好之后如下图所示:
有没有正确编译的标志就是有没有出现三角箭头
另外指定libs目录为jar库目录的配置就是在build.gradle文件中,如下图所示:
如果你的build.gradle文件中没有这行代码的话按照图中所写加上,然后同步即可
2.使用Module依赖
相信各位都有在Eclipse中使用过library project的经历,这对于使用一些UI库尤为方便。那么相对应的在AS中就是Module之间的依赖。
现在假如项目中有两个Module,一个library一个sample,现在sample要依赖library
只需在sample的build.gradle文件中添加compile project(':library’)即可,如下图所示:
这里有个限制就是library必须library module,那么如何决定一个Module是不是library module呢,区别就在于build.gradle文件的apply plugin参数,例如:
sample的apply plugin参数的值是com.android.application,就说明这是个app
library的apply plugin参数的值是com.android.library,就说明这是个library
需要注意的是从1.0开始library module的build.gradle不再需要applicationId参数,如果有的请删除
3.使用AAR
我们在开发Android程序的过程中,总会要用到第三方的库,那么第三方的库无外乎两种情况
一些基础功能库,例如图片加载、网络请求等,这些库只有一个jar文件;
一些UI组件库,既包含有Java文件又有资源文件
对于第一种库我们使用的时候就很方便了直接放到libs目录下就可以了。
可是对于第二种库使用起来就比较麻烦了,在eclipse里我们要么把第三方库弄成一个library项目(在studio中就是把第三方库弄成一个library Module)然后引用,要么就把第三方库里的所有文件融合到我们的项目中。这样很不方便,也很难维护,我们大概都被这种方式折磨过
于是Android官方在开发Android Studio的时候就发布了一种独有的格式AAR,专门用于打包UI组件库。与jar相比其多了一些UI组件用到的属性、图片等一系列文件,它的好处在于你不需要再多创建一个Library
Module,只需引用这个AAR文件即可,Android Sudio会自动把AAR包里的文件跟你的项目融合。
AAR包的内部文件结构
/AndroidManifest.xml (mandatory)
/classes.jar (mandatory)
/res/ (mandatory)
/R.txt (mandatory)
/assets/ (optional)
/libs/*.jar (optional)
/jni/<abi>/*.so (optional)
/proguard.txt (optional)
/lint.jar (optional)
优点:
使用方便
提升编译速度
缺点:
不能方便的对AAR进行修改
Eclipse不支持AAR,因为AAR是Google在开发Android Studio的时候推出的,并且Google正在抛弃Eclipse转向Android Studio
生成AAR包
在你的项目中创建一个library Module然后在终端中执行grade build,然后到build/outputs/aar目录下就能看到你的AAR文件
使用本地AAR
以recyclerview-v7-21.0.0.aar为例
首先将AAR包放到libs文件夹下
然后在build.gradle中添加如下代码将libs文件夹作为一个仓库
然后依赖中配置即可
4.使用Maven仓库中的库
Gradle还支持直接使用Maven中的项目,使用方式也是很简单,只需在依赖配置中通过compile参数配置即可,jar和aar都支持。例如:
1.使用本地jar
在AS中使用本地jar非常简单,只需要将jar文件放到libs目录下,然后点下工具栏中的Sync Project with Gradle Files图标即可。
刚放到libs目录下,尚未编译
按下工具栏中的Sync Project with Gradle Files图标,同步项目
编译好之后如下图所示:
有没有正确编译的标志就是有没有出现三角箭头
另外指定libs目录为jar库目录的配置就是在build.gradle文件中,如下图所示:
如果你的build.gradle文件中没有这行代码的话按照图中所写加上,然后同步即可
2.使用Module依赖
相信各位都有在Eclipse中使用过library project的经历,这对于使用一些UI库尤为方便。那么相对应的在AS中就是Module之间的依赖。
现在假如项目中有两个Module,一个library一个sample,现在sample要依赖library
只需在sample的build.gradle文件中添加compile project(':library’)即可,如下图所示:
这里有个限制就是library必须library module,那么如何决定一个Module是不是library module呢,区别就在于build.gradle文件的apply plugin参数,例如:
sample的apply plugin参数的值是com.android.application,就说明这是个app
library的apply plugin参数的值是com.android.library,就说明这是个library
需要注意的是从1.0开始library module的build.gradle不再需要applicationId参数,如果有的请删除
3.使用AAR
我们在开发Android程序的过程中,总会要用到第三方的库,那么第三方的库无外乎两种情况
一些基础功能库,例如图片加载、网络请求等,这些库只有一个jar文件;
一些UI组件库,既包含有Java文件又有资源文件
对于第一种库我们使用的时候就很方便了直接放到libs目录下就可以了。
可是对于第二种库使用起来就比较麻烦了,在eclipse里我们要么把第三方库弄成一个library项目(在studio中就是把第三方库弄成一个library Module)然后引用,要么就把第三方库里的所有文件融合到我们的项目中。这样很不方便,也很难维护,我们大概都被这种方式折磨过
于是Android官方在开发Android Studio的时候就发布了一种独有的格式AAR,专门用于打包UI组件库。与jar相比其多了一些UI组件用到的属性、图片等一系列文件,它的好处在于你不需要再多创建一个Library
Module,只需引用这个AAR文件即可,Android Sudio会自动把AAR包里的文件跟你的项目融合。
AAR包的内部文件结构
/AndroidManifest.xml (mandatory)
/classes.jar (mandatory)
/res/ (mandatory)
/R.txt (mandatory)
/assets/ (optional)
/libs/*.jar (optional)
/jni/<abi>/*.so (optional)
/proguard.txt (optional)
/lint.jar (optional)
优点:
使用方便
提升编译速度
缺点:
不能方便的对AAR进行修改
Eclipse不支持AAR,因为AAR是Google在开发Android Studio的时候推出的,并且Google正在抛弃Eclipse转向Android Studio
生成AAR包
在你的项目中创建一个library Module然后在终端中执行grade build,然后到build/outputs/aar目录下就能看到你的AAR文件
使用本地AAR
以recyclerview-v7-21.0.0.aar为例
首先将AAR包放到libs文件夹下
然后在build.gradle中添加如下代码将libs文件夹作为一个仓库
然后依赖中配置即可
4.使用Maven仓库中的库
Gradle还支持直接使用Maven中的项目,使用方式也是很简单,只需在依赖配置中通过compile参数配置即可,jar和aar都支持。例如:
相关文章推荐
- 安卓选择器类库AndroidPicker、定时器类库CountdownView、上拉刷新加载更多的EasyRecyclerView
- Android JNI打印信息
- android wifi子系统
- 使用ScrollView实现滚动
- Android事件分发机制学习和总结
- Android 复制文本代码段
- android屏幕适配
- android源代码百度网盘分享
- Android xml中为文字添加阴影(shadow方法)
- Android手机调整/data分区和/sdcard分区
- android 控件滑动
- Android Volley框架的使用(3)
- Android 沉浸式状态栏
- Android设置壁纸
- Android IPC进程通信——Messager方式
- Android Handler 机制
- Android获得全局进程信息以及进程使用的内存情况
- Android中最常使用的Context上下文相关总结
- Android应用内多进程的使用及注意事项
- Android 通过Service单独进程模仿离线推送 Server Push