掌握Android Framework基本知识
Framework
本文着重讲解Android系统底层原理,补齐Android开发的framework层知识短板。一方面对高级工程师的面试提供直接帮助,另一方面可以提高大家的技术段位。兼顾面试知识技能与开发内功,适合每一位Android中高级开发者。
沉淀国内外丰富大厂经验系统掌握Framework底层原理
化繁为简,Framework也不难
剖析关键代码,掌握Framework精髓
图文并茂,更好理解底层原理
分享多年开发与学习心得助力提高分析与解决问题能力
分析Framework模块设计思路
解读模块核心代码设计技巧
分享如何研究底层方法与经验
第1章 学习指南
本章会告诉大家为什么应该学习这门课,课程有哪些特色,能给大家带来什么收获,还会讲到课程的整体内容安排,最后还会给出一些学习建议,让大家能更好地学习这门课。
第2章 系统服务相关问题
本章重点讲解系统核心进程,以及一些关键的系统服务的启动原理
2-1 谈谈对zygote的理解
2-2 说说Android系统的启动
2-3 你知道怎么添加一个系统服务吗?
2-4 系统服务和bind的应用服务有什么区别?
2-5 ServiceManager启动和工作原理是怎样的?
2-6 谈谈对AMS的理解
第3章 应用进程相关问题
本章主要讲解应用进程的启动,以及伴随进程启动过程中的一些重要机制的初始化原理,比如binder机制,Application,以及Context等方面的问题。
3-1 你知道应用进程是怎么启动的吗?
3-2 应用是怎么启用Binder机制的?
3-3 谈谈你对Application的理解
3-4 谈谈你对Context的理解
3-5 冷启动App
第4章 Activity组件相关问题
这一章主要讲解Activity相关的机制,包括Activity的启动流程,显示原理等相关问题,通过本章的学习,我们不但能熟悉它,更能深入了解它。
4-1 说说Activity的启动流程
4-2 说说Activity的显示原理
4-3 应用的UI线程是怎么启动的
第5章 其它应用组件相关问题
本章主要讲除了Activity之外的应用组件相关问题,包括service的启动和绑定原理,静态广播和动态广播的注册和收发原理,provider的启动和数据传输原理等等。
5-1 说说service的启动原理
5-2 说说service的绑定原理-1
5-3 说说service的绑定原理-2
5-4 说说动态广播的注册和收发原理
5-5 说说静态广播的注册和收发原理
5-6 说说Provider的启动原理
第6章 UI体系相关问题
本章主要讲UI体系相关问题,包括UI刷新机制,涉及到vsync和choreographer原理。另外还会讲到surface的相关原理,涉及到应用和WMS、surfaceFlinger通信。
6-1 说说屏幕刷新的机制-1
6-2 说说屏幕刷新的机制-2
6-3 surface跨进程传递原理
6-4 surface的绘制原理
6-5 你对vsync机制有了解吗?
6-6 SurfaceView & View的区别,底层原理有何不同
第7章 进程通信相关问题
本章主要讲进程通信相关问题,包括binder的整体架构和通信原理,oneway机制,binder对象的传递等等。
7-1 Android Framework用到了哪些跨进程通信方式
7-2 谈谈你对Binder的理解
7-3 一次完整的ipc通信流程是怎样的
7-4 binder对象跨进程传递原理是怎么样的
7-5 说一说binder的oneway机制
第8章 线程通信相关问题
本章主要讲线程通信原理相关问题,包括消息队列的创建,消息循环机制,消息延时,同步和异步消息,消息屏障等等内容。
8-1 线程的消息队列是怎么创建的?
8-2 说说android线程间消息传递机制
8-3 handler的消息延时是怎么实现的?
8-4 说说idleHandler的原理
8-5 主线程进入loop循环了为什么没有ANR?
8-6 听说过消息屏障么?
8-7 多线程间通信和多进程之间通信有什么不同,分别怎么实现?
第9章 技巧,心得相关
除了上面章节之外的所有问题,都会放在本章讲到,除了原理之外,还会分享一些代码技巧。
收起列表
9-1 怎么跨进程传递大图片
9-2 说说threadLocal的原理
9-3 来说说looper的副业
9-4 怎么检查线程有耗时任务
9-5 怎么同步处理消息
9-6 主线程&ApplicationThread
第10章 综合性问题
本章主要是讨论一些综合性较强的题,这类题目不会问到具体某一块原理,需要充分结合自己的思考和积累,没有唯一的答案。本章我们就来讨论这些开放的题目该怎么答,有哪些思路可以借鉴的。
10-1 你去了解framework是为了解决一个什么样的问题,怎么解决的
10-2 Android Framework用到了哪些设计模式
10-3 Framework中有什么你觉得设计的很巧妙的地方,请举例说明-1
10-4 Framework中有什么你觉得设计的很巧妙的地方,请举例说明-2
第11章 课程总结
课程总结