Android Gradle进阶配置指北

本文详细介绍了Android Gradle的进阶配置,包括buildTypes和productFlavors结合使用创建不同构建变体,如何配置manifest变量,代码中读取变量,以及使用flavorDimensions进行多维度区分。此外,还讲解了Gradle任务、模块动态依赖、定义全局变量、独立签名信息配置、忽略lint检查和引用本地aar的方法,帮助开发者更好地管理和构建Android项目。
摘要由CSDN通过智能技术生成

简单的总结一下gradle:

1.Gradle是一种构建工具,它可以帮你管理项目中的差异,依赖,编译,打包,部署…你可以定义满足自己需要的构建逻辑,写入到build.gradle中供日后复用.

2.Gradle不是一种编程语言,它不能帮你实现软件中的任何实际功能

Gradle 基本

如果你用Android Studio新建一个项目的时候,默认生成一大堆关于gradle的东西,其中最重要的是一个build.gradle的文件,内容如下:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.0"

    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:support-v4:26.0.+'
}

解读:

apply plugin::指定用的是哪个插件,开发中常见的值有:
    'com.android.application':Android APP插件(打包得到的是.apk文件)
    'com.android.library':Android库插件(打包得到的是.aar文件)
    'java':普通的java插件(打包得到的是.jar文件)
我目前用到的还有:
    kotlin-android : kotlin
    bugly.gradle : 腾讯bugly
    walle.gradle : 美团walle打包
android{}用来指定Android打包插件的相关属性,包含如下节点:
compileSdkVersion(apiLevel):设置编译时用的Android版本
buildToolsVersion(buildToolsVersionName):设置编译时使用的构建工具的版本
defaultConfig:设置一些默认属性,其可用属性是buildTypes(debug,release,其他+)和productFlavors(谷歌商店,豌豆荚,小米应用商店)之和。
              最终可以打出的APK的数量就是buildTypes乘以productFlavors。构建的变量名称是productFlavors+buildTypes。
dependencies 配置依赖:
各种外部依赖直接一行代码搞定,不用手动下依赖包了。
其中compile fileTree(dir: 'libs', include: ['*.jar'])的意思是依赖libs目录下全部的jar文件。
buildscript {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
    }
}

buildscript节点,大概意思就是支持maven,google,声明Gradle的版本.如果用到一些其他插件也需要在此申明.

signingConfigs {
    myConfig {
        storeFile file("xxx.keystore")
        storePassword "123123"
        keyAlias "xxx"
        keyPassword "123123"
        v2SigningEnabled true
    }
}
    
buildTypes{
    release {
        //应用myConfig
        signingConfig  signingConfigs.myConfig
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    } 
}
签名配置:
storeFile : keystore文件
storePassword : 密码
keyAlias : 别名
keyPassword : 别名密码
v2SigningEnabled : 启用V2签名方案
minifyEnabled : 是否开启混淆
shrinkResources : 是否移除无用资源文件,shrin
本书是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点。本书从三个方面来组织内容。第一,介绍Android开发者不容易掌握的一些知识点;第二,结合Android源代码和应用层开发过程,融会贯通,介绍一些比较深入的知识点;第三,介绍一些核心技术和Android的性能优化思想。 第1章 Activity的生命周期和启动模式 1 1.1 Activity的生命周期全面分析 1 1.1.1 典型情况下的生命周期分析 2 1.1.2 异常情况下的生命周期分析 8 1.2 Activity的启动模式 16 1.2.1 Activity的LaunchMode 16 1.2.2 Activity的Flags 27 1.3 IntentFilter的匹配规则 28 第2章 IPC机制 35 2.1 Android IPC简介 35 2.2 Android中的多进程模式 36 2.2.1 开启多进程模式 36 2.2.2 多进程模式的运行机制 39 2.3 IPC基础概念介绍 42 2.3.1 Serializable接口 42 2.3.2 Parcelable接口 45 2.3.3 Binder 47 2.4 Android中的IPC方式 61 2.4.1 使用Bundle 61 2.4.2 使用文件共享 62 2.4.3 使用Messenger 65 2.4.4 使用AIDL 71 2.4.5 使用ContentProvider 91 2.4.6 使用Socket 103 2.5 Binder连接池 112 2.6 选用合适的IPC方式 121 第3章 View的事件体系 122 3.1 View基础知识 122 3.1.1 什么是View 123 3.1.2 View的位置参数 123 3.1.3 MotionEvent和TouchSlop 125 3.1.4 VelocityTracker、GestureDetector和Scroller 126 3.2 View的滑动 129 3.2.1 使用scrollTo/scrollBy 129 3.2.2 使用动画 131 3.2.3 改变布局参数 133 3.2.4 各种滑动方式的对比 133 3.3 弹性滑动 135 3.3.1 使用Scroller 136 3.3.2 通过动画 138 3.3.3 使用延时策略 139 3.4 View的事件分发机制 140 3.4.1 点击事件的传递规则 140 3.4.2 事件分发的源码解析 144 3.5 View的滑动冲突 154 3.5.1 常见的滑动冲突场景 155 3.5.2 滑动冲突的处理规则 156 3.5.3 滑动冲突的解决方式 157 第4章 View的工作原理 174 4.1 初识ViewRoot和DecorView 174 4.2 理解MeasureSpec 177 4.2.1 MeasureSpec 177 4.2.2 MeasureSpec和LayoutParams的对应关系 178 4.3 View的工作流程 183 4.3.1 measure过程 183 4.3.2 layout过程 193 4.3.3 draw过程 197 4.4 自定义View 199 4.4.1 自定义View的分类 200 4.4.2 自定义View须知 201 4.4.3 自定义View示例 202 4.4.4 自定义View的思想 217 第5章 理解RemoteViews 218 5.1 RemoteViews的应用 218 5.1.1 RemoteViews在通知栏上的应用 219 5.1.2 RemoteViews在桌面小部件上的应用 221 5.1.3 PendingIntent概述 228 5.2 RemoteViews的内部机制 230 5.3 RemoteViews的意义 239 第6章 Android的Drawable 243 6.1 Drawable简介 243 6.2 Drawable的分类 244 6.2.1 BitmapDrawable 244 6.2.2 ShapeDrawable 247 6.2.3 LayerDrawable 251 6.2.4 StateListDrawable 253 6.2.5 LevelListDrawable 255 6.2.6 TransitionDrawable 256 6.2.7 Ins
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值