[转]Android核心分析之一:分析方法论探讨之设计意图

为何要研究Android,是由于它够庞大,它够复杂,他激起了我做为一个程序员的心里的渴望,渴望理解这种复杂性。我研究的对象是做为手机开发平台的Android软件系统部分,而不是Dalvik虚拟机自己。java

做为一个从其余平台装接过来的程序员,要从事Andoid平台系统开发,个人关于手机平台上积累的知识已经不能知足须要了,Android为咱们带来了大量的新名词,ActivityManifestINTENTServiceBinderDalvik虚拟机,FrameworkLinuxNavtive JNI.....。经过在源代码,在开发社区,在开发博客,甚至在招聘过程当中,我不断的寻求Android是什么。通过必定时间的沉淀,我慢慢的理解到Android不单单是一类手机的总称,不单单是一个手机开发平台,不单单是一个虚拟java操做系统,不单单是一个开发社区,一个开发标准,不单单是一堆代码,Android已经成了一个新的潮流。程序员

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

个人研究分析是从设计者的意图出发,从抽象的甚至从哲学的高度,从最简单的系统原型开始,从设计猜测开始,而不是一开始就从代码分析展开。首先理解Android大的运行框架,主干流程,系统原型,以后再用源代码分析充实之。固然我这里的设计者意图并非真正的Android设计者意图,而是我觉得的Android设计者意图。框架

要理解设计者意图,就须要抽象。咱们须要在哲学意义空间中去考虑系统的描述,即系统在本质上要表达什么。在逻辑空间上去考虑系统基本构成和动态结构。从现实到虚拟对象的映射去理解系统对象的组成,在从数据流的角度分析数据的产生者和消费者之间做用关系,从控制流的角度去分析对象之间的交互关系,从函数调用去分析具体的层次关系。函数

在系统设计上,原型是最能表达哲学空间和逻辑空间中系统本质的东西,原型是事物本质的第一层体现。我觉得任何复杂的系统都一个简洁的系统原型,都有它简洁的意义。系统原型是设计者意图的第一体现,因此咱们须要从几个方向上去提炼系统原型:spa

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

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

从设计者意图出发,得出系统原型,提取到大的逻辑结构和系统构成是第一步。以后咱们能够从设计者的角度考虑系统猜测系统设计,为何要这样设计,为何要有这些构成。这样的基本原型是什么?系统的限制是什么,应用场景有哪些,有些设计的引进仍是系统收敛性而为之呢。咱们还能够从代码痕迹上去分析,这些概念是如何的得来的?从必定的抽象和高度去理解这些问题,遵循系统原型出发之原则,在深刻分析代码的时候,就不容易陷入细节中。咱们就能够随时跳出来想,这些代码在总体上载表达一个什么概念,在描绘一个什么逻辑,他要构成一个虚拟层吗?他是在管理这个硬件吗?他在 虚拟这个对象吗?他在构建管理机构?仍是在构建一个对象管理?空间管理,为了快速引入了什么样的复杂算法,实际上的原型算法应该是什么样的?设计

只有深刻到这个抽象层次,咱们才能很好的把握住系统的每一条线,每个对象的意义。只用从原型出发,咱们才能把握住这个系统的实质所在,在干什么?他要表达什么?设计者为何要这样想?最终极的想法是什么?这样,代码分析就变得简单明了,读代码就变成了是在印证猜测,修正方向。对象

原文连接:Android核心分析 之一--------分析方法论探讨之设计意图

相关文章
相关标签/搜索