Android面试题|从源码角度分析Handler核心机制

看源码时遵循的"道":

  1. 遵循what,how,why的通用三部曲学习原则,从表象到本质。
    what即这个东西是什么,有什么用,解决了什么问题,有什么语法,有什么特性。
    how即这个东西是如何解决这些问题的,实现机制是如何的,内部是如何运作的。
    why即这个东西为什么要这么设计,为什么不能设计成那样,这么设计有什么讲究,优点和缺点是什么。
  2. 如果有设计文档,先看设计文档,了解了设计思想和整体原理后,再看源码。
  3. 源码是设计思想的具体实现,看源码是为了从实践角度进一步深入理解设计思想。
  4. 【Android面试题|从源码角度分析Handler核心机制】不理解设计思想和整体原理就直接看源码几乎没有什么意义,会让你进入源码后看的晕头转向,花费了大量时间却收获甚小,事倍功半。当然如果有些东西确实没有设计文档,那么可以直接看源码来理解设计思想,只是可能需要花费几倍的精力和时间。
  5. 看源码时先抓住主线,然后再看细节,即先掌握主干、掌握骨架脉络,然后再看细枝末叶。
  6. 一个很好的学习方法是跟着经验丰富的人学习框架的设计思想和整体原理,然后手写实现框架的核心原理以及核心功能,后续再看源码的细节。一个框架自己看设计文档和源码可能需要十天半个月才能搞懂整体原理,跟着经验丰富的人可能只需要一两天。
  7. 复杂的知识点多写几遍、理解了原理后就会跟写if-else语句那样轻松,多写几遍其义自见,当然前提是写的时候要多思考多领悟。
  8. 第一篇文章是框架的基本使用,第二篇文章是手写实现框架的核心原理以及核心功能,第三篇文章是框架的源码分析。
  9. 看十遍设计文档,都不及你手动把相关设计文档、类图、时序图等画一遍来的理解深刻,看十遍代码都不及你手写一遍代码来的理解深刻,在这个画一遍和写一遍的过程中,你是在主动输出,你会主动思考,而不是被动输入。
  10. 写文章总结时,根据自己的思路写总结。
  11. 有经验的开发者写代码时不但会从业务需求的角度完成开发任务,还会从CPU,内存,操作系统,数据结构和算法,网络优化这些角度来优化代码。
先了解设计思想,理解基础知识,再看代码,代码都是思想的具体实现,一来就读源码只会晕头转向。
看代码不要什么都看,只需要看主线代码(主要的是理解它的思想,而不是代码细节,代码细节是为了更好的理解其思想的具体实现),主线代码逻辑掌握了再选择性的看细节代码。
要知道学什么,该学到什么程度,不然就是像无头苍蝇一样的乱学,最终就是什么都会一点,什么都不精。
前期要规划好路线:
1、早点进大厂,评级(需要先锻炼好技术)
2、创业(需要先锻炼好技术)
3、转行
一定要确定好边界,不要什么都学,什么都做。APP开发涉及:Java基础、UI、四大组件、性能优化、NDK、开源框架、架构、数据结构与算法、设计模式等。做APP开发就想办法做好APP开发,不要想着做APP安全方向好像很挣钱,做逆向好像很挣钱,做音视频好像很挣钱,做游戏开发好像也很挣钱…我要不要转过去啊…也不要想着深入研究Linux系统开发,感觉深入研究Linux看起来好像也很牛逼(Linux系统非常庞大,一般都是非常多数量的人组成的小组进行合作开发,每个人专做其中的一个模块。包括framework开发,单个人可能只负责其中的一小部分,比如只负责AMS,WMS,PMS相关的部分。)…其实人家看你做出精美的APP也很羡慕的…正确的思维是:做APP开发就想办法做好APP开发,要精进,高度分工的社会要的就是专业,要看准市场对APP开发的需求点和要求条件,一切以目标为导向。人的精力是有限的,做好一个方向才会精进,才会专业。
好了,下面进入本文的正题。
本文目标:
1.Handler源码分析的三条主线
2.源码中涉及的不能忽视的技术
3.Handler相关面试题
参考:
Android开发大佬带从源码角度全盘解读Handler核心机制,从容面对Handler面试问题
面试总被问到Handler?带你从源码的角度解读Handler核心机制

    推荐阅读