2021-01-06

BytecodeInjectPlugin -- 一个支持自定义注入 Java 代码的库

最新版本

v1.0.4
Copyright © 2019-2021 by JackWaiting, All rights reserved.

介绍

一个使用 Gradle Plugin + Javassist 实现代码自动注入的库

支持功能

  • 1、支持代码自定义插入方法体
  • 2、支持插入自定义变量名 (支持 byte,short,int long,boolean,char,float,double)
  • 3、适配 Java 与 Kotlin 代码
  • 4、支持 Module 与 Lib 同时代码插入
  • 5、支持简单变量标签,包括(class-name,simple-class-name,method-name)

Extension 介绍

  • enable 是否开启 BytecodeInjectPlugin 注入开关
  • processClassesRegex 要处理的类,正则表达式
  • codeLocalVariable 需要插入的方法变量
  • codeLocalVariableType 需要插入的方法变量类型
  • codeBeforeMethod 插入方法前的具体执行代码
  • codeAfterMethod 插入方法后的具体执行代码
  • enableClassLog & enableMethodLog 是否输出日志开关

使用方法介绍

往所有方法中插入执行时间统计代码,优化耗时方法。

  • 1、配置 gralde
buildscript {
    repositories {
        maven { url "https://dl.bintray.com/jackwaiting/maven/" }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2'
        classpath 'com.jackwaiting.bytecode.inject.plugin:bytecode-inject-release:1.0.4'
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 2、module gradle 使用插件
 apply plugin: 'bytecode-inject-android'
jack_extensions {
  enable true  //是否插入代码开关

  // 指定插入到方法开头的变量与变量类型
  codeLocalVariable "startTime"  //定义变量
  codeLocalVariableType "long" //定义变量类型

  // 指定插入到方法开头和结束处的代码,支持简单变量,包括<class-name>,<simple-class-name>,<method-name>
  codeBeforeMethod "startTime = System.currentTimeMillis();"
  codeAfterMethod "System.out.println(\"(bytecode-inject-android)<class-name>\$<method-name> 执行的时间: \" " +
          "+(System.currentTimeMillis() - startTime) +\"ms\");"
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 3、结果

在这里插入图片描述

源码地址戳这里!!!

【超实用课程内容】
本课程内容包含讲解解读Nginx的基础知识,解读Nginx的核心知识、带领学员进行高并发环境下的Nginx性能优化实战,让学生能够快速将所学融合到企业应用中。









【课程如何观看?】 


PC端:https://edu.csdn.net/course/detail/27216 


移动端:CSDN 学院APP(注意不是CSDN APP哦)


本课程为录播课,课程永久有效观看时长,大家可以抓紧时间学习后一起讨论哦~





【学员专享增值服务】 


源码开放 


课件、课程案例<em>代码</em>完全开放给你,你可以根据所学知识,自行修改、优化


下载方式:电脑登录https://edu.csdn.net/course/detail/27216,播放页面右侧点击课件进行资料打包下载
大学生网页设计大作业-以下5个网页设计制作作品自己任选: 1.网页制作基础大二dw作业 2.web网页大作业 3.大学生期末网页大作业-6页面的网页设计,是个人主页类型。包含了6个页面,包含视频、脚本
表情包
插入表情
还能输入1000个字符 “速评一下”
本文十天后设置为粉丝可见,喜欢的提前关注

不要白嫖请点赞

不要白嫖请点赞

不要白嫖请点赞

文中提到的书我都有电子版,可以评论邮箱发给你。

文中提到的书我都有电子版,可以评论邮箱发给你。

文中提到的书我都有电子版,可以评论邮箱发给你。

本篇文章应该算是Java后端开发技术栈的,但是大部分是基础知识,所以我觉得对任何方向都是有用的。

1、数据结构

数据结构是计算机存储、…


本课程介绍程序员必备的数学基础内容,在取材上侧重人工智能、数据分析等热门领域
学习大神的思路,动手实现字节码插桩功能_郭霖
12-30
首先,我们需要了解一下什么是ASM,ASM是 一个 Java字节码层面的 代码分析及修改工具,它有一套非常易用的API,通过它可以实现对现有class文件的操纵,从而实现动态生成类...
Android热修复技术(三)字节码 注入_sanshan_star的博客...
12-22
所以当我们 自定义Plugin要 注入多个Transform的时候,按照添加顺序来保证依赖关系,先添加的Transform先执行 二、 Javassist Javassist是 一个可以用来检查、动态修改以及创建J...
讲解微信小程序中样式的入门使用,如何使用传统的css知识点来开发wxss的样式;本节课主要讲解在微信小程序中创建样式的几种

写法,元素选择器的基础使用,id选择器和id派生选择器的使用,class类选择器的使用。


会用Python分析金融数据 or 金融行业会用Python
职场竞争力更高 








 








Python金融数据分析入门到实战 





掌握金融行业数据分析必备技能 








 








以股票量化交易为应用场景 





完成技术指标实现的全过程 








课程选取股票量化交易为应用场景,由股票数据的获取、技术指标的实现,逐步进阶到策略的设计和回测,由浅入深、由技术到思维地为同学们讲解Python金融数据分析在股票量化交易中的应用。 










 








以Python为编程语言 





解锁3大主流数据分析工具 








Python做金融具有先天优势,课程提取了Python数据分析工具NumPy、Pandas及可视化工具Matplotlib的关键点详细讲解,帮助同学掌握数据分析的关键技能。 








 








2大购课福利 
...Proxy进行 代码 注入的实用介绍_最佳 Java 编程
12-19
静态地或在运行时将 代码片段 注入已编译的类和方法中的功能可能会很有帮助。 这尤其适用于在没有源 代码的第三方 中或在无法使用调试器或探查器的环境中对问题进行...
...Activiti中的高级脚本: 自定义配置 注入_最佳 Java 编程
11-22
参考:Activiti中的高级脚本:JCG合作伙伴Joram Barrez在小脚步博客上的 自定义配置 注入。 翻译自:https://www. javacodegeeks.com/2013/07/advanced-scripting-in-acti...
python大作业分享 --30多个项目任你选(由于上传大小限制分多个文件上传。爬虫:https://download.csdn.net/download/weixin_43960044/1253338
您观看课程学习后

免费入群领取【超全Python资料包+17本学习电子书】

帮助与数百万年轻人打开人工智能的学习大门!
修改ysoserial使其 支持生成 代码执行Payload_fnmsd的博客
12-23
(待做,可以做一些有趣的事情比如 注入 一个java的反弹或绑定shell去绕过较弱的保护)已经留出了进行 代码执行的位置,实质上一般用的命令执行是调用的写死的Runtime...
Java EE CDI程序化依赖关系消歧示例– 注入点检查_最佳...
12-8
在本教程中,我们将看到在 注入 Java EE CDI bean时如何避免程序依赖消除歧义。 我们已经在Jave EE依赖关系消除歧义示例中展示了如何避免CDI Bean中的依赖关系歧义消除...
DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复
前不久上传了 一个控制台版本的学生管理系统,这个是Python界面版学生管理系统,这个是使用pycharm开发的 一个有界面的学生管理系统,基本的增删改查,里面又演示视频和完整 代码,有需要的伙伴可以自行下
通过 自定义Gradle插件修改编译后的class文件_huachao10...
12-9
或许你会觉得没有必要这样做,可是有一种应用场景就是,为每个编译后的class文件添加一行 代码。比如:在每个 Java类的构造函数中加一句System.out.println("I Love Hua...
java 反射 模拟spring自动 注入_pingnanlee的专栏
12-14
1、 自定义Autowired注解, 代码如下 packagecom.basic.reflect; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; ...
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页

最新评论

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页