《Gradle权威指南》--自定义Android Gradle工程
No1:
minSdkVersion
public void minSdkVersion(int minSdkVersion){
setMinSdkVersion(minSdkVersion);
}
-----------------------
public void setMinSdkVersion(@Nullable String minSdkVersion){
setMinSdkVersion(getApiVersion(minSdkVersion));
}
public void minSdkVersion(@Nullable String minSdkVersion){
setMinSdkVersion(minSdkVersion);
}
No2:
android代号版本对应表

No3:
versionCode-内部版本号
@NonNull
public ProductFlavor setVersionCode(Integer versionCode){
mVersionCode = versionCode;
return this;
} @Override
@Nullable
publid Integer getVersionCode(){
return mVersionCode;
}
No4:
versionName-版本名称
@NonNull
public ProductFlavor setVersionName(String versionName){
mVersionName = versionName;
return this;
} @Override
@Nullable
public String getVersionName(){
return mVersionName;
}
No5:
testApplicationId-app的包名
@NonNull
public ProductFlavor setTestApplicationId(String applicationId){
mTestApplicationId = applicationId;
return this;
} @Override
@Nullable
public String getTestApplicationId(){
return mTestApplicationId;
}
No6:
testInstrumentationRunner-配置单元测试时使用的Runner
@NonNull
public ProductFlavor setTestInstrumentationRunner(String testInstrumentationRunner){
mTestInstrumentationRunner = testInstrumentationRunner;
return this;
} @Override
@Nullable
public String getTestInstrumentationRunner(){
return mTestInstrumentationRunner();
}
No7:
signingConfig-配置默认的签名信息
@Override
@Nullable
public SigningConfig getSigningConfig(){
return mSigningConfig;
} @NonNull
public ProductFlavor setSigningConfig(SigningConfig signingConfig){
mSigningConfig = signingConfig;
return this;
}
No8:
proguardFile-混淆所使用的配置文件
public void projuardFile(@NonNull Object projuardFile){
getProjuardFiles().add(project.file(projuaardFile));
}
No9:
proguardFiles-同时接受多个配置文件
public void proguardFiles(@NonNull Object...proguardFileArray){
getProguardFiles().addAll(project.files(proguardFileArray).getFiles());
}
No10:
配置签名信息
signingConfigs{
release{
storeFile file("myreleasekey.keystore")
storePassword "password"
keyAlias "MyReleaseKey"
keyPassword "password"
}
debug{
storeFile file("mydebugkey.keystore")
storePassword "password"
keyAlias "MyDebugKey"
keyPassword "password"
}
}
storeFile:签名证书文件
storePassword:签名证书文件的密码
storeType:签名证书的类型
keyAlias:签名证书中秘钥别名
keyPassword:签名证书中该秘钥的密码
注:debug模式的签名已经被配置好了,使用的就是android sdk自动生成的debug证书,一般位于../.android/debug.keystore
调用
defaultConfig{
applicationId "org.flysnow.app.example82"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
signingConfig signingConfig.debug
}
或者
buildType{
release{
signingConfig signingConfigs.release
}
debug{
signingConfig signingConfig.debug
}
}
No11:
applicationIdSuffix-用于配置基于默认applicationId的后缀
@NonNull
public BaseConfigImpl setApplicationIdSuffix(@Nullable String applicationIdSuffix){
mApplicationIdSuffix = applicationIdSuffix;
return this;
} @Override
@Nullable
public String getApplicationIdSuffix(){
return mApplicationIdSuffix;
}
No12:
debuggable-用于配置是否生成一个可供调试的apk
@NonNull
public BuildType setDebuggable(boolean debuggable){
mDebuggable = debuggable;
return this;
} @Override
public boolean isDebuggable(){
return mDebuggable || mTestCoverageEnabled;
}
No13:
jniDebuggable-用于配置是否生成一个可供调试Jni代码的apk
@NonNull
public BuildType setJniDebuggable(boolean jniDebugBuild){
mJniDebuggable = jniDebugBuild;
return this;
} @Override
public boolean isJniDebuggable(){
return mJniDebuggable;
}
No14:
minifyEnabled-用于配置是否启用Proguard混淆
@NonNull
public BuildType setMinifyEnabled(boolean enabled){
mMinifyEnabled = enabled;
return this;
} @Override
public boolean isMinifyEnabled(){
return mMinifyEnabled;
}
No15:
multiDexEnabled-用于配置该BuildType是否启用自动拆分多个Dex的功能
@Override
@Nullable
public Boolean getMultiDexEnabled(){
return mMultiDexEnabled;
} public void setMultiDexEnabled(@Nullable Boolean multiDex){
mMultiDexEnabled = multiDex;
}
No16:
proguardFile
@NonNull
public BuildType projuardFile(@NonNull Object proguardFile){
getProguardFiles().add(project.file(proguardFile));
return this;
}
No17:
proguardFiles
@NonNull
public BuildType projuardFiles(@NonNull Object... proguardFileArray){
getProguardFiles().addAll(project.files(proguardFileArray).getFiles());
return this;
}
No18:
shrinkResources
@Override
public boolean isShrinkResources(){
return thrinkResources;
} public void setShrinkResources(boolean shrinkResources){
this.shrinkResources = shrinkResources;
}
No19:
signingConfig
@NonNull
public BuildType setSigningConfig(@Nullable SigningConfig signingConfig){
mSigningConfig = signingConfig;
return this;
} @Override
@Nullable
public SigningConfig getSigningConfig(){
return mSigningConfig;
}
No20:
每一个BuildType都会生成一个SourceSet,还会生成相应的assemble任务,比如:assembleRelease或assembleDebug
No21:
代码混淆不仅能优化我们的代码,让apk包变得更小,还可以混淆我们原来的代码
No22:
public File getDefaultProjuardFile(String name){
File sdkDir = sdkHandler.getAndCheckSdkFolder();
return new File(sdkDir,SdkConstants.FD_TOOLS + File.separatorChar + SdkConstants.FD_PROGUARD + File.separatorChar + name);
}
android sdk默认提供两个Proguard配置文件,proguard-android.txt和proguard-android-optimize.txt,一个没有优化,一个有优化。
No23:
android{
buildTypes{
release{
zipAlignEnabled true
}
debug{
}
}
}
@NonNull
public BuildType setZipAlignEnabled(boolean zipAlign){
mZipAlignEnabled = zipAlign;
return this;
} @Override
public boolean isZipAlignEnabled(){
return mZipAlignEnabled;
}
《Gradle权威指南》--自定义Android Gradle工程的更多相关文章
- 《Gradle权威指南》--Android Gradle插件
No1: Android Gradle插件分类 App插件id:com.android.application Library插件id:com.android.library Test插件id:com ...
- 《Gradle权威指南》--Android Gradle高级自定义
No1: 指定共享库 <uses-library android:name="com.google.android.maps" android:required=" ...
- 《Gradle权威指南》--Android Gradle NDK支持
No1: 在根项目下的local.properties文件中配置 sdk.dir=/home/frame/android/android-sdk ndk.dir=/home/frame/android ...
- 《Gradle权威指南》--Android Gradle测试
No1: Android既可以用传统的JUnit测试,也可以用Android的instrument测试. No2: 当我们运行测试的时候,androidTest SourceSet会被构建成一个可以安 ...
- 《Gradle权威指南》--Android Gradle多渠道构建
No1: Build Variant = Build Type + Product Flavor Build Variant:构建的产物 Build Type:构建的类型 Product Flavor ...
- 《Gradle权威指南》--Android Gradle多项目构建
No1: Android多项目设置 目录结构: MyProject/ setting.gradle app/ build.gradle libraries/ lib1/ build.gradle li ...
- 《Gradle权威指南》--Java Gradle插件
No1: dependencies{ compile group: 'com.squareup.okhttp3',name:'okhttp',version:'3.0.1' } //缩写 depend ...
- 读书笔记--Android Gradle权威指南(上)
本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 最近看了一本书<Android Gradle 权威指南>,对于 Gradle 理解又更深了,但不想过段时间就又忘光了,所 ...
- 读书笔记--Android Gradle权威指南(下)
前言 最近看了一本书<Android Gradle 权威指南>,收获挺多,就想着来记录一些读书笔记,方便后续查阅. 本篇内容是基于上一篇:读书笔记--Android Gradle权威指南( ...
- 【Gradle】自定义Android Gradle工程
自定义Android Gradle工程 defaultConfig默认配置 defaultConfig是Android对象中的一个配置项,负责定义所有的默认配置.一个基本的defaultConfig配 ...
随机推荐
- d2-admin中那些不错的技巧
d2-admin基于vue-cli3 路由相关 刷新路由,参照官方 组件内的守卫 但是搞不明白为何加了句 render:h => h() { path: 'refresh', name: 'r ...
- sqlite limit offset
limit 0,20 表示从第1条开始取20条数据 limit 20 offset 2 表示从第2条开始取出20条数据
- Android中的Service:Binder,Messenger,AIDL
http://blog.csdn.net/luoyanglizi/article/details/51594016 http://blog.csdn.net/luoyanglizi/article/d ...
- 嵌入式系统C编程之堆栈回溯
前言 在嵌入式系统C语言开发调试过程中,常会遇到各类异常情况.一般可按需添加打印信息,以便观察程序执行流或变量值是否异常.然而,打印操作会占用CPU时间,而且代码中添加过多打印信息时会显得很凌乱.此外 ...
- SHA算法:签名串SHA算法Java语言参考(SHAHelper.java)
SHAHelper.java package com.util; /** * @author wangxiangyu * @date:2017年10月16日 上午9:00:47 * 类说明:SHA签名 ...
- 基于Apache的阿里云部署Node.js服务器(Windows环境)
1 前言 由于nodejs项目对方开放了多个端口,而且阿里云上的Apache服务器(windows)已经挂载了网站,此时需要把此项目也挂上去,网上查询资料,方法略少,基本是基于nginx版本的. 2 ...
- PYTHON-组合 封装 多态 property装饰器
# 组合'''软件重用的重要方式除了继承之外还有另外一种方式,即:组合组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合 1. 什么是组合 一个对象的属性是来自于另外一个类的对象,称之 ...
- Android开发之深入理解Android Studio构建文件build.gradle配置
摘要: 每周一次,深入学习Android教程,TeachCourse今天带来的一篇关于Android Studio构建文件build.gradle的相关配置,重点学习几个方面的内容:1.applica ...
- 使用git pull提示refusing to merge unrelated histories
创建了一个origin,两个人分别clone 分别做完全不同的提交 第一个人git push成功 第二个人在执行git pull的时候,提示 fatal: refusing to merge unre ...
- 几个常用的Node方法
1.写入文件 /** * 写入文件 * @param {string} filePath 文件路径 * @param {string} data 文件内容 * @return {none} */ fu ...