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

北京商城网站建设报价石家庄自动seo

北京商城网站建设报价,石家庄自动seo,网站制作导航超链接怎么做,可以打开所有网站的浏览器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.dt0577.cn/news/44432.html

相关文章:

  • 宝鸡网站建设bjsjwl无锡网站推广公司
  • 郑州做网站报价龙岗百度快速排名
  • 共青团主题网站建设网站seo关键词优化
  • 给别人做时时彩网站什么优化
  • 有的网站网速慢网站推广优化招聘
  • 1000平方办公室装修多少钱seo顾问服务
  • dede 网站打开慢网站推广费用
  • 小说网站建设多少钱营销手机系统安装
  • 常州网站专业制作提升seo搜索排名
  • 北京网站建设服务制作app平台需要多少钱
  • 用什么软件做购物网站海南网站制作
  • 点网站出图片怎么做百度站长平台app
  • 阿里云怎样做公司网站江苏网站seo营销模板
  • 原阳网站建设哪家好怎样申请网站注册
  • 顶级域名备案 二级域名 医疗网站东莞网站seo技术
  • 淘宝联盟+做网站网站快速刷排名工具
  • 泰安网站建设电话除了百度指数还有哪些指数
  • 广州网站建设哪家专业简短的营销软文范文
  • 做网站业务员如何跟客户沟通seo排名工具
  • 广西城乡建设厅网站首域名注册新网
  • 可在哪些网站做链接seo 推广服务
  • 本机运行wordpress免费下载优化大师
  • 北京网站建设外包公司排名app运营方案
  • 加强政协网站建设2022年适合小学生的新闻
  • 政府网站改版方案seo管理与优化期末试题
  • 自己做的网站怎么挣钱seo综合查询是什么
  • 公众号开发是不是网站开发地推接单正规平台
  • 做地方网站收益怎么样品牌营销策划书
  • 买的网站模板怎么做好用的搜索引擎
  • 网页版梦幻西游科举答案长春百度快速优化