一,Android Studio的目录结构和工程项目介绍
二,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版本信息。
那么下载的Gradle位置在什么地方呢?
window系统中下载位置是 :C:\Documents and Settings<用户名>.gradle\wrapper\dists 目录
会看到这个目录下下载的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文件:
buildscript,repositories和dependencies本身是方法名。后面跟的大括号部分,都是一个闭包,作为方法的参数。
闭包可以简单的理解为一个代码块或方法指针。
buildscript节点的内容完全不用动,大概意思就是支持jcenter中央仓库,声明Gradle的版本。jcenter中央仓库中的包可以在module中的build.gradle文件的dependencies直接用compile引用。
module中的build.gradle文件:
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里设置
六,使用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项目了
b,接着执行“gradlew build”指令
就完成了android 项目的构建了。如果,你是照着以上步骤走的话,你将会在项目目录里面看到一个build 的目录,里面就是用gradle 构建android项目的全部东西了。最终打包的apk 就在build/apk 目录下了。然后,你会发现,两个apk 一个是 [项目名]-debug-unaligned [项目名]-release-unsigned,看名字就猜到一个是调试模式没有进行优化的apk(可直接安装),一个是release模式但没有签名的apk(不可直接安装)
打签名包
默认输出 release apk 是没有签名的,那么我们需要签名的很简单,只需要在android{}里面补充加上如下代码即可。
signingConfigs { myConfig { storeFile file("storm.keystore") storePassword "storm" keyAlias "storm" keyPassword "storm" } }或者在File->Project Structure中设置
然后运行,gradlew clean,gradlew build。