background image

Android 核心分析

作为一个从其他平台装接过来的程序员,要从事

Andoid 平台系统开发,我的关于手机

平 台 上 积 累 的 知 识 已 经 不 能 满 足 需 要 了 ,

Android 为 我 们 带 来 了 大 量 的 新 名 词 ,

Activity , Manifest , INTENT , Service , Binder , Dalvik 虚 拟 机
Framework,Linux,Navtive ,JNI.....。通过在源代码,在开发社区,在开发博客,甚至在
招聘过程中,我不断的寻求

Android 是什么。经过一定时间的沉淀,我慢慢的理解到

Android 不仅仅是一类手机的总称,不仅仅是一个手机开发平台,不仅仅是一个虚拟 java
操作系统,不仅仅是一个开发社区,一个开发标准,不仅仅是一堆代码,

Android 已经成了

一个新的潮流。

代码多,系统复杂,纵观社区中

Android 的研究者,一开始从源代码分析 Android 就走

向迷途,不断的跋山涉水,向纵深冲刺,最终脑袋堆栈不够用,迷失在开始的旅程,或者
挂在半途中,鲜有通达者。我感觉到大部分的研究者总是忘记站在高山上向下望一望设计者
的意图,一味的随着代码的控制流走入繁杂的谜团,陷入到复杂性的深渊。

我的研究分析是从设计者的意图出发,从抽象的甚至从哲学的高度,从最简单的系统

原型开始,从设计猜想开始,而不是一开始就从代码分析展开。首先理解

Android 大的运行

框架,主干流程,系统原型,之后再用源代码分析充实之。当然我这里的设计者意图并不是
真正的

Android 设计者意图,而是我以为的 Android 设计者意图。

要理解设计者意图,就需要抽象。我们需要在哲学意义空间中去考虑系统的描述,即系

统在本质上要表达什么。在逻辑空间上去考虑系统基本构成和动态结构。从现实到虚拟对象
的映射去理解系统对象的组成,在从数据流的角度分析数据的产生者和消费者之间作用关
系,从控制流的角度去分析对象之间的交互关系,从函数调用去分析具体的层次关系。

在系统设计上,原型是最能表达哲学空间和逻辑空间中系统本质的东西,原型是事物

本质的第一层体现。我以为任何复杂的系统都一个简洁的系统原型,都有它简洁的意义。系
统原型是设计者意图的第一体现,所以我们需要从几个方向上去提炼系统原型:

1)从系统本质和基本原理出发

2)从分析系统数据流和控制流分析出发。

从设计者意图出发,得出系统原型,提取到大的逻辑结构和系统构成是第一步。之后我

们可以从设计者的角度考虑系统猜想系统设计,为什么要这样设计,为什么要有这些构成。
这样的基本原型是什么?系统的限制是什么,应用场景有哪些,有些设计的引进还是系统
收敛性而为之呢。我们还可以从代码痕迹上去分析,这些概念是如何的得来的?从一定的抽