Decorative image frame

modi.wu

顺流而下,把梦做完

modi.wu

Gradle插件的分类

许多Gradle功能都是通过添加插件(Plugin)来完成,例如插件可以添加新的任务(JavaCompile)、域对象(sourceSet)、约定(Java源码位于src/main/java文件下)等等功能。其实插件(Plugin)也可以分为两种常见的分类:脚本插件(Script Plugin)和二进制插件(Binary Plugin)。
二进制插件可以通过实现 Plugin 接口的方式编写,也可以通过 GroovyKotlin DSL 中的声明来编写。它们可以驻留在构建脚本、项目层次结构中,也可以驻留在外部的插件 jar 中。脚本插件是附加的构建脚本,可进一步配置构建,并且通常实现声明性方法来操作构建。它们通常在构建中使用,但可以外部化和远程访问。

阅读全文...

AGP资源编译之MergeResources流程分析

自AGP3.0起,默认的资源打包工具从AAPT v1版本升级为v2。APPT2的可执行文件存放在Android SDK的build-tools/$version路径下。在AAPT1中通过package命令把原始的资源文件编译成各式的二进制文件,并且压缩到一个ZIP归档中,升级到AAPT2后,编译的过程交由compile命令处理,合并归档的操作交给了link命令处理。AGP7.x+的代码中,AAPT1的内容相关的代码都已被删除。本次分析的AGP源码版本7.2.

阅读全文...

关于正则表达

正则表达式一直都是我的一个遗留问题,因为工作内容不会遇到特殊的场景,大部分都可以通过copy网络
上现成的规则,比如电话号码、邮箱、卡号等这些规则,导致自己没真正写过正则表达式。就算偶尔心血
来潮想学一下各类元字符的规则与使用,对着文档看一遍,但过不了多久又忘了。这种感觉总让自己像是
少了个技能点一样。正好前段时间因为工作内容的原因正则表达式的使用频率增加,也促使我要好好梳理
了正则表达式的各种规则和使用。

阅读全文...

Kotlin-协程基础

Kotlin 作为一种语言,在其标准库中仅提供极少数的 API,以便其他各种库能够利用协程的语言。与许多其
他具有类似功能的语言不同,async 和 await 不是 Kotlin 中的关键字,甚至不是其标准库的一部分。此
外,与future和promise相比,Kotlin 的挂起函数概念为异步操作提供了更安全且不易出错的抽象
——————这是官方文档给Kotlin协程的介绍

阅读全文...