【声明】 html
欢迎转载,但请保留文章原始出处→_→ java
生命壹号:http://www.cnblogs.com/smyhvae/android
【系列】json
第一次使用Android Studio时你应该知道的一切配置app
第一次使用Android Studio时你应该知道的一切配置(二):新建一个属于本身的工程并安装Genymotion模拟器eclipse
第一次使用Android Studio时你应该知道的一切配置(三):gradle项目构建工具
目录:post
一、gradle的概念gradle
二、gradle配置jar包,和libs文件夹导入jar包的区别网站
三、签名打包:
(1)Studio
(2)命令行
(3)gradle wrapper的原理
四、BuildConfig的使用
五、简单介绍module中build.gradle文件参数含义
1、gradle的概念:
打开Android Studio内置的终端,在输入以下命令查看gradle版本:
gradlew -v
若是是第一次运行这个命令,系统会帮咱们下载gradle到本地,下载到的路径是:
输入上述命令后,查看到gradle的版本2.2.1,以下图所示:
2、经过gradle来导入jar包:
咱们在上一篇文章中第二段的第3小节中讲到了经过拷贝文件到libs文件夹来导入jar包。此次来说一下怎么经过gradle来配置jar包。咱们仍是以谷歌的gjson.jar为例,若是以前已经经过拷贝文件方式倒入过了,请先自行删掉。
一、经过gradle配置第三方jar包
咱们看到,每一个module都有一个build.gradle文件,它实际上是对应module的配置文件。关于build.gradle文件中具体内容的含义,咱们将在最后一段进行讲解。
咱们先来看一下名为app的这个module,它的build.gradle对应的图形界面实际上是下面这个Project Stucture:
上图中,切换到dependencies标签下,以下图所示:
上图中,点击添加,而后选择"Library dependency",弹出以下界面:
上图中,咱们在搜索框中输入“gson”,而后肯定,就弹出了箭头处的咱们须要的jar包,添加它便可:
以后咱们会发现,app这个module的build.gradle中多了一行代码,表示引入了gson.jar:
其实,若是你能记得住上方这行代码,直接写出代码来也是能够导入的。
此时,gson这个jar包再也不是出如今libs这个文件夹下了,而是出如今最下方的External Libraries中,以下图所示:(并且是最新版本哦)
二、gradle导入jar包的特色:(和libs文件夹导入jar包的区别)
三、经过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的路径以下:
3、签名打包的两种方式:
注:给咱们本身开发的app签名,就表明着我本身的版权,之后要进行升级,也必需要使用相同的签名才行。签名就表明着本身的身份(即keystore),多个app可使用同一个签名。
若是不知道签名是啥意思,请自行百度哦。在eclipse中签名的方法是:选中工程,邮件选择"export-android-export android application",
一、方式1:经过Android Studio进行签名:
选中app这个module,选择菜单栏"Build-Generate signed apk":
弹出以下界面:
上图中,若是你是第一次使用签名,就单击红框部分建立一个新的签名;若是你以前有过签名的文件,就选择蓝框部分进行导入便可。那我就先选择红框部分吧:
上图中,点击"finish"以后,能够看到Android Studio的最下方显示:Gradle正在执行assembleRelease这样一个任务,以下图所示:
生成签名好的apk以后,会弹出提示:
二、方式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在以下位置:
三、为何要使用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命令,就会避免这个麻烦。
4、BuildConfig文件:
BuildConfig是IDE自动生成的一个类,在elipse中即存放在gen目录下(如R文件)。而在Adroid Studio中,BuildConfig文件存放的位置是:app/build/generated/source/buildconfig/dubug/<packagename>/BuildConfig.java中。以下图所示:
5、module中build.gradle文件参数含义:
主要是module的build.gradle,截图以下:
01行:apply plugin: 'com.android.application' 表示该module是这个应用程序的module
15行:applicationId "com.smyhvae.helloworld" 应用程序的包名
1六、17行:向下兼容的最小版本、编译版本。 注:在app/src/main/AndroidManifest.xml中再也不出现这个信息了。
23行:需不须要利用24行的proguard文件来混淆代码。在release状态下,最好改成true。