工具:

  Android Studio2.0

  gradle-2.10

一、Android常识


  在做Android开发的时候我们首先必须要有一个SDK。一般SDK的主要作用就是将硬件和软件进行分离,做软件开发的程序员不需要知道如果去控制底层硬件的行为,SDK已经将对硬件的操作封装好,并且为我们提供了一套API,我们只需要调用相应的API就可以达到控制硬件的效果。官方的SDK是由google来发布,而每个硬件厂商会根据自己的硬件情况对SDK进行修改,主要是对底层的修改,并且保证上层API接口不变,这样我们开发的APP才能够运行在不同的硬件设备上。下来我们看看Android Studio中的SDK。

1.打开SDK管理器

该管理器主要管理我们已将下载好的各个版本的SDK

SDK管理器的部分内容

  • Tools Android工具集

    •  SDK Tools工具集,该工具集中包含了许多我们开发时用到的工具。比如说模拟器工具(模拟Android系统)、画图工具、模拟SD卡工具等
    • SDK Platform-tools工具集 该工具集中有adb指令工具、sqlite数据库、堆栈查看工具等。
    • SDK Build-tools  构建我们的android项目,其下面有dex、aapt等工具,对我们的项目进行编译、打包等。
    • 上面这个三个工具都能在我们下载的SDK中找到
  • Andoid6.0(API 23)

  该包的主要作用是用来构建模拟器的,其中的SDK的开发文档,SDK的平台依赖,cpu模拟器(包含多个CPU架构,System Image)。如果我们需要使用AVD的话就需要下载该包。

  •  Extras 主要提供Android开发时需要的类库,这里安装了Google提供的类库

一、gradle文件


当我们新建一个android项目后,Andriod Studio会自动为我们创建多个gradle文件和目录,具体内容如下:

下面我们分别对这几个目录进行分析:

二、app下的build.gradle


apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.3" defaultConfig {
applicationId "xidian.dy.com.basicapp"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
} dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
}
  • apply plugin                   来声明程序,这里声明这是个android应用
  • compileSdkVersion 23     来声明编译android程序时使用的SDK版本,不同版本其API会有差异,但是一般都向下兼容的
  • buildToolsVersion "23.0.3"   使用的构建工具版本,有时我们导入了别人的工程,但是就是编译不通过,其主要原因就是我们构建工具版本不对
  • applicationId                  代表应用的包名,这是我们应用的唯一标识
  • minSdkVersion 15           为了我们的程序能够在低版本的Android系统上运行,需要指定最低版本的系统
  • targetSdkVersion 23       这个可以认为我们的应用运行最合适的SDK版本
  • VersionCode 1                前面提到包名是应用的唯一表示,但是为了以防万一报名有重复的,又加入该字段(整型)。它还有一个重要作用就是版本覆盖,当我们安装高版本的应用                                      时会将低版本覆盖掉就是引用高版本的VersionCode值要大
  • versionName                 给人看的
  • minifyEnabled              是否开启混淆,主要为了提高安全性,防止别人反编译我们的应用来查找代码漏洞
  • proguardFiles                这部分有两部分构成一个是android自带的混淆规则(proguard-android.txt),第二部分是我们自定义的混淆规则(proguard-rules.pro),最终的混淆结果                                     这两个文件共同作用
  • compile fileTree            编译libs目录下的所有jar包,要编译成dex文件

三.MyApplication下的gradle文件夹


该文件夹中有两个文件,主要的文件是配置文件properties

#Mon Dec  :: PST
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版本,这些默认的路径我们一般不会更改的,这个文件里指明的gradle版本不对也是很多导包不成功的原因之一。

四、MyApplication下的build.gradle


这个文件是整个项目的gradle基础配置文件,我们来看看这里面的内容。

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0' // NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
} allprojects {
repositories {
jcenter()
}
} task clean(type: Delete) {
delete rootProject.buildDir
}

从上面的注视中我们可以看到这个一个顶层的配置文件,这里的配置可以影响到每个子配置文件。buildscript内容主要包含了两个方面:一个是声明仓库的源,这里可以看到是指明的jcenter(), 之前版本则是mavenCentral(), jcenter可以理解成是一个新的中央远程仓库,兼容maven中心仓库,而且性能更优。另一个是声明了使用gradle plugin的版本为2.0.0。

五、MyApplication下的settings.gradle


这个文件是全局的项目配置文件,里面主要声明一些需要加入gradle的module,我们这里的module只有一个app

include ':app'

六、总结


关于gradle就介绍到这里,对于项目/工程与module的关系请查看链接

http://stormzhang.com/devtools/2014/11/28/android-studio-tutorial2/

gradle构建android项目的更多相关文章

  1. 使用Gradle构建Android项目

    阅读目录 Gradle是什么? 环境需求 Gradle基本结构 任务task的执行 基本的构建定制 目录配置 签名配置 代码混淆设置 依赖配置 输出不同配置的应用 生成多个渠道包(以Umeng为例) ...

  2. gradle构建android项目详解

    1.用Gradle构建 1.1 工程结构 如图所示,这是一个不能更普通的Android的Gradle工程了. 根目录下面的settings.gradle当中主要是用来include子模块的,比如我们这 ...

  3. gradle学习系列之eclipse中简单构建android项目

    看不到图片能够去訪问这个网址看看:http://pan.baidu.com/s/1o6FrFkA 一.什么是Gradle 官网www.gradle.org上介绍Gradle是升级版(evolved)的 ...

  4. 在内网使用Gradle构建Android Studio项目

    在Android Studio项目中,默认的远程仓库为jcenter,如果在项目引用了一些类库,Gradle构建程序的时候会将这些依赖类库从jcenter网站下载到本地,如我们在 build.grad ...

  5. 用Gradle 构建android程序

    前言 android gradle 的插件终于把混淆代码的task集成进去了,加上最近,android studio 用的是gradle 来构建项目, 下定决心把android gralde 构建项目 ...

  6. Jenkins构建Android项目持续集成之findbugs的使用

    Findbugs简介 关于findbugs的介绍,可以自行百度下,这里贴下百度百科的介绍.findbugs是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题 ...

  7. 使用Maven构建Android项目

    http://www.ikoding.com/build-android-project-with-maven/ 之前一直在做WEB前端项目,前段时间接手第一个Android项目,拿到代码之后,先试着 ...

  8. 使用 Gradle 构建 Java 项目

    使用 Gradle 构建 Java 项目 这个手册将通过一个简单的 Java 项目向大家介绍如何使用 Gradle 构建 Java 项目. 我们将要做什么? 我们将在这篇文档航中创建一个简单的 Jav ...

  9. Gradle 构建 android 应用常见问题解决指南

    前言 android gradle 插件已经发展到0.5.7,同时gradle 本身也到了1.8,相比两个月前,android gradle 更快,更完善,也更好用了,为了让各位androider 早 ...

随机推荐

  1. CI 框架中 AR 操作

    Model 层中的部分代码 /** * CI 中的 AR 操作 * @author zhaoyingnan **/ public function mAR() { /*************** 查 ...

  2. windows下如何安装jira

    ---恢复内容开始--- 准备工作: 1.安装jdk,详细不在介绍 2.建立jira帐号:https://id.atlassian.com/login?application=mac&cont ...

  3. 推荐——Monkey《大话 app 测试——Android、iOS 应用测试指南》

    <大话移动——Android与iOS应用测试指南> 京东可以预购啦!http://item.jd.com/11495028.html 当当网:http://product.dangdang ...

  4. UESTC 913 握手 Havel定理+优先队列

    给定一个非负整数序列{dn},若存在一个无向图使得图中各点的度与此序列一一对应,则称此序列可图化.进一步,若图为简单图,则称此序列可简单图化. 此题因为是无自环无重边,所以是简单图.用判定简单图可图化 ...

  5. 类似区间计数的种类并查集两题--HDU 3038 & POJ 1733

    1.POJ 1733 Parity game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5744   Accepted: ...

  6. HDU 1671 Phone List

    一道字典树的模板题,每次插入前查询是否有该串的某个前缀子串存在,或者该串是否某个串的前缀.具体实现是在插入时串的结尾做一个标记,如果某一个串在查询的时候找到一个标记,说明存在前缀:第二种情况是这个串遍 ...

  7. JSON对象和字符串之间的相互转换

    比如我有两个变量,我要将a转换成字符串,将b转换成JSON对象: var a={"name":"tom","sex":"男&quo ...

  8. 转:程序员必须知道的几个Git代码托管平台

    http://www.open-open.com/lib/view/open1420704561390.html

  9. Win2003_IIS+PHP+MYSQL 全能服务器配置

    WIN2003_IIS+PHP+mysql最新版_全能服务器配置 本次配置PHP的服务器环境:Windows2003+IIS6+ASP+PHP5+MySQL5整个配置过程需要是使用拥有管理员权限的系统 ...

  10. iOS学习资料

    1. UI整理 http://www.cocoachina.com/ios/20151110/14067.html. 2. iOS学习路径 http://www.cocoachina.com/ios/ ...