千万级应用美团robust修复原理手写字节码插件技术.pptx

千万级应用美团robust修复原理手写字节码插件技术.pptx

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

《android移动互联网高级开发》AndroidVip正式课用代码码出自己牛逼的人生码牛学院代码成就人生

android移动互联网高级开发码牛学院-用代码码出精彩的人生

码牛学院Android讲师介绍David复旦大学工程硕士,原Oppo资深研发工程师,网易特邀Android讲师,专注技术十年,产品控、代码控,拥有丰富的项目经验,主持研发了多个成功上线的大型互联网项目。热爱互联网,热衷于各种Android底层技术,精通NDK架构和前端开发,擅长移动互联网高并发、可维护性架构设计,有丰富的实战经验。愿意和他人分享自己对技术的理解和感悟,讲课逻辑清晰,生动幽默。River《Android开发入门与实战第二版》作者之一,《NFC:Arduino、Android与PhoneGap近场通信》译者,国内首批Android开发,曾任职于银联,华夏幸福等知名公司,擅长项目重构,架构,以及性能优化,拥有多年的项目开发以及管理经验,原网易特邀Android讲师。授课风格幽默风趣,有激情,注重站在学员的角度考虑问题。Zee中南大学计算机信息专业毕业,前新浪架构师,58同城项目负责人。8年Android行业从业经验,丰富的项目研发以及管理经验,原网易特邀Android讲师,对架构方面有深入的研究。授课激情有活力,能耐心帮助学员解决项目中遇到的问题。David老师QQ:1051917835

千万级应用美团Robust修复原理javassist字节码插件技术码牛学院-用代码码出牛逼人生今晚课题

目录COMPANY01美团robust修复详解03?apk编译原理,groovy实现动态插入代码02robust依赖的插件实现方式04自己实现robust插件,动态改动主工程代码

01今晚开启你的瓶颈----------坐上老司机的车,带你稳稳的走上秋明山

课程安排01Javassist介绍(动态编译)020304手写Class字节码手术刀ClassPool字节码池AndroidApk编译原理

课程小结美团热修复介绍

课程小结JavaSsist介绍定义:javassist也称为动态编译,动态编译技术通过操作Java字节码的方式在JVM中生成class字节码中动态添加元素或修改代码,发生在Class字节码生成后(打包成dex之前,编译时之后),也称为Class字节码手术刀动态编程解决什么问题?动态修改编译后的Class字节码实现了对APP实现了修改的无限可能1组件化2热修复3增量升级4AndroidStudio插件

课程小结动态编程解决什么问题?动态修改编译后的Class字节码实现了对APP实现了修改的无限可能1组件化2热修复3增量升级4AndroidStudio插件

Groovy工程编写打开src/main目录,修改java文件名称为groovysrc/main下,仅保留groovy文件夹,删除其他文件夹删除无用的libs文件夹、proguard-rules.pro文件

Groovy配置文件打开src/main目录,修改java文件名称为groovysrc/main下,仅保留groovy文件夹,删除其他文件夹删除无用的libs文件夹、proguard-rules.pro文件

ClassPool详解ClassPool称为字节码容器池ClassPool是缓存Class字节码对象的容器,所有的Class字节码对象都在ClassPool中。CtClass对象很多时,ClassPool会消耗很大的内存,为了避免内存的消耗,创建ClassPool对象时可以使用单例模式,或者对于CtClass对象,调用detach方法将其从ClassPool中移除

编译原理右图是谷歌官网给出的一个典型的apk构建的过程,概括为两个过程,编译过程,编译的内容包括本工程的文件以及依赖的各种库文件,编译的输出包括dex文件和编译后的资源文件。打包过程。配合Keystore对第一步的输出进行签名对齐,生成最终的apk文件。

Transform详解从android-build-tool:gradle:1.5开始,gradle插件包含了一个叫Transform的API,这个API允许第三方插件在class文件转为为dex文件前操作编译好的class文件,理解:内部暴露出一个修改的接口,供开发者使用

Transform责任链每个Transform其实都是一个gradletask,Android编译器中的TaskManager将每个Transform串连起来原生就带了一系列Transform比如transformClassesWithDexBuilderForDebugtransformDexArchiveWithDexMerger

文档评论(0)

158****9376 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档