Android Studio的gradle项目构建
【声明】
欢迎转载,但请保留文章原始出处→_→
生命壹号:http://www.cnblogs.com/smyhvae/
文章来源:http://www.cnblogs.com/smyhvae/p/4456420.html
【系列】
第一次使用Android Studio时你应该知道的一切配置
第一次使用Android Studio时你应该知道的一切配置(二):新建一个属于自己的工程并安装Genymotion模拟器
第一次使用Android Studio时你应该知道的一切配置(三):gradle项目构建
目录:
1、gradle的概念
2、gradle配置jar包,和libs文件夹导入jar包的区别
3、签名打包:
(1)Studio
(2)命令行
(3)gradle wrapper的原理
4、BuildConfig的使用
5、简单介绍module中build.gradle文件参数含义
一、gradle的概念:
- gradle是一个构建工具
- gradle是以Groovy语言为基础的
- gradle主要面向的是Java语言
打开Android Studio内置的终端,在输入如下命令查看gradle版本:
gradlew -v
输入上述命令后,查看到gradle的版本2.2.1,如下图所示:
二、通过gradle来导入jar包:
我们在上一篇文章中第二段的第3小节中讲到了通过拷贝文件到libs文件夹来导入jar包。这次来讲一下怎么通过gradle来配置jar包。我们还是以谷歌的gjson.jar为例,如果之前已经通过拷贝文件方式倒入过了,请先自行删掉。
1、通过gradle配置第三方jar包
我们看到,每个module都有一个build.gradle文件,它其实是对应module的配置文件。关于build.gradle文件中具体内容的含义,我们将在最后一段进行讲解。
我们先来看一下名为app的这个module,它的build.gradle对应的图形界面其实是下面这个
上图中,切换到dependencies标签下,如下图所示:
上图中,点击添加,然后选择"Library dependency",弹出如下界面:
上图中,我们在搜索框中输入“gson”,然后确定,就弹出了箭头处的我们需要的jar包,添加
之后我们会发现,app这个module的build.gradle中多了一行代码,表示引入了gson.jar:
其实,如果你能记得住上方这行代码,直接写出代码来也是可以导入的。
此时,gson这个jar包不再是出现在libs这个文件夹下了,而是出现在最下方的External Libraries中,如下图所示:
2、gradle导入jar包的特点:(和libs文件夹导入jar包的区别)
- gradle导入jar包更方便,一行代码即可搞定。不像后者那样还要自己去官方下载。
- 如果官方将jar包更新了,我们只需要在build.gradle中改一下版本号就行了,不用重新去官网下载。
3、通过gradle导入的jar包是从哪里来的:
需要注意的是:不是所有的jar包都是可以通过gradle来导入的。那通过gradle导入的jar包是从哪里来的呢?解释如下:
我们发现HelloWorld这个project的目录下有一个build.gradle文件,打开它:
上图中第17行的"jcenter()"的意思是,所有通过gradle导入的jar包都是从http://bintray.com/bintray/jcenter这个中央仓库上扒下来的。如果你需要的jar包在这个网站上没有,那就无法通过gradle的方式来导入哦。
顺便提一下,上图中第8行的classpath中的gradle 1.1.0是android的一个gradle插件(也是从中央仓库扒下来的)。而我们自己使用的gradle版本如下图所示:
我们自己下载好的gradle的路径如下:
三、签名打包的两种方式:
注:给我们自己开发的app签名,就代表着我自己的版权,以后要进行升级,也必须要使用相同的签名才行。签名就代表着自己的身份(即keystore),多个app可以使用同一个签名。
如果不知道签名是啥意思,请自行百度哦。在eclipse中签名的方法是:选中工程,邮件选择"export-android-export android application",
1、方式1:通过Android Studio进行签名:
选中app这个module,选择菜单栏"Build-Generate signed apk":
弹出如下界面:
上图中,如果你是第一次使用签名,就单击红框部分创建一个新的签名;如果你之前有过签名的文件,就选择蓝框部分进行导入即可。那我就先选择红框部分吧:
上图中,点击"finish"之后,可以看到Android Studio的最下方显示:Gradle正在执行assembleRelease这样一个任务,如下图所示:
生成签名好的apk之后,会弹出提示:
2、方式2:通过命令行的方式进行签名:
(1)加载Key Store:
我们先删掉上面的通过第一种方式所签名的apk文件。接下来进行第二种方式来签名,即命令行的方式。
打开Project Stucture图形化界面:
上图中,选中app这个module,然后切换到singning标签栏,紧接着点击添加,然后生成release签名信息,紧接着点击"OK"。接着做如下操作:
上图中,切换到Build Types标签,将Signing config选择为"release",即将刚刚生成的release签名信息配置进去。
操作完成之后,我们可以看到app这个module的build.gradle文件多出了如下红框部分的代码:
然后执行菜单栏的"build-clean Project":
(2)生成realease版本的apk:
紧接着在命令行Terminal输入如下命令:(AS已经将命令行Terminal集成到了软件当中)
gradlew assembleRelease
如果运行成功,效果如下:
生成的签名好的apk在如下位置:
3、为什么要使用gradlew命令而不是gradle命令:
在HelloWorld工程目录下有一个gradle文件夹,在gradle/wrapper目录下有一个gradle-wrapper.properties文件,打开它:
上图代表着HelloWorld这个工程所依赖的gradle的版本信息。上图的红线表示,如果我们的工程中没有gradle,软件会根据这个url去下载gradle,终于知道为啥第一次打开AS时会这么慢了吧?
如果我们执行了gradlew命令,实际上是执行上面的gradle wrapper,然后找到我们已经下载好的gradle 2.2.1。如果现在有很多个工程,但是每个工程的gradle版本都不一样,我就必须要将每个版本的gradle都要配置到环境变量当中,而执行了gradlew命令,就会避免这个麻烦。
四、BuildConfig文件:
BuildConfig是IDE自动生成的一个类,在elipse中即存放在gen目录下(如R文件)。而在Adroid Studio中,BuildConfig文件存放的位置是:app/build/generated/source/buildconfig/dubug/<packagename>/BuildConfig.java中。如下图所示:
五、module中build.gradle文件参数含义:
主要是module的build.gradle,截图如下:
01行:apply plugin: 'com.android.application' 表示该module是这个应用程序的module
15行:applicationId "com.smyhvae.helloworld" 应用程序的包名
16、17行:向下兼容的最小版本、编译版本。 注:在app/src/main/AndroidManifest.xml中不再出现这个信息了。
23行:需不需要利用24行的proguard文件来混淆代码。在release状态下,最好改为true。
Android Studio的gradle项目构建相关推荐
- Android Studio 使用教程(4)---gradle项目构建
Android Studio 使用教程(四)之gradle项目构建 1.gradle的概念 2.gradle配置jar包,和libs文件夹导入jar包的区别 3.签名打包: (1)Studio ...
- Android Studio配置gradle时或导入别人项目时提示Could not find com.android.tools.build:gradle
Android Studio配置gradle时或导入别人项目时提示Could not find com.android.tools.build:gradle 配置完环境变量后,cmd运行 gradle ...
- 利用 Android Studio 和 Gradle 打包多版本APK
视频汇总首页:http://edu.51cto.com/lecturer/index/user_id-4626073.html ==================================== ...
- android studio导入as项目,Android Studio(AS)--导入项目
1:首先,你必须要有一个工程(Project), 才可以打开项目(Module); (注意:Eclipse中的Workspace对应Android Studio 中的Project, Eclipse中 ...
- Android Studio创建安卓项目工程
Android Studio创建安卓项目工程 前言 因为想抽出时间复习考研因此提前接触安卓的一些开发,在实训的时候就可以不用再听讲学习,节省时间 随着前端混合开发和小程序技术的兴起,安卓开发的需求在日 ...
- 拥抱 Android Studio 之二:Android Studio 与 Gradle 深入
2019独角兽企业重金招聘Python工程师标准>>> 关于学习方式 曾经跟朋友讨论过我们所接受过的大学工科教育,都是一上来先学基础理论,最后再来一个金工实习.一开始不知道为什么而学 ...
- Android Studio导入Eclipse项目的两种方法
Android Studio导入Eclipse项目有两种方法,一种是直接把Eclipse项目导入Android Studio,另一种是在Eclipse项目里面进行转换,然后再导入Android Stu ...
- Android开发:Android Studio中gradle的代理问题
项目启动报错: If you are behind an HTTP proxy, please configure the proxy settings either in IDE or Gradle ...
- android studio导入eclipse项目各种问题,eclipse项目导入android studio 各类问题及解决方法...
随着时间的推移,技术的推进,开发android的IDE,逐渐由 eclipse转移到android studio,但- 我们的拖延症是很严重的,只要eclipse能用一天就绝不迁移 ,只到有一天,项 ...
最新文章
- js轮询导致服务器瘫痪_演进:Tengine 从 Web 代理服务器 到 分布式推送服务器
- 启动Tomcat一闪而过解决
- 【学习笔记】CO-PA 简介
- Python运算符可不只有加减乘除
- linux上传挂载镜像文件,linux系统中挂载img镜像文件
- 95-34-020-Context-ChannelHandlerContext
- CCFA中国国际零售创新大会,观远数据用智能分析驱动零售决策
- 全国主要省份城市的DNS服务器地址
- 还在用代码苦苦调试大屏?用这个神器1小时搞定
- Egret入门学习日记 --- 第十七篇(书中 7.4~8.2节 内容)
- 布局篇(1)—If you love css …
- html+css实现漂亮的透明登录页面,HTML实现炫酷登录页面
- 自然语言表示简史(BERT/ELMO/Word2vec/LDA/Bow/Ohehot,词向量、句向量、优缺点、应用与解决的问题)
- 浅谈认识商业智能过程中遇到的困难
- oracle 11 ora 12514,oracle 11g ORA 12514错误,我的解决办法
- steam邮箱登录教程
- 试题 算法训练 24点
- 今天兼职的那份工作,安排了休息
- 【基础练习】【DFS】codevs2806 红与黑题解
- 国科大学习资料--最优化计算方法(王晓)--第六次作业答案
热门文章
- 数据挖掘 —— 无监督学习(关联)
- 区块链BaaS云服务(32)同盾科技 IASC平台“特性”
- 区块链BaaS云服务(27)米链科技 HSpeed链
- X.509证书的介绍
- 怎样让elementui表格里面的文字不换行,溢出隐藏,tooltip显示内容
- 用pip安装tensorflow报错SyntaxError: invalid syntax
- (Hook)SetWindowsHookEx和UnhookWindowsHookEx
- 【网络安全】如何利用工具发现内部或外部网络攻击面
- PC微信逆向:分析微信发送文件call
- 1.4 super关键字详解