Android Studio目录结构和Gradle构建Android项目

Posted tuke_tuke

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Studio目录结构和Gradle构建Android项目相关的知识,希望对你有一定的参考价值。

一,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。

以上是关于Android Studio目录结构和Gradle构建Android项目的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio目录结构浅析

Android Studio目录结构浅析

android studio创建的工程目录下的gradlew文件有啥作用

Android studio 目录结构

(原)使用android studio ndk开发流程

Android_Android Studio 目录结构