某一天你接到一个公司的面试邀请,去参加面试。
面试官问你:
- handler的阻塞为什么不会导致app ANR
- 子线程如何创建handler
- handler如何发送延迟消息
- 享元设计模式的价值是什么?
- handler如何处理多线程访问并发问题?
- Application 被fork 产生进程的流程分析;
- Activity&Window&View分工绑定的原理;
- View的绘制和渲染流程;
- 怎样让子线程可以更新UI
- Android系统的结构层次分析;
- Init进程启动的守护进程价值;
- Zygote 的存在价值;
- 为什么android还是使用了Socket;
- systemServer进程管理AMS的架构;
- AMS管理App进程的方案
- Android系统的结构层次分析;
- Init进程启动的守护进程价值;
- Zygote 的存在价值;
- 为什么android还是使用了Socket;
- systemServer进程管理AMS的架构;
- AMS管理App进程的方案
如果以上你都答得上来,那么恭喜你,这篇文章以下的内容你可以不用看了。
相信大家对于Framework框架结构并不陌生,甚至基本原理也能说上两句,可每次一到面试就容易卡壳,不止所措,导致关键原理没有描述清楚,从而遗憾离场......
以下主要讲的就是Framework层中的系统启动流程,Binder,Handler,AMS,WMS等原理解析,如果你这方面有所缺陷,可以VX关注公众号~
Android老皮
《Android Framework 开发揭秘》
第一章 系统启动流程分析
- 第一节 Android启动概览
- 第二节 init.rc解析
- 第三节 Zygote
- 第四节 面试题
第二章 Binder解析
- 第一节 宏观认识Binder
- 第二节binder的jni方法注册
- 第三节binder驱动
- 第四节 数据结构
- 第五节 启动service_manager
- 第六节获取service_manager
- 第七节 addService流程
- 第八节 Binder面试题全解析
第三章 Handler解析
- 第一节 源码分析
- 第二节 难点问题
- 第三节Handler常问面试题
第四章 AMS 解析
- 第一节 引言
- 第二节 Android架构
- 第三节 通信方式
- 第四节 系统启动系列
- 第五节 AMS
- 第六节 AMS 面试题解析
第五章 WMS解析
- 第一节Activity与Window相关概念
- 第二节 Android窗口管理服务WindowManagerService计算Activity窗口大小的过程分析
- 第三节Android窗口管理服务WindowManagerService对窗口的组织方式分析
- 第四节 Android窗口管理服务WindowManagerService对输入法窗口的管理分析 -第五节 Android窗口管理服务WindowManagerService对壁纸窗口的管理分析
- …
第六章PKMS Android10.0 源码解读
- 第一节 前言 PKMS 是什么东西?
- 第二节 PKMS 概述信息
- 第三节 PKMS角色位置
- 第四节 PKMS 启动过程分析
- 第五节 APK的扫描
- 第七节 PMS之权限扫描
- 第八节 PackageManagerService大综合笔记