最近我一直在面试高级工程师,不管初级,高级,程序员,我想面试前,大家刷题一定是是少不了吧。
热修复介绍
1.开发流程
当项目出现紧急bug时,传统的开发流程是发布新版本,引导用户覆盖安装。抛开平台审核上线的时间不说,一天重复下载安装至少两次的用户体验是很差的。而热修复的出现完美解决了这个问题,用户在收到服务器推送过来的修复包后,在项目运行时进行修复。整个过程是在用户无感知状态下完成,也无需下载相对来说较大的安装包,代价小。
总结为两个优点:
-
无需重新发版,修复效率高
-
用户无感知,代价小
2.都能修复什么
-
资源修复
-
代码修复
-
so库修复
3.代码修复技术分类
目前最主要有三种方案:
-
基于类加载与 Dex 分包方案,进行 Dex 插桩/替换
-
Native Hook 进行底层替换
-
Install Run 进行类的注入
由于国内手机厂商定制系统的多样,Dex 插桩/替换是我认为最适合的方案。
总结
最后小编想说:不论以后选择什么方向发展,目前重要的是把Android方面的技术学好,毕竟其实对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!
这里附上我整理的几十套腾讯、字节跳动,京东,小米,头条、阿里、美团等公司19年的Android面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。
详细整理在GitHub可以见;
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。