Android studio的gradle
1. gradle的基本概念
gradle构建
* Android Studio使用`Gradle`构建工具,Eclipse的ADT插件使用的是`Ant`构建工具
* 构建:生成app的过程,执行一些的命令(appt,aidl,javac,dex,apkbuilder,jarsinger,zipalign)
* 依赖管理:管理依赖的jar包
* 仓库:简单理解就是存的一些jar包云端
* maven
* ivy
* jcenter仓库地址
* 常见写法
mavenCentral()别名,表示依赖是从Central Maven 2 仓库中获取的。
jcenter()别名,表示依赖是从Bintary’s JCenter Maven 仓库中获取的(Android一般使用的是这个仓库)。
mavenLocal()别名,表示依赖是从本地的Maven仓库中获取的
* 仓库地址举例
repositories {
ivy {
url "http://ivy.petrikainulainen.net/repo"
}
}
repositories {
maven {
url "http://maven.petrikainulainen.net/repo"
}
}
repositories {
mavenCentral()
}
repositories {//默认仓库
jcenter()//它是当前世界上最大的Java和Android开源软件构件仓库
}
* Gradle构建脚本(build.gradle)指定了一个`项目`和它的`任务`,分Project和Module两个级别的脚本文件
* Gradle属性文件(gradle.properties)用来配置构建属性。
* Gradle设置文件(gradle.settings)对于只有一个项目的构建而言是可选的,如果我们的构建中包含多于一个项目,那么它就是必须的,因为它描述了`哪一个项目参与构建`。每一个多项目的构建都必须在项目结构的根目录中加入一个设置文件。
2. build.gradle
1. project:
// 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.3.2'
// 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
}
classpath 'com.android.tools.build:gradle:2.3.2'
插件的版本,没有则会自己去下载,也可以手动改成自己有的
注意:在manifest.xml中也可以去配置,当manifest.xml中的配置和gradle中的不一致,则以gradle为准,所以不建议在manifest.xml中去配置
2. module
apply plugin: 'com.android.application' //application:这个module是一个应用程序,如果是其他的,也可以是库之类的
android {
compileSdkVersion
buildToolsVersion "25.0.2"
defaultConfig { //默认配置
applicationId "com.expample.test" //包名
minSdkVersion 15 //SDK的最小版本
targetSdkVersion 25 //编译SDK的版本
versionCode 1 //版本号
versionName "1.0" //版本名
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes { //构建类型
release { //release版本,也就是发型版本
minifyEnabled false //是否压缩:这里不压缩
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //进行混淆的规则的文件:用来防止反编译的11
}
}
}
//这个APP所依赖的东西
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar']) //依赖于libs目录下所有的.jar包
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
}
compileSdkVersion 25
就是sdk目录下的/platforms目录下的Android版本号,没有则会去下载
buildToolsVersion "25.0.2"
就是sdk目录下build-tools目录下的版本号,没有则会去下载
3. gradle.properties
gradle.properties:用来修改gradle的一些参数和属性的
# Project-wide Gradle settings. # IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file. # For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html # Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m # When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
4. settings.gradle
settings.gradle:这个工程包含了哪些模块
include ':app'
Android studio的gradle的更多相关文章
- Android studio下gradle Robolectric单元测试配置
android studio下gradle Robolectric单元测试配置 1.Robolectric Robolectric是一个基于junit之上的单元测试框架.它并不依赖于Android提供 ...
- android studio 使用gradle 导出jar包,并打包assets目录
警告:本文年久失修. 随着android studio的升级 ,gradle的升级,严格按照本文的代码去做可能不会成功,希望依然可以作为解决问题的思路. 最近项目在做一个sdk,供别的开发者使用,所以 ...
- Android Studio :Android Studio 与 Gradle 深入【二】
转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=255063&extra=page%3D2%26filter%3Dautho ...
- [转]--android studio 使用gradle 导出jar包,并打包assets目录
转自: http://www.cnblogs.com/wuya/p/android-studio-gradle-export-jar-assets.html 最近项目在做一个sdk,供别的开发者使 ...
- Android 项目利用 Android Studio 和 Gradle 打包多版本APK
在项目开发过程中,经常会有需要打包不同版本的 APK 的需求. 比如 debug版,release版,dev版等等. 有时候不同的版本中使用到的不同的服务端api域名也不相同. 比如 debug_ap ...
- 利用 Android Studio 和 Gradle 打包多版本APK
在项目开发过程中,经常会有需要打包不同版本的 APK 的需求. 比如 debug版,release版,dev版等等. 有时候不同的版本中使用到的不同的服务端api域名也不相同. 比如 debug_ap ...
- 快速掌握 Android Studio 中 Gradle 的使用方法
快速掌握 Android Studio 中 Gradle 的使用方法 Gradle是可以用于Android开发的新一代的 Build System, 也是 Android Studio默认的build ...
- Android Studio 解决 Gradle 依赖冲突的问题
Android Studio 解决 Gradle 依赖冲突的问题 参考链接: Android Studio(Gradle)解决库依赖冲突问题:http://www.mobibrw.com/2016/3 ...
- android studio 更新 Gradle错误解决方法(Gradle sync failed)
android studio 更新 Gradle错误解决方法 Android Studio每次更新版本都会更新Gradle这个插件,但由于长城的问题每次更新都是失败,又是停止在Refreshing ...
随机推荐
- Android-Recyclerview的简单使用
由于Recyclerview是在 android.support.v7.widget.包 RecyclerView,所以需要导Recycler库: 导Recycler库: 选择项目,右键--> ...
- 使用EF操作Oracle数据库小计
1.建表 CREATE TABLE item.ORDERS( ORDERID ) CONSTRAINT PK_ORDERS PRIMARY KEY, ORDERNO ), STOREID ), STO ...
- 564. Find the Closest Palindrome
Given an integer n, find the closest integer (not including itself), which is a palindrome. The 'clo ...
- 百度小程序button去掉默认边框
百度小程序button去掉默认边框: button::after{ border:none; }
- 【文文殿下】WC2019游记
Day0 今天早上三点半才睡着,五点起床,前往省城郑州.与省实验常老师汇合,坐上高铁,下午三点半多才到广州二中. 下午随便找了一个教室进去敲一敲代码,发现自己越来越菜了. 和一大堆网上的dalao面基 ...
- python 数据类型三 (字典)
一.字典的介绍 字典(dict)是python中唯一的一个映射类型,它是以{}括起来的键值对组成,在dict中key是唯一的,在保存的时候,根据key来计算出一个内存地址,然后将key-value保存 ...
- Swift5 语言指南(二十一) 嵌套类型
通常创建枚举以支持特定类或结构的功能.类似地,定义纯粹在更复杂类型的上下文中使用的实用程序类和结构可能是方便的.为此,Swift允许您定义嵌套类型,从而在它们支持的类型定义中嵌套支持枚举,类和结构. ...
- hadoop集群搭建(hdfs)
(搭建hadoop集群的前提是服务器已成功安装jdk以及服务器之间已设置免密码登录,服务器之间的免密码登录可参考<linux服务器间ssh免密码登录>) 1.下载hadoop安装包 wge ...
- js缓存问题,修改js后代码不生效
问题描述 最近在上线新版本项目的时候,发现有的用户的操作还是调用的老版本JS里面的内容,这样就造成原来新的JS里面加上的限制不能限制用户的操作,从而导致用户可以重复操作. 问题产生原因 如果在用户之前 ...
- [原创]K8正方系统密码解密工具
工具: K8_zfsoftDecode编译: 自己查壳组织: K8搞基大队[K8team]作者: K8拉登哥哥博客: http://qqhack8.blog.163.com发布: 2015/8/1 1 ...