随笔分类 -  图解Android 系列

通过图来理解Android Framework.
摘要:Android的用户输入处理Android的用户输入系统获取用户按键(或模拟按键)输入,分发给特定的模块(Framework或应用程序)进行处理,它涉及到以下一些模块:Input Reader: 负责从硬件获取输入,转换成事件(Event), 并分发给Input Dispatcher.Input Dispatcher: 将Input Reader传送过来的Events 分发给合适的窗口,并监控ANR。Input Manager Service: 负责Input Reader 和 Input Dispatchor的创建,并提供Policy 用于Events的预处理。Window Manager 阅读全文
posted @ 2013-11-12 19:27 漫天尘沙 阅读(25574) 评论(11) 推荐(6) 编辑
摘要:Zygote是Android里面一个非常重要的进程,它创建了Android的Dalvik虚拟机及整个Android的Runtime环境,然后初始化System Server,是所有Android Java应用程序的孵化器。本文通过一系列的图表来解析Zygote, System Server 及Android 应用的启动流程,从而了解Android 操作系统在搭建应用平台的一些精妙设计。 阅读全文
posted @ 2013-10-25 00:09 漫天尘沙 阅读(41911) 评论(6) 推荐(7) 编辑
摘要:Android 是一个多应用的操作系统,Binder是Android 进程间通信的机制,是Android Framework工作的基础,本文通过大量的图表来解析Binder 由下至上的设计,包括Kernel driver, Native 和 Java Framework 层,从而全面的了解Binder的工作原理,并进而理解Android Framework的设计基础。 阅读全文
posted @ 2013-10-25 00:08 漫天尘沙 阅读(42197) 评论(14) 推荐(11) 编辑
摘要:Android的GUI系统是Android最重要也最复杂的系统之一。它包括以下部分:窗口和图形系统 - Window and View Manager System.显示合成系统 - Surface Flinger用户输入系统 - InputManager System应用框架系统 - Activity Manager System.它们之间的关系如下图所示只有对这些系统的功能和工作原理有基本的了解,我们才能够解答一些经常萦绕在脑海里的问题,比如说:Activity启动过程是怎样的?Activity的onXXX()在后台都做了什么工作?Activity的show()和hide()是如何控制的? 阅读全文
posted @ 2013-10-16 17:49 漫天尘沙 阅读(39495) 评论(6) 推荐(7) 编辑
摘要:本文介绍了Android GUI窗口系统的几个方面,从窗口布局,绘制,刷新到多窗口的管理。并简单介绍了OpenGL以及Android 4.0以后引入的硬件加速。 阅读全文
posted @ 2013-10-15 20:40 漫天尘沙 阅读(40207) 评论(11) 推荐(9) 编辑
摘要:如何看UML图? UML能给我们带来什么? 这是本文要寻找的答案。UML图有很多类型,我们这里只讨论最重要也最常用的两种 - 类图和时序图。1. 类图通过类图,我们可以很容易的了解代码架构,理清模块之间的关系, 包括继承(Inheritance),实现(realization),依赖(dependency),组合(Composition), 聚合(Aggregation), 关联 (Association) 等等。下面就图中给出的7种关系一一解读。1.1 Composition Compostion 是一种 Association 关系,但它更强调两个类之间整体和局部关系,它暗示两个类之间有着 阅读全文
posted @ 2013-10-13 02:49 漫天尘沙 阅读(16620) 评论(6) 推荐(3) 编辑
摘要:Looper, Handler 和 MessageQueue 是Android 的异步消息处理机制 阅读全文
posted @ 2013-09-12 01:23 漫天尘沙 阅读(3543) 评论(1) 推荐(0) 编辑
摘要:通过 图解Android - Binder 和 Service 一文中,我们已经分析了Binder 和 Service的工作原理。接下来,我们来简要分析Android 系统里面都有哪些重要的Service, 它们分别完成什么样的功能。Android 大部分的系统Services 都运行在 System Server 这个进程里,用一个简单的方法来看看都有哪些重要的Service, “ps -t | grep "system 1078 938 780164 51232 ffffffff 00000000 S system_serversystem 1083 1078 780... 阅读全文
posted @ 2013-09-12 00:58 漫天尘沙 阅读(6472) 评论(4) 推荐(1) 编辑