Android ASM插桩


标签:Android ASM插桩,ASM插桩经验

Android ASM插桩操作手册
https://blog.csdn.net/u010976213/article/details/105293195

使用ASM完成编译时插桩
https://zhuanlan.zhihu.com/p/158758613

ASM官网:

https://asm.ow2.io


ASM官网指导手册:

https://asm.ow2.io/developer-guide.html

代码示例,自测可以跑得通!
https://github.com/Gavin-ZYX/asmDemo
https://github.com/isJoker/ASM_Demo

插桩的位置:
在这里插入图片描述
在这里插入图片描述

插柱细节流程:
在这里插入图片描述

在这里插入图片描述

修改了插件的代码,重新生成插件
在这里插入图片描述
工程要Clean Project,再Build APK

在这里插入图片描述
插桩后,函数执行顺序一清二楚


参考示例代码:

https://github.com/achirand/asmDemo2022
https://github.com/achirand/CircleProgressWithASM


ASM插桩经验
经验一:函数名称有特殊字符,例如<或$,这些函数给除掉,不然编译APK报错误
在这里插入图片描述
经验二:
在这里插入图片描述
安卓各module里的build.gradle文件里的targetSdkVersion ,compileSdkVersion值保持一致,不然有时编译也会报错。

经验三:
在这里插入图片描述
如果编译使用gradle 7.0以上版本,没有uploadArchives函数了,须使用publishing函数。生成本地jar时,点击右边PublishToMavenLocal

publishing {
    publications {
        maven(MavenPublication) {
            groupId = 'com.gavin.plugin'
            artifactId = 'sample'
            version = "0.0.1"
            from components.java
            
            pom {
                name = 'My Library'
                description = 'A description of my library'
            }
        }
    }
}

参考链接:
伪字节相关知识:
https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-6.html#jvms-6.5.dup
https://gitlab.ow2.org/asm/asm 源码,ASM是开源的
https://asm.ow2.io/developer-guide.html ASM指导手册



作者简介:https://shimo.im/docs/rp3OVwxle2fJn7Am/
上海徐汇
2022年4月17日

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值