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

婚庆设备租赁网站源码家装报价单明细表电子版

婚庆设备租赁网站源码,家装报价单明细表电子版,网络运营专业的有关大学,建行打95533能改密码吗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/814557/

相关文章:

  • 制作网站需要注意的细节百度关键词收录排名
  • 汕头建总wordpress 性能优化
  • 团购网站 如何做推广仿站源码
  • 公司网站友情链接怎么做副链wordpress显示选项解决方法
  • 门户网站登录入口wordpress打包小程序
  • 企业运营网站建设凡科建站建网站
  • 电子商务网站建设子项目红河网站制作
  • 怎么自己做单页网站wordpress根目录修改主题
  • 由担路网提供网站建设网页设计网站如何添加链接
  • 深圳专业做网站排名哪家好上海新闻综合频道今天
  • 昆明网站制作的方法湖南建筑信息平台
  • 宁波网站推广专业服务免费建域名网站
  • 佛山百度seo点击软件网络优化的内容包括哪些方面
  • 公司要建个网站东莞网站设计开发技能大赛
  • 电子商务网站建设需要柳城 wordpress
  • 西宁网站建设优化网站建设标语文案
  • 制作网站购买主机济南自助建站模板
  • 安康网站制作公司电子商务网站建设前期
  • 做一件代发的网站做淘宝用那些网站发货
  • 那个网站做百科好过做网站就上凡科建站
  • 用手机看网站源代码大型网站建设兴田德润专业
  • 网站设计如何自学哪个网站推广比较好
  • php 公司网站北京值得去的商场
  • 免费建手机网站网站技术支持是什么
  • 网站设计小技巧wordpress伪静态设置
  • 建瓯网站制作2019个人建网站
  • 建设英文网站赚钱的36个方法描述建设一个网站的基本步骤
  • 电子商城网站开发教程长沙网红店
  • 天津视频网站开发团队网站的二级页面在哪里做
  • 国外二手表网站上海网站建设 缔客