赞
踩
启动Project Structure的时候可以Structure看到分两个区域一个是项目的总体设置区域.还有一个是对Module的分别设置.
Gradle本身必须有一个仓库源,否则无法运行什么是仓库源:仓库源就是Gralde对Android支持的一个仓库,对Android进行相应的配置,处理等信息.具体可以参考下面链接http://www.gradle.org/docs/2.2/userguide/dependency_management.html#sec:repositories默认的仓库源是jcenter.以前是mavenCentral.也可以填写自定义的地址.本地地址等.具体可以参考以下链接http://www.gradle.org/docs/2.2/userguide/artifact_dependencies_tutorial.html#N1062
相关的配置信息可以在项目空间的build.gradle文件查看.打开项目空间的build.gradle文件.可以看到这么一个代码段:(如何找到这个文件请查看我的上一遍博客:http://blog.csdn.net/siyehuazhilian/article/details/42123563)
这里就显示该项目空间的仓库源是jcenter.修改上面的仓库源,这个代码也会跟着变化.
分别是:属性,签名,多渠道,构建类型,依赖包.
Library Reposiory当前的Module的仓库源.这里可以定义一个地址,一个本地路径,或者是jcenter()和mavenCentral().填写任何一个仓库,AS会自动下载对应的仓库,如果你随便填写一个,会提示你无法连接到该仓库.我这这里填写了mavenCentral()在打开对应的.Gradle配置文件
可以看到有被修改的标志了.点进去以后
发觉这个文件自动添加了一个仓库源.名字就是mavenCentral(),然后最下面的状态栏显示正在下载mavenCentral()仓库.注意:由于项目空间已经定义了仓库源,所以Module的build.gradle文件默认是没有仓库源的,通常情况下也不需要填写
Ignore Assets Pattern:打包时候要忽略的文件这将影响所有使用aapt的task.这里我填写一个siyehua.在对应的文件中可以看到多了以下代码:
Incremental Dex:增长DEXAndroid打包工具(aapt)将DEX文件,资源文件以及AndroidManifest.xml文件(二进制格式)组合成一个应用程序包(APK)。
应用程序包可以被发布到手机上运行.如果将它设置为ture,可以看到对应的文件中增加了如下代码
dexOptions {
incremental true
}
它们之间的关系是:一个keystroe就是一个签名文件.打开它需要一个密码,就是keystore密码.Keystrore中可以存放多个key Alias,每一个key alias有一个单独的密码.
在这里添加添加jar包,library等.
其中
添加以后,点击这个,会出现一下的选项.
分表是编译,提供,导出APK时,测试编译时,调试,发布时.
这里选择release complie.在对应的build.gradle中显示
看完了上面的所有信息,我们再来看看项目空间的build.gradle和其中的一个module的build.gradle文件的信息
// Top-level build file where you can add configuration options common to all sub-projects/modules.
/**
* 项目空间的编译环境
*/
buildscript {
/**
* 当前仓库源
*/
repositories {
/**
* 对应Android Plugin Repository
*/
jcenter()
}
dependencies {
/**
* 对应Android Plugin Version
*/
classpath 'com.android.tools.build:gradle:1.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
/**
* 所有的仓库源
*/
allprojects {
/**
* 默认仓库源
*/
repositories {
/**
* 对应Default Plugin Repository
*/
jcenter()
}
}
/**
* 声明这是一个android应用
*/
apply plugin: 'com.android.application'
/**
* Android设置
*/
android {
/**
* 签名:对应Signing选项
*/
signingConfigs {
/**
* 签名名称:对应Singing→Name
*/
test1 {
/**
* Key名字:对应Singing→Key Alias
*/
keyAlias 'siyehua'
/**
* Key密码:对应Singing→Key Password
*/
keyPassword 'siyehua'
/**
* KeyStroe路径:对应Singing→Stroe File
*/
storeFile file('C:/Users/Administrator/Desktop/work/其他/tour.keystore')
/**
* KeyStore密码:对应Singing→Store Password
*/
storePassword 'siyehua'
}
}
/**
* 编译版本:对应Properties→Compile Sdk Version
*/
compileSdkVersion 21
/**
* 构建版本:对应Properties→Build Tools Version
*/
buildToolsVersion "21.1.2"
/**
* 默认配置:对应Flavors→Name(这个是默认渠道)
*/
defaultConfig {
/**
* 包名:对应Flavors→Application Id
*/
applicationId "com.siyehua.android_siyehua"
/**
* 向下兼容版本:对应Flavors→Min Sdk Version
*/
minSdkVersion 15
/**
* 目标版本:对应Flavors→Target Sdk Version
*/
targetSdkVersion 21
/**
* app版本号:对应Flavors→Version Code
*/
versionCode 1
/**
* app版本名称:对应Flavors→Version Name
*/
versionName "1.0"
/**
* 签名信息:对应Flavors→Signig Config
*/
signingConfig signingConfigs.test1
/**
* 测试APP 的id:对应Flavors→Test Application Id
*/
testApplicationId 'siyehua'
/**
* 测试Runner:对应Flavors→Test Instrumentation Runner
*/
testInstrumentationRunner 'siyehua'
}
/**
* 构建类型:对应Build Types
*/
buildTypes {
/**
* 发布版本:对应Build Types→左边栏名字为release的构建版本
*/
release {
minifyEnabled false
/**
* release的Proguard默认为Module下的proguard-rules.pro文件.
*/
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
/**
* test版本:对应Build Types→左边栏名字为testbuild_001的构建版本
*/
testbuild_001 {
/**
* 是否支持调试:对应testbuild_001→Debugable
*/
debuggable true
/**
* 是否支持jin调试:对应testbuild_001→Jin Debuggable
*/
jniDebuggable true
/**
* 签名:对应testbuild_001→Signing Config
*/
signingConfig signingConfigs.test1
/**
* 是否使用RenderScript:对应testbuild_001→Renderscript Debuggale
*/
renderscriptDebuggable true
/**
* App id后缀:对应testbuild_001→Application Id Suffix
*/
applicationIdSuffix '_10087'
/**
* 版本名称后缀:对应testbuild_001→Version Name Suffix
*/
versionNameSuffix '_10088'
/**
* 是否去除无用的资源:对应testbuild_001→Minify Enabled
*/
minifyEnabled true
/**
* 是否支持本地化整理:对应testbuild_001→Pseudo Locales Enaled
*/
pseudoLocalesEnabled true
/**
* 是否支持Zip Align:Zip Align Enabled
*/
zipAlignEnabled true
}
/**
* 对应调试版本
*/
debug {
}
}
/**
* 编译选项
*/
compileOptions {
/**
* 资源版本:对应Properties→Source Compatibility
*/
sourceCompatibility JavaVersion.VERSION_1_7
/**
* 目标版本:对应Properties→Target Compatibility
*/
targetCompatibility JavaVersion.VERSION_1_7
}
/**
*多渠道打包:多渠道打包使用这个设置不同的配置
*/
productFlavors {
/**
* 对应Flavors→中名字为flavor12的配置
*/
flavor12 {
}
}
/**
* 打包时候要忽略的文件:对应Properties→Ignore Assets Pattern
*/
aaptOptions {
}
/**
* DEX选项
*/
dexOptions {
/**
* 增长DEX:对应Properties→Incremental Dex
*/
incremental false
}
}
/**
* 依赖包
*/
dependencies {
/**
* 对应Dependencies下的依赖包
*/
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.2'
releaseCompile files('libs/xmn_lpush_1.3.jar')
}
/**
* 当前Module的仓库源:对应Properties→Library Reposiory(由于这个项目已经使用了一个仓库源
* 除非有特殊要求,这里不建议写仓库源)
*/
repositories {
123
}
看完上面的的相信大家对Gradle,相应的配置,以及要怎么配置,在哪里配置.都有了一个大概的了解.注意:直接修改gradle会直接修改对应的设置.更多Gralde信息.比如说Flavors与Build Types之间有什么关系,对项目的构建会产生什么影响.如何使用命令行配置等等问题可以参考以下链接(这些链接也是我写这博文的参考基础.):
如有任何错误与不足,欢迎留言讨论.谢谢
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。