当前位置: 首页 > news >正文

安全可信网站郑州模板建站多少钱

安全可信网站,郑州模板建站多少钱,注册网站后怎么建设,wordpress人才网主题1. 背景 在【Android】类加载器&热修复-随记一文中了解了类加载,要完成完整的热修复过程,我们需要构建出差量jar包。而这构建差量包分为两个步骤: 原包,注解解析和插桩;变更后,差量包构建;在这两步过程中会涉及到较多的字节码操作,这里我们需要了解下。我们都听过…

1. 背景

在【Android】类加载器&热修复-随记一文中了解了类加载,要完成完整的热修复过程,我们需要构建出差量jar包。而这构建差量包分为两个步骤:

  1. 原包,注解解析和插桩;
  2. 变更后,差量包构建;

在这两步过程中会涉及到较多的字节码操作,这里我们需要了解下。我们都听过ASM的大名,但门槛较高,这里选择Javaassist来入门。
在这里插入图片描述
另在Robust的构建插件中也可看见所使用的是Javaassist这个库:
在这里插入图片描述

2. 要点

官方文档:https://www.javassist.org/
学习文档:http://www.javassist.org/tutorial/tutorial.html?spm=395e44f7.4d3ad9aa.0.0.13e45fb4COpEYh

主旨是为了学习Robust,故这里的javaassist版本和该项目保持一致。即:

implementation 'org.javassist:javassist:3.20.0-GA'

下面章节将围绕这个版本进行学习。字节码操作大致分为增、删、改。网上查阅到了这篇文章:javassist使用全解析
,写的挺详细的。这里我们就了解两个能力:

  1. 新增一个类;
  2. 在方法前,插装;

2.1 新增一个类到apk中

在app构建过程中,如何通过javaassist来做到满足某个条件就新增一个类到最终apk中?
可以通过注册一个自定义transfrom:

AppExtension appExtension = project.getExtensions().getByType(AppExtension.class);
appExtension.registerTransform(new JavaAssistTransform(project));

在这个transfrom中处理class文件。比如按照上面博客教程生成一个class:

// "com.mengfou.sample.javaassist.AClass"
private byte[] generateTestClass(ClassBuffer classBuffer) {try {ClassPool pool = ClassPool.getDefault();CtClass ctClass = pool.makeClass(classBuffer.getClassName());CtField paramField = new CtField(pool.get("java.lang.String"), "value", ctClass);paramField.setModifiers(Modifier.PRIVATE);ctClass.addField(paramField, CtField.Initializer.constant("1"));CtConstructor cons = new CtConstructor(new CtClass[]{pool.get("java.lang.String")}, ctClass);cons.setBody("{$0.value=$1;}");ctClass.addConstructor(cons);CtMethod calculate = new CtMethod(pool.get("java.lang.String"), "calculate", new CtClass[]{}, ctClass);calculate.setModifiers(Modifier.PRIVATE);calculate.setBody("{return $0.value + \"_hello\";}");ctClass.addMethod(calculate);File parentPath = new File(project.getBuildDir(), "gen
http://www.yayakq.cn/news/769552/

相关文章:

  • 网站在哪里设置关键字怎样修改网站标题
  • 温州市永嘉上塘建设局网站php模板源码
  • 网站导航栏全屏怎么做百度对wordpress
  • 做电影网站用什么软件叫什么名字吗大气企业网站源码
  • 做网页和网站一样吗做公司网站需要准备什么资料
  • 广州网站快速制作建设工程信息网官网入口
  • 网站收录提交入口如何做一个网址
  • 网站建设入什么费用搭建视频网页
  • 做打鱼网站的代理无极电影
  • 有货 那样的网站怎么做北京网站推广技巧
  • 做竞价的网站需要做外部链接吗各大网站做推广的广告怎么做
  • 织梦cms做网站怎么样深圳创业补贴政策2021申请流程
  • 最近做网站开发有前途没一千元左右最好的手机
  • 教育网站制作哪专业电影网站开发库表结构
  • 厦门做网站个人网站建设行业企业排名
  • 获得网站php管理员密码怎么在门户网站上发布
  • 二级域名网站查询入口上海闵行注册公司
  • 网站外链怎么发wap网站还用吗
  • wordpress视频站插件施工企业综合管理费
  • 空压机东莞网站建设胶南网络推广
  • 高青云速网站建设无极领域0基础12天精通网站建设
  • 优秀网站评析重庆在线课程
  • 合肥网站制作网站wordpress tag函数
  • 网站开发文档编写如何自学网站后台
  • 潍坊市房屋和城乡建设局网站衡水做网站哪家好
  • 上每网站建设装潢设计师培训
  • 中国建设银行网站首页怎么销户苏州网站建设一条龙
  • 基于wordpress开发cmsseo排名优化什么意思
  • 移动互联网站建设网站建设实训报告册
  • 网站后台上传图片显示运行错误为什么软件技术招聘信息