工具:

  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 23buildToolsVersion "23.0.3"defaultConfig {applicationId "xidian.dy.com.basicapp"minSdkVersion 15targetSdkVersion 23versionCode 1versionName "1.0"}buildTypes {release {minifyEnabled falseproguardFiles 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 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版本,这些默认的路径我们一般不会更改的,这个文件里指明的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/

转载于:https://www.cnblogs.com/xidongyu/p/5544124.html

gradle构建android项目相关推荐

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

    一,Android Studio的目录结构和工程项目介绍 二,Eclipse工程与Android Studio工程的区别 1,Eclipse工程能导入AS运行,但AS建立的工程不能再Eclipse中运 ...

  2. 使用gradle构建android项目,Android中使用Gradle来构建App项目的入门指南

    gradle是Android开发中引入的全新的构建系统,因为全新的构建系统主要是出于下面的目的: 1. 方便复用代码和资源 2. 构建多种版本的apk更见简单,不论是为多渠道构建不同的apk还是构建不 ...

  3. gradle构建android项目详解

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

  4. 在 Jenkins 中使用声明式 Pipeline 构建 Android 项目

    Blue Ocean 是 Jenkins 推出的一套新的 UI,对比经典 UI 更具有现代化气息.2017 年 4 月 James Dumay 在博客上正式推出了 Blue Ocean 1.0. 兼容 ...

  5. gradle构建web项目_25多个Web资源可帮助您构建项目

    gradle构建web项目 This article was created in partnership with Mekanism. Thank you for supporting the pa ...

  6. gradle java ide_使用Gradle构建Java项目

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

  7. 使用Gradle构建Java项目

    使用Gradle构建Java项目 本指南将引导您使用Gradle构建一个简单的Java项目. 你会建立什么 您将创建一个简单的应用程序,然后使用Gradle进行构建. 你需要什么 约15分钟 最喜欢的 ...

  8. IntelliJ 使用Maven构建Android项目过程

    这是我的第一篇博客!对我的意义十分重大!在这篇博客的编写过程就是我在使用Maven构建Android项目中踩过的坑的记录.在此由于本人的水平有限,这篇文章也只能当作经验借鉴而已,希望后来者能够避开这些 ...

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

    转载地址:http://www.cnblogs.com/youxilua/p/3348162.html 1: 使用最新的gradle android插件 以前我们写的时候会这么写 dependenci ...

最新文章

  1. XDU 翼讯账号算法
  2. response的运行过程
  3. 字符串系列函数(不断跟新)
  4. 【转载】Kerberos原理--经典对话
  5. ERP沙盘模拟实验报告
  6. 《Linux内核修炼之道》——2.2 编译内核
  7. 机器学习实战pdf原文内容分享
  8. 这群人,用8年讲述体育能有多迷人
  9. 计算机二级ms在线模拟,2018年全国计算机二级在线自测模拟考场/网页版:MS Office高级应用(含真题及答案)...
  10. 通过WIFI(不用数据线)连接Android手机调试
  11. 微信小程序实现开关原理、动态添加class
  12. clip-summary
  13. 推荐花椒直播服务端的 4 个开源项目
  14. 955/965公司名单
  15. python opencv录制视频_Python27+Opencv3 捕获网络摄像头IPCamera实时视频
  16. 我奋斗了18年,不是为了和你一起喝咖啡(转)
  17. Java基础 学习笔记7
  18. springboot集成rabbitmq商品秒杀业务实战(流量削峰)
  19. 判断文件是否存在,判断是否为文件夹
  20. 前百度总裁陆奇:我给有梦想的年轻人9点建议

热门文章

  1. 利用Advanced Installer将asp.netMVC连同IIS服务和mysql数据库一块打包成exe安装包
  2. Java创建数组的三种方法
  3. qmail+spamassassin启用spf过滤
  4. 关卡CyclicBarrier的使用
  5. 第十七课:js数据缓存系统的原理
  6. 行业发展之关于有用信息和无用信息的思考
  7. 一起学WP7 XNA游戏开发(三.二 Sprite Texture Font)
  8. 北电PBX资料_D 14 外 線 設 定
  9. 制备pdms膜的方法_“轻若鸿毛”的新型高弹性石墨烯-PDMS传感器
  10. Segment Routing — Overview