![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编译插桩
文章平均质量分 69
Lerendan
这个作者很懒,什么都没留下…
展开
-
暴力突破 Android 编译插桩(八)- class 字节码
一、Class 类文件结构Java 虚拟机当初被设计出来的目的就不单单是只运行 Java 这一种语言。目前 Java 虚拟机已经可以支持很多除 Java 语言以外的其他语言了,如 Groovy、JRuby、Jython、Scala 等。之所以可以支持其他语言,是因为这些语言经过编译之后也可以生成能够被 JVM 解析并执行的字节码文件(class 文件)。而虚拟机并不关心字节码是由哪种语言编译而来的。为了让 Java 语言具有良好的跨平台能力,Java 提供了一种可以在所有平台上都能使用的一种中间代码原创 2020-05-25 23:19:37 · 631 阅读 · 0 评论 -
暴力突破 Android 编译插桩(七)- AspectJ 使用
一、AOP 理解在 Java 当中我们常常提及到的编程思想是 OOP(Object Oriented Programming)面向对象编程,即把功能或问题模块化,每个模块处理自己的事务。但在现实世界中,并不是所有问题都能完美地划分到模块中。比如,我们要完成一个事件埋点的功能,我们希望在原来整个系统当中,加入一些事件的埋点,监控并获取用户的操作行为和操作数据。按照面向对象的思想,我们会设计一个埋点管理器模块,然后在每个需要埋点的地方都加上一段埋点管理器的方法调用的逻辑。看起来好像没有什么问题,并且我们之前原创 2020-05-19 23:59:20 · 1375 阅读 · 0 评论 -
暴力突破 Android 编译插桩(六)- APT 实战分析
Android 注解知识解析Android 注解处理器解析Android JavaPoet 使用解析Android Butterknife 源码解析一、前言经过前四篇的介绍,我们已经对注解比较熟悉了,下面介绍一个实战案例。二、实战2.1、背景介绍在公司项目里,所有埋点里的pageName都是由Activity的context来获取Activity的名称来记录,2.2、...原创 2019-12-12 09:51:30 · 365 阅读 · 0 评论 -
暴力突破 Android 编译插桩(五)- APT 之 Butterknife 源码解析
系列文章Android 注解知识解析 Android 注解处理器解析 Android JavaPoat 使用解析 Android Butterknife 源码解析目录一、前言二、使用三、源码解析3.1、扫描注解、生成代码3.1.1、获取、解析注解3.1.2、生成代码3.2ButterKnife 代码注入一、前言相信大家都用过 ButterKnife...原创 2019-12-02 15:39:47 · 345 阅读 · 0 评论 -
暴力突破 Android 编译插桩(四)- APT 之 JavaPoet 使用
一、前言JavaPoet 是 square 推出的开源 java 代码生成框架,提供 Java Api 生成 .java 源文件。这个框架功能非常有用,我们可以很方便的使用它根据注解、数据库模式、协议格式等来对应生成代码。通过这种自动化生成代码的方式,可以让我们用更加简洁优雅的方式要替代繁琐冗杂的重复工作。二、使用解析2.1、示例为了展示 JavaPoet 的能力,这里以自动...原创 2019-11-27 17:33:59 · 441 阅读 · 0 评论 -
暴力突破 Android 编译插桩(三)- APT 之注解处理器
一、前言Java 中的注解(Annotation)是一个很神奇的东西,特别现在有很多 Android 库都是使用注解的方式来实现的。我们并不讨论那些在运行时通过反射机制运行处理的注解,而是讨论在编译时处理的注解,下面便入手学习下 Java 注解处理器。二、注解处理器解析注解处理器是一个在 javac 中的,用来编译时扫描和处理的注解的工具。你可以为特定的注解注册你自己的注解处理器...原创 2019-11-28 20:06:32 · 339 阅读 · 0 评论 -
暴力突破 Android 编译插桩(二)- APT 之注解知识
目录一、前言二、注解定义三、元注解3.1、@Target3.2、@Retention3.3、@Documented3.4、@Inherited四、其他注解4.1、JDK 内置的其他注解4.2、Android SDK 内置的注解五、自定义注解5.1、RetentionPolicy.SOURCE5.2、RetentionPolicy.RUNTIM...原创 2018-08-02 17:31:49 · 494 阅读 · 0 评论 -
暴力突破 Android 编译插桩(一)- 入门
一、前言随着 Android 开发的发展,越来越多场景需要用到编译插桩了。日常开发中我们肯定也都接触过编译插桩,只是没有去深入挖掘它的实现原理,比如 ButterKnife、无痕埋点等,所以学习编译插桩不仅可以提升我们的竞争力,还可以让我们在开发中开拓视野、更好地解决问题。我们经常使用Gradle Plugin + 编译插桩的方式,因此在学习编译插桩前,建议先看一下我的《Gradle 专栏》学习现在让我们一起学习一些编译插桩的基础来入门。二、编译插桩基础知识顾名思义,所谓的编译...原创 2020-05-18 21:00:12 · 947 阅读 · 0 评论