Android Studio 之 Gradle与Project Structure详解
一.项目总体设置
SDK Location中可以设置SDK和JDK路径.
Project中可以设置Gradle与Android工具的信息
二.Modlue区域
Properties属性
?Compile Sdk Version:Android的编译版本
?Build Tools Version: 构建工具版本
?Library Reposiory当前的Module的仓库源.
Ignore Assets Pattern:打包时候要忽略的文件
Incremental Dex:增长DEX
dexOptions {
incremental true
}
Source Compatibility:资源版本 Target Compatibility:目标版本
Signing签名
Flavors(多样性,多渠道)
Name:Flaveor的名字
Min Sdk Version:向下兼容的SDK版本
Application Id:包名
Proguard File:混淆文件
Signig Config:签名文件名.
Target Sdk Version:目标SDK版本
Test Instrumentation Runner:Test Runner
Test Application Id:测试时的ID
Version Name:Module版本名称
Build Types构建类型
Name:Build Type名称
Debugable:是否可以调试
Jin Debuggable:是否可以调试JNI
Signing Config:签名信息
Renderscript Debuggale:是否使用RenderScript
Renderscript Optim Level:Rendescript版本.
Minify Enabled:是否去除无用的资源
Pseudo Locales Enaled:是否支持本地化整理
Proguard File:混淆,去重文件路径
Application Id Suffix:App id后缀
Version Name Suffix:版本名称后缀
Zip Align Enabled:是否支持Zip Align
Dependencies(依赖)
总结:
项目空间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() } }
- Module的build.gradle文件:
/** * 声明这是一个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 }
如有任何错误与不足,欢迎留言讨论.谢谢
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。