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,播放页面右侧点击课件进行资料打包下载



































































不要白嫖请点赞
不要白嫖请点赞
不要白嫖请点赞
文中提到的书我都有电子版,可以评论邮箱发给你。
文中提到的书我都有电子版,可以评论邮箱发给你。
文中提到的书我都有电子版,可以评论邮箱发给你。
本篇文章应该算是Java后端开发技术栈的,但是大部分是基础知识,所以我觉得对任何方向都是有用的。
1、数据结构
数据结构是计算机存储、…
写法,元素选择器的基础使用,id选择器和id派生选择器的使用,class类选择器的使用。
职场竞争力更高
Python金融数据分析入门到实战
掌握金融行业数据分析必备技能
以股票量化交易为应用场景
完成技术指标实现的全过程
课程选取股票量化交易为应用场景,由股票数据的获取、技术指标的实现,逐步进阶到策略的设计和回测,由浅入深、由技术到思维地为同学们讲解Python金融数据分析在股票量化交易中的应用。
以Python为编程语言
解锁3大主流数据分析工具
Python做金融具有先天优势,课程提取了Python数据分析工具NumPy、Pandas及可视化工具Matplotlib的关键点详细讲解,帮助同学掌握数据分析的关键技能。
2大购课福利
免费入群领取【超全Python资料包+17本学习电子书】
帮助与数百万年轻人打开人工智能的学习大门!
热门文章
最新评论
- Android获取图片任意一点的RGB值
粼妖战士 海问香: 这个用的是eclipse开发的吗
- 如何使域名跳转到个人博客
UNIT无极: 互粉学习,我的也可以实现跳转 https://blog.csdn.net/weixin_43419816/article/details/106246960
- 什么是内存溢出与内存泄露,几种常见导致内存泄露的写法
Chawucikela: mark一下,写得超好,之前从来不懂这方面问题,现在懂了
- Android APP 卡顿问题分析及解决方案
JackWaiting 回复 hjt497821976: 使用 constraintlayout 是可以有一些优化的,constraintlayout 的原理就是扁平化,减少 View 的测量和布局次数
- JackHttp -- HTTPS 为什么是安全的?
liuhmmjj: 666