从框架到完整项目搭建,实战项目《约个球》(7)- 将项目迁移到android studio,使用gradle搭建android项目(上)
来源:互联网 发布:ecshop多用户商城源码 编辑:程序博客网 时间:2024/06/18 10:19
项目github地址:https://github.com/CameloeAnthony/DatingBall
http://ask.android-studio.org/?/article/37 本篇文章转载地址,ps:网上的文章太多了,终于找到自己想解决的问题的文章
现在的项目结构都在使用gradle的结构模式。所以我们还是将自己的项目转移到Android Studio 上,使用Gradle模式。
第一次学习使用Gradle,好麻烦。。。。。。。。。。
下面来学习AS导入第三方库的方法。然后我会在我们我们的github更新代码。将从框架到完整项目搭建,实战项目《约个球》(5)-为我们自己的框架导入网络的开源框架 中提到的所有开源框架,以及最近需要修改的做出来。做一个学习的记录,也希望对看到的人有一定的帮助。
1.使用本地jar
在AS中使用本地jar非常简单,只需要将jar文件放到libs目录下,然后点下工具栏中的Sync Project with Gradle Files图标即可。刚放到libs目录下,尚未编译
![](http://ask.android-studio.org/uploads/article/20150214/0d25d56e77e9cca4a772cdda874dcfe2.png)
按下工具栏中的Sync Project with Gradle Files图标,同步项目
![](http://ask.android-studio.org/uploads/article/20150214/7f3d89788015205d5fa3177b26d031f1.png)
编译好之后如下图所示:
![](http://ask.android-studio.org/uploads/article/20150214/4974b4259bd2d9f77ad6e097f00bbc9a.png)
有没有正确编译的标志就是有没有出现三角箭头
另外指定libs目录为jar库目录的配置就是在build.gradle文件中,如下图所示:
如果你的build.gradle文件中没有这行代码的话按照图中所写加上,然后同步即可。
另外指定libs目录为jar库目录的配置就是在build.gradle文件中,如下图所示:
![](http://ask.android-studio.org/uploads/article/20150214/aca92111e4e3bd69c48a90a00a92ab55.png)
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参数,如果有的请删除。
相信各位都有在Eclipse中使用过library project的经历,这对于使用一些UI库尤为方便。那么相对应的在AS中就是Module之间的依赖。
现在假如项目中有两个Module,一个library一个sample,现在sample要依赖library
![](http://ask.android-studio.org/uploads/article/20150214/65f10ee077e4443b47a7e75233f632d5.png)
![](http://ask.android-studio.org/uploads/article/20150214/ec73d664f41bad1a969c3b40cca37f67.png)
sample的apply plugin参数的值是com.android.application,就说明这是个app
![](http://ask.android-studio.org/uploads/article/20150214/dbbed96a347c6dc6968f0e4291a8afdb.png)
![](http://ask.android-studio.org/uploads/article/20150214/79a5fc0b1babc1a238d2024e8fa053f7.png)
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包里的文件跟你的项目融合。
我们在开发Android程序的过程中,总会要用到第三方的库,那么第三方的库无外乎两种情况
一些基础功能库,例如图片加载、网络请求等,这些库只有一个jar文件;
一些UI组件库,既包含有Java文件又有资源文件
对于第一种库我们使用的时候就很方便了直接放到libs目录下就可以了。
可是对于第二种库使用起来就比较麻烦了,在eclipse里我们要么把第三方库弄成一个library项目(在studio中就是把第三方库弄成一个library Module)然后引用,要么就把第三方库里的所有文件融合到我们的项目中。这样很不方便,也很难维护,我们大概都被这种方式折磨过
于是Android官方在开发Android Studio的时候就发布了一种独有的格式AAR,专门用于打包UI组件库。与jar相比其多了一些UI组件用到的属性、图片等一系列文件,它的好处在于你不需要再多创建一个Library Module,只需引用这个AAR文件即可,Android Sudio会自动把AAR包里的文件跟你的项目融合。
AAR包的内部文件结构
优点:
缺点:
生成AAR包
在你的项目中创建一个library Module然后在终端中执行grade build,然后到build/outputs/aar目录下就能看到你的AAR文件
使用本地AAR
以recyclerview-v7-21.0.0.aar为例
首先将AAR包放到libs文件夹下
然后在build.gradle中添加如下代码将libs文件夹作为一个仓库
然后依赖中配置即可
![](http://ask.android-studio.org/uploads/article/20150214/2dc79d4a5e04af84645a4e0412c5bb8a.jpg)
- /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文件夹下
![](http://ask.android-studio.org/uploads/article/20150214/f23fb330967837f4b79f8a6d2b73f068.jpg)
![](http://ask.android-studio.org/uploads/article/20150214/a2ed9dcca9eac2429cf57c0bb3232c31.jpg)
![](http://ask.android-studio.org/uploads/article/20150214/2dc79d4a5e04af84645a4e0412c5bb8a.jpg)
4.使用Maven仓库中的库
Gradle还支持直接使用Maven中的项目,使用方式也是很简单,只需在依赖配置中通过compile参数配置即可,jar和aar都支持。例如:
优点:
缺点:
使用私有Maven仓库
在项目的build.gradle文件的repositories节点中配置本地Maven仓库地址,如下:
![](http://ask.android-studio.org/uploads/article/20150214/4d29b50616002fc16e766a958030ad55.jpg)
5.使用第三方库中的so文件
一些第三方的库出于提高性能或保护代码的目的,会将核心代码用C、C++来实现,并提供编译好的so文件和jar给你用,例如国内的一些提供消息推送的sdk就是这么搞的。
在Eclipse中我们直接将so文件放到libs目录下即可使用。那么在AS中使用so文件同样简单,我们直接在main目录下创建jniLibs目录,并将so文件放到目录下即可,如下图所示:
![](http://ask.android-studio.org/uploads/article/20150214/4686a57619d9f34450666f37ba8b5e8a.png)
Gradle还支持直接使用Maven中的项目,使用方式也是很简单,只需在依赖配置中通过compile参数配置即可,jar和aar都支持。例如:
![](http://ask.android-studio.org/uploads/article/20150214/5dbdbe0712236b50704aaed386dd1c1a.png)
- 使用方便,只需一行代码
- 自动下载源码并关联
- 自动发现新版本并提醒升级
缺点:
- 受网络限制
使用私有Maven仓库
在项目的build.gradle文件的repositories节点中配置本地Maven仓库地址,如下:
![](http://ask.android-studio.org/uploads/article/20150214/4d29b50616002fc16e766a958030ad55.jpg)
5.使用第三方库中的so文件
一些第三方的库出于提高性能或保护代码的目的,会将核心代码用C、C++来实现,并提供编译好的so文件和jar给你用,例如国内的一些提供消息推送的sdk就是这么搞的。
在Eclipse中我们直接将so文件放到libs目录下即可使用。那么在AS中使用so文件同样简单,我们直接在main目录下创建jniLibs目录,并将so文件放到目录下即可,如下图所示:
![](http://ask.android-studio.org/uploads/article/20150214/4686a57619d9f34450666f37ba8b5e8a.png)
0 0
- 从框架到完整项目搭建,实战项目《约个球》(7)- 将项目迁移到android studio,使用gradle搭建android项目(上)
- 从框架到完整项目搭建,实战项目《约个球》(8)- 将项目迁移到android studio,使用gradle搭建android项目(中)
- 从框架到完整项目搭建,实战项目《约个球》(1)-从splashActivity说起
- 从框架到完整项目搭建,实战项目《约个球》(6)- 利用SlidingMenu和Fragment构建我们的项目结构
- 从框架到完整项目搭建,实战项目《约个球》(2)-框架搭建之使用CrashHandler来获取应用的Crash信息
- 从框架到完整项目搭建,实战项目《约个球》(3)-为library引入超全的工具类
- 从框架到完整项目搭建,实战项目《约个球》(4)-Intellij IDEA 导入library和jar文件
- Android项目框架从搭建到放弃(一)
- 将Eclipse项目迁移到Android Studio
- 如何将项目从Eclipse迁移到android studio
- 项目从Eclipse到Android Studio迁移
- eclipse项目迁移到android studio上
- 从框架到完整项目搭建,实战项目《约个球》(5)-为我们自己的框架导入网络的开源框架
- 迁移项目到Android Studio
- Android Studio(七):项目从Eclipse到Android Studio迁移
- 从Eclipse到Android Studio:Android项目如何进行迁移
- Android 项目从Eclipse/IDEA 迁移到 Android Studio
- 从Eclipse到Android Studio:Android项目如何进行迁移
- tableViewCell的选中状态的还原
- 123
- HDOJ 2053 Switch Game
- managedQuery 和 getContentResolver().query的区别
- 数字图像处理 调整对比度的几种方法
- 从框架到完整项目搭建,实战项目《约个球》(7)- 将项目迁移到android studio,使用gradle搭建android项目(上)
- C#窗口传值及方法调用1--通过静态方法实现
- kafka本地存储4-LogCleaner
- JUNIT 入门2(语法及应用)
- 四:动画技术一
- 二进制安装MySQL
- mysql json类型快速入门
- Rufus安装Win7操作系统出现“press any key to boot from usb”解决方案
- kafka本地存储5-LogManager