Android 高工跟大家总结:“Framework”,真的绝了

Posted 冬天的毛毛雨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 高工跟大家总结:“Framework”,真的绝了相关的知识,希望对你有一定的参考价值。

如果出去面试,针对高一点的级别,Framework 基本上会纳为必问的知识点。

你可能会困惑,Framework 我们平时开发过程中又用不到,为什么面试官喜欢问这样的问题呢?

其实不然…

考察 Framework 更多的目的是考察大家对于 Binder 和 Handler 的掌握。

举个例子,比如你了解了 Handler的源码结构,你就可以更好的理解那些概念:

  • 为什么不能在子线程更新 UI?
  • 主线程为什么循环却不会卡死?
  • Thread 和 Handler 的关系
  • ThreadLocal 做什么的?
  • ContentProvider、Broadcast、Service 是怎么利用 Message 监控 ANR 的?

再比如进程通信Binder

Binder 是 android 中主要的跨进程通信方式,Binder 包括 BinderProxy、BpBinder 等各种Binder 实体,以及对 Binder 驱动操作的 ProcessState、IPCThreadState 封装,整体贯穿 Java、Native 层,涉及用户态、内核态,往上可以说到 Service、AIDL 等,往下可以说到 mmap、Binder 驱动设备,是相当庞大、繁琐的一个机制。

光讲完Binder,一整天的时间都不够用

面试官通常会问“基于 mmap 是如何实现一次拷贝的?

通过看图的方式可以更好的理解:

Client 与 Server 处于不同进程有着不同的虚拟地址规则,所以无法直接通信。而一个页框可以映射给多个页,那么就可以将一块物理内存分别与 Client 和 Server 的虚拟内存块进行映射。

如图, Client 就只需 copy_from_user 进行一次数据拷贝,Server 进程就能读取到数据了。另外映射的虚拟内存块大小将近 1M (1M-8K),所以 IPC 通信传输的数据量也被限制为此值。

当然如果想要精通Framework,不仅要对底层原理充分了解,还要知道如何利用Framework知识指导我们代码实践开发,除了Handler、Binder之外,还有Android App 的启动机制、AMS、PMS、WMS等…

这样才能够真正说得上是精通Framwork。

精通意味着

  1. 首先在大厂面试环节,Framework是必问项,你可以展示出个人实力;
  2. 一旦你进入大厂,对Framework了解越多,你能够做的事情就越多,产出也会越多,而且可以持续不断的去做。

作为过来人,发现很多学习者和实践者都在 Android Framework上面临着很多的困扰,比如:

工作场景中遇到难题,往往只能靠盲猜和感觉,用临时性的补救措施去掩盖,看似解决了问题,但下次同样的问题又会发作,原因则是缺乏方法论、思路的指引以及工具支持;
能力修炼中,缺乏互联网项目这一实践环境,对Framework只能通过理论知识进行想象,无法认识其在工作实战中的真实面目和实操过程;
职场晋升中,只管功能开发,不了解底层原理,缺少深入地思考与总结,无法完成复杂系统设计这类高阶工作,难以在工作中大展拳脚,而有挑战的工作往往留给有准备的人。

总之,一旦遇到问题,很少人能够由点及面逆向分析,最终找到瓶颈点和最优解决方案,而Framework是Android开发的深水区,也是衡量一个Android程序员能力高低的标准。

如果真想掌握好 Android Framework 框架知识点,学习路线和学习文档肯定是少不了,为了帮助大家节省学习周期的时间,收集整理了这份《Android Framework 知识点汇总》和 学习脑图 ,希望帮助大家在技术的道路上更进一步。已经全部整理收录好了,大家需要参考学习完整版,请去我 GitHub 进行查阅。

GitHub地址: 
https://github.com/733gh/Android-T3

已经全部整理收录好了,大家需要参考学习完整版,请去我 GitHub 进行查阅。

GitHub地址: 
https://github.com/733gh/Android-T3

以上是关于Android 高工跟大家总结:“Framework”,真的绝了的主要内容,如果未能解决你的问题,请参考以下文章

Android 高工对自己过往面试的汇总总结~

疫情裁员下,字节Android高工所需要掌握的技术,裁员后的你是否能重新加入高工圈

字节跳动Android开发高工面试:海量Android大厂高频面试题精编解析

Android高工:细说 Android 多线程,探究原理知其所以然

Android高工必备技能

来自Android 高工的感慨~