自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(15)
  • 资源 (2)
  • 收藏
  • 关注

原创 【Android字节码插桩实战】字节码插桩——双击防抖

摘要:本文介绍了在Android开发中实现双击防抖功能的方案,通过自定义注解和ASM字节码插桩技术实现。首先定义@DoubleClickCheck注解标注需要防抖的方法,指定间隔时间和提示信息。然后使用ASM在编译期修改字节码:为类添加记录点击时间的字段,在被注解方法开头插入时间判断逻辑。当检测到快速双击时,会打印提示信息并返回;否则更新点击时间并执行原逻辑。这种方案无需修改源代码,通过注解配置即可实现精准的点击防抖控制。

2025-11-14 15:10:42 65

原创 【Android字节码插桩实战】字节码(五)同步指令

摘要:Java中的同步通过监视器锁实现,对应字节码指令monitorenter和monitorexit。同步代码块会生成两个monitorexit指令分别处理正常和异常情况,而同步方法通过ACC_SYNCHRONIZED标志实现,实例方法锁this对象,静态方法锁Class对象。JVM在调用ACC_SYNCHRONIZED方法时会自动获取并释放监视器锁。

2025-11-10 10:19:43 54

原创 【Android字节码插桩实战】字节码(四)控制转移指令

控制转移指令通过修改程序计数器改变执行流程,包含条件分支(if_icmple等)、无条件跳转(goto)和表跳转(tableswitch/lookupswitch)。条件分支实现if-else和循环;表跳转分别针对连续和稀疏case值优化switch性能;异常处理则通过异常表实现try-catch-finally。这些指令共同支持程序流程控制,示例代码展示了它们的具体应用和字节码表示。

2025-11-07 10:13:39 69

原创 Android Drawable目录ldpi、mdpi、hdpi、xhdpi、xxhdpi屏幕密度适配

本文介绍了Android开发中屏幕密度的基础概念和资源适配方案。核心内容包括:1) 解释分辨率、屏幕密度(dpi)、dp单位等基本概念;2) 详细说明ldpi至xxxhdpi六种标准密度目录的对应参数和适用设备;3) 阐述系统自动选择资源目录的原理和计算公式;4) 通过具体示例演示图片在不同密度设备上的缩放计算过程。文章强调为每个密度目录提供按标准比例缩放的图片资源,才能在所有设备上获得最佳显示效果,避免图片模糊或失真问题。

2025-11-06 16:01:45 3505

原创 【Android字节码插桩实战】字节码(三)操作数栈指令

操作数栈(Operand Stack)是JVM栈帧的重要组成部分,用于存储计算过程中的中间结果和临时数据。它是一个后进先出(LIFO)的数据结构。

2025-11-06 10:00:26 53

原创 【Android字节码插桩实战】字节码(二)对象创建和访问指令

通常将Java字节码指令分为多个类别,如加载和存储、算术运算、类型转换、对象创建与操作、操作数栈管理、控制转移、方法调用和返回等。这里我们重点关注“创建和访问指令”,这主要包括对象的创建、数组的创建、以及字段的访问指令。这些指令在Java字节码中非常常见,是操作对象和数组的基础。创建和访问指令主要围绕和这两种复合数据类型进行操作。

2025-11-05 20:31:11 55

原创 【Android字节码插桩实战】字节码(一)加载,存储和运算指令

Java字节码由操作码和操作数组成,操作码代表特定操作,操作数提供参数支持。JVM指令对数据类型支持有限,byte、short等类型运算时会转换为int类型处理。指令按功能分为9类,包括加载存储、运算、类型转换等。加载存储指令实现变量与操作数栈的交互,运算指令支持算术和位运算操作。不同类型的常量通过iconst、ldc等指令加载,数值运算通过iadd、fadd等指令实现。字节码设计体现了JVM对数据类型的高效处理机制。

2025-11-04 20:34:18 151

原创 【Android字节码插桩实战】Java虚拟机--栈帧、操作数栈和局部变量表

摘要:栈帧是JVM方法调用的核心数据结构,包含局部变量表和操作数栈等组件。局部变量表存储方法参数和局部变量,以变量槽为单位,64位数据占用两个槽位。操作数栈是方法执行的临时工作区,32位数据占1个栈位,64位占2个。二者容量均在编译期确定,共同支撑字节码指令的执行。栈帧的生命周期与方法调用同步,具有线程私有特性,是理解JVM执行机制的关键基础。

2025-10-30 20:24:46 69

原创 【Android字节码插桩实战】字节码基础 java class文件结构解析

本文详细介绍了Java Class文件结构与字节码操作。首先通过示例展示如何使用ASM工具进行字节码处理,然后以Animal类为例,解析Class文件的核心组成部分。重点讲解了魔数、版本号、常量池(包含Class、FieldRef、MethodRef等7种常量类型)、字段信息和方法信息等关键结构,并提供了Oracle官方文档参考。文章通过具体代码段(如插入日志语句)和javap反编译结果,直观展示了Class文件内部的组织形式和各部分功能,为深入理解字节码操作奠定了基础。

2025-10-29 20:02:15 69

原创 【Android字节码插桩实战】Gradle 插件开发和详解

本文详细介绍了如何开发独立项目的Gradle插件以实现ASM字节码插桩。主要内容包括:首先解释了Gradle插件的基础概念和作用,重点阐述了独立项目插件的实现过程,包括创建Java库模块、配置build.gradle、实现Plugin接口、参数扩展配置等核心环节。具体说明了通过ExtensionContainer处理插件参数的方法,以及如何定义插件名称并发布到本地仓库。最后给出了主工程引用插件的配置方法,并简要讨论了字节码插桩技术在性能监控、安全审计等多个领域的应用价值。整个过程涵盖了从插件开发到集成应用的

2025-10-29 11:32:08 70

原创 【Android字节码插桩实战】Transform详解和工作流程

本文介绍了Android开发中Transform API的使用,它允许开发者在构建过程中操作.class文件。Transform继承自Transform类,通过核心方法transform实现对字节码的修改,支持处理目录和JAR文件。文章详细讲解了Transform的工作流程、核心接口实现、输入输出处理、类文件过滤、JAR包遍历等关键步骤,并介绍了Transform名称、作用范围、作用域和增量编译等配置选项。通过结合ASM字节码操作库,Transform可以实现在Gradle构建过程中自动对项目代码进行插桩处

2025-10-28 16:30:33 110

原创 【Android字节码插桩实战】ASM字节码操作详解

ASM是一个Java字节码操作框架,可直接修改已编译的类文件或动态生成类,常用于Android开发的代码插桩(如埋点、性能检测等)典型应用包括添加字段/方法、方法耗时统计等,通过自定义ClassVisitor和MethodVisitor实现。

2025-10-27 18:04:19 126

原创 机器学习—感知机(Perceptron)

感知机(perceptron)是线性二分类的分类模型,输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此,导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。感知机的模型为: f(x)=sign(w*x+b)其中sign为激活函数。

2024-10-18 20:06:30 1244 1

原创 机器学习—多元线性回归

多元线性回归指的就是一个样本有多个特征的线性回归问题。对于一个有个特征的样本而言,可以看作为多个自变量X对一个因变量Y的影响情况,

2024-10-18 14:37:57 594

原创 机器学习—线性回归(Linear Regression)

线性回归原理和分析

2024-10-18 10:25:47 1641

动态生成移动路径,定义物体移动轨迹

根据贝塞尔曲线绘制,动态生成移动路径,元件更具路径移动

2016-09-10

利用gradle插件进行asm字节码插桩统计方法耗时统计

1)通过java项目演示如何通过asm修改字节码并进行展示 2)实战封装gradle插件,通过transform api遍历项目中class以及jar包class文件 3)包含完成方法耗时的字节码插桩技术

2025-10-31

纯AS3图片切换效果-包括渐变,电视墙,滴水融化,百叶窗,拉滑块,划入

纯AS3图片切换效果-包括渐变,电视墙,滴水融化,百叶窗,拉滑块,划入。

2016-09-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除