type
status
date
slug
summary
tags
category
password
icon

本质

把逻辑独⽴的代码抽取和封装

Plugin 的最基本写法

写在 build.gradle ⾥:
build.gradle:

Extension

build.gradle:
写在 buildSrc ⽬录下
  • ⽬录结构:
  • resources/META-INF/gradle-plugins/*.properties 中的 * 是插件的名称,例如 *.propertiescom.hencoder.plugindemo.properties ,最终在应⽤插件是的代码就应该是:
    • .properties 中只有⼀⾏,格式是: 其中等号右边指定了 Plugin 具体是哪个类
      • Plugin 和 Extension 写法和在 build.gradle ⾥的写法⼀样
      • 关于 buildSrc ⽬录
        • 这是 gradle 的⼀个特殊⽬录,这个⽬录的 build.gradle 会⾃动被执⾏,即使不配置进 settings.gradle。(实际上在 gradle 的 6.0 之后, buildSrc 已经成为了⼀个保留字,你在 settings.gradle ⾥配置的项⽬已经不允许叫 buildSrc
        • buildSrc 所配置出来的 Plugin 会被⾃动添加到编译过程中的每⼀个 project 的 classpath,因此它们才可以直接使⽤ apply plugin: 'xxx' 的⽅式来便捷应⽤这些 plugin

      Transform

      • 是什么:是由 Android 提供了,在项⽬构建过程中把编译后的⽂件(jar ⽂件和 class ⽂件)添加⾃定义的中间处理过程的⼯具
      • 怎么写
        • 先加上依赖:
          • 然后继承 com.android.build.api.transform.Transform ,创建⼀个⼦类:
            • 注册这个 Transform
              • 还能做什么:修改字节码 上⾯的这段代码只是把编译完的内容原封不动搬运到⽬标位置,没有实际⽤处。要修改字节码,需要引⼊其他⼯具,例如 javassist。 javassist 的使⽤教程在⽹上有很多,可以搜索⼀下。
            Gradle 配置⽂件拆解NIO、BIO以及Okio
            Loading...
            shuouyang
            shuouyang
            android开发 ReactNative开发 小程序开发
            最新发布
            AOSP 环境搭建
            2025-3-29
            View 绘制流程-源码解析
            2025-3-12
            HTTP
            2025-3-4
            JVM 虚拟机
            2025-2-28
            蓝牙-BLE-基础
            2025-2-28
            从 OkHttp 的原理来看 HTTP
            2025-2-19
            公告
            🎉热点信息🎉
            --- 1 ---
            Jet Brains 推出新的跨平台支持 Kotlin MultiPlatform
            --- 2 ---
            新的小巧便捷的依赖注入框架 Koin
            --- 3 ---
            新一代 API 查询语言 GraphQL