一,Android Studio的目录结构和工程项目介绍
Image may be NSFW.
Clik here to view.
二,Eclipse工程与Android Studio工程的区别
1,Eclipse工程能导入AS运行,但AS建立的工程不能再Eclipse中运行。
2,工程结构不一样,在Eclipse中的一个Project就代表一个项目工程即Android应用,而在Android Studio中一个Project代表一个项目空间,相当于Eclipse中的workspace,一个Module相当于Eclipse的project即一个Android应用。如上图中,Tuke_App_Demo是项目空间,前面的图标右下角有个杯子,app是Module,前面的图标右下角一个手机,一个项目空间可以有很多Module。
3,工程目录上的区别,在Eclipse中src部分一般是java文件,res部分是资源文件,包括布局文件和多媒体资源等
包括java文件和资源文件全部放到了src目录下,src目录下包括一个main文件夹,再下面就是java文件夹和res文件夹,其实这里,java文件夹就相当于Eclipse中的src,res还是那个res,这里想起了本山老师的小品“src已经不是那个src了,res还是那个res”
三,什么是Gradle?
Java的自动化构建工具,大家一定对Ant和Maven都不会陌生,对,Gradle就是这样一种类似的工具,不过它比Ant和Maven强大的多,而且使用起来更加方便简单并且兼容Maven。Gradle是以Groovy为基础,面向java应用,基于DSL语法的自动化构建工具。是google引入,替换ant和maven的新工具。
Gradle以Module来管理project,在Gradle构建Gradle Project中通常包含application module(apply plugin:'com.android.application')和library module(apply plugin:'com.android.library')
Gradle在Project中使用时,基本上全都使用.gradle文件来配置,是一种脚本化得工程构建,而不是原先ADT中那种Eclipse的可视化构建。Gradle的依赖管理能力及其强大,几乎所有的开源项目都可以简单的通过一条compile指令完成依赖的配置。
四,安装Gradle
第一次创建项目成功后会下载Gradle,貌似不翻墙也可以下载,但是访问慢,建议翻墙下载。那么下载的地址什么呢?看目录中有个gradle-wrapper.properties文件
#Mon Dec 28 10:00:20 PST 2015 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip最后一项就是下载Gradle的地址。
也可以手动用命令下载Gradle,在Android Studio下方的Terminal终端中,在项目空间目录下输入“gradlew -v”,如果项目没有下载过上述版本的Gradle,就会开始下载,如果下载过,就会显示当前已下载的Gradle版本信息。
Clik here to view.

那么下载的Gradle位置在什么地方呢?
window系统中下载位置是 :C:\Documents and Settings<用户名>.gradle\wrapper\dists 目录
Image may be NSFW.
Clik here to view.
会看到这个目录下下载的gradle-x.xx-all文件夹。如果下载实在太慢,可以到Gradle官网https://gradle.org/install下载对应的版本,然后将下载的.zip文件(也可以解压)复制到上述的gradle-x.xx-all 文件夹下,不过还是建议让它直接下载的好。
五,Gradle的基本概念
如果你用Android Studio新建一个项目的时候,默认生成一大堆关于gradle的东西,其中最重要的是两个build.gradle的文件:一个是项目空间的build.gradle文件,一个是module中的build.gradle文件
项目空间的build.gradle文件:
Image may be NSFW.
Clik here to view.
buildscript,repositories和dependencies本身是方法名。后面跟的大括号部分,都是一个闭包,作为方法的参数。
闭包可以简单的理解为一个代码块或方法指针。
buildscript节点的内容完全不用动,大概意思就是支持jcenter中央仓库,声明Gradle的版本。jcenter中央仓库中的包可以在module中的build.gradle文件的dependencies直接用compile引用。
module中的build.gradle文件:
Image may be NSFW.
Clik here to view.
1,apply plugin: 'com.android.application'。//apply是一个方法,plugin是参数,值为'com.android.application'当值是'com.android.library'时,此module是一个依赖包。
2,android{…}。设置编译android项目的参数。
支持的配置有:
minSdkVersion 最小支持sdk版本
targetSdkVersion 编译时的目标sdk版本
versionCode 程序版本号
versionName 程序版本名称
packageName 程序包名
Package Name for the test application 测试用的程序包名
Instrumentation test runner 测试用的instrumentation实例
3,dependencies{...}.设置当前module的依赖包,jar或者库工程。当需要依赖其他jar包时只需要添加一句compile即可。
module的build.gradle文件可以在File->Project Structure里设置
Image may be NSFW.
Clik here to view.
六,使用Gradle构建一个Android项目
Gradle构建系统有自己的生命周期,初始化、配置和运行三个阶段。
1,初始化阶段,会去读取根工程中setting.gradle中的include信息,决定有哪几个工程加入构建,创建project实例,比如下面有三个工程: include ':app', ':lib1', ':lib2'
2,配置阶段,会去执行所有工程的build.gradle脚本,配置project对象,一个对象由多个任务组成,此阶段也会去创建、配置task及相关信息。
3,运行阶段,根据gradle命令传递过来的task名称,执行相关依赖任务
a,在Android Studio下方的Terminal终端中,使用“gradlew clean”指令。
如果是第一次使用gradle构建,则会下载相关依赖包并且对环境进行初始化,如果出错了,一般可能是下载超时,试多几次即可,最后你会看到如下提示:BUILD SUCCESSFUL 完成以上的步骤,就可以正式使用gralde 构建你的android项目了
Image may be NSFW.
Clik here to view.
b,接着执行“gradlew build”指令
Image may be NSFW.
Clik here to view.
Image may be NSFW.
Clik here to view.
就完成了android 项目的构建了。如果,你是照着以上步骤走的话,你将会在项目目录里面看到一个build 的目录,里面就是用gradle 构建android项目的全部东西了。最终打包的apk 就在build/apk 目录下了。然后,你会发现,两个apk 一个是 [项目名]-debug-unaligned [项目名]-release-unsigned,看名字就猜到一个是调试模式没有进行优化的apk(可直接安装),一个是release模式但没有签名的apk(不可直接安装)
Image may be NSFW.
Clik here to view.
打签名包
默认输出 release apk 是没有签名的,那么我们需要签名的很简单,只需要在android{}里面补充加上如下代码即可。
signingConfigs { myConfig { storeFile file("storm.keystore") storePassword "storm" keyAlias "storm" keyPassword "storm" } }或者在File->Project Structure中设置
Image may be NSFW.
Clik here to view.
然后运行,gradlew clean,gradlew build。