【Android源码 栏目提醒】:本文主要为网学会员提供“Android核心分析 之一--------分析方法论探讨之设计意图 - 企业软件开发”,希望对需要Android核心分析 之一--------分析方法论探讨之设计意图 - 企业软件开发网友有所帮助,学习一下!
分析方法论探讨之设计意图 为什么要研究
Android是因为它够庞大它够复杂他激起了我作为一个程序员的内心的渴望渴望理解这种复杂性。
我研究的对象是作为手机开发平台的
Android软件系统部分而不是Dalvik虚拟机本身。
作为一个从其他平台装接过来的程序员要从事Andoid平台系统开发我的关于手机平台上积累的知识已经不能满足需要了
Android为我们带来了大量的新名词ActivityManifestINTENTServiceBinderDalvik虚拟机FrameworkLinuxNavtive JNI.....。
通过在源代码在开发社区在开发博客甚至在招聘过程中我不断的寻求
Android是什么。
经过一定时间的沉淀我慢慢的理解到
Android不仅仅是一类手机的总称不仅仅是一个手机开发平台不仅仅是一个虚拟java操作系统不仅仅是一个开发社区一个开发标准不仅仅是一堆代码
Android已经成了一个新的潮流。
代码多系统复杂纵观社区中
Android的研究者一开始从源代码分析
Android就走向迷途不断的跋山涉水向纵深冲刺最终脑袋堆栈不够用迷失在开始的旅程或者挂在半途中鲜有通达者。
我感觉到大部分的研究者总是忘记站在高山上向下望一望设计者的意图一味的随着代码的控制流走入繁杂的谜团陷入到复杂性的深渊。
我的研究分析是从设计者的意图出发从抽象的甚至从哲学的高度从最简单的系统原型开始从设计猜想开始而不是一开始就从代码分析展开。
首先理解
Android大的运行框架主干流程系统原型之后再用源代码分析充实之。
当然我这里的设计者意图并不是真正的
Android设计者意图而是我以为的
Android设计者意图。
要理解设计者意图就需要抽象。
我们需要在哲学意义空间中去考虑系统的描述即系统在本质上要表达什么。
在逻辑空间上去考虑系统基本构成和动态结构。
从现实到虚拟对象的映射去理解系统对象的组成在从数据流的角度分析数据的产生者和消费者之间作用关系从控制流的角度去分析对象之间的交互关系从函数调用去分析具体的层次关系。
在系统设计上原型是最能表达哲学空间和逻辑空间中系统本质的东西原型是事物本质的第一层体现。
我以为任何复杂的系统都一个简洁的系统原型都有它简洁的意义。
系统原型是设计者意图的第一体现所以我们需要从几个方向上去提炼系统原型 1从系统本质和基本原理出发 2从分析系统数据流和控制流分析出发。
从设计者意图出发得出系统原型提取到大的逻辑结构和系统构成是第一步。
之后我们可以从设计者的角度考虑系统猜想系统设计为什么要这样设计为什么要有这些构成。
这样的基本原型是什么系统的限制是什么应用场景有哪些有些设计的引进还是系统收敛性而为之呢。
我们还可以从代码痕迹上去分析这些概念是如何的得来的从一定的抽象和高度去理解这些问题遵循系统原型出发之原则在深入分析代码的时候就不容易陷入细节中。
我们就可以随时跳出来想这些代码在整体上载表达一个什么概念在描绘一个什么逻辑他要构成一个虚拟层吗他是在管理这个硬件吗他在 虚拟这个对象吗他在构建管理机构还是在构建一个对象管理空间管理为了快速引入了什么样的复杂算法实际上的原型算法应该是什么样的 只有深入到这个抽象层次我们才能很好的把握住系统的每一条线每一个对象的意义。
只用从原型出发我们才能把握住这个系统的实质所在在干什么他要表达什么设计者为什么要这样想最终极的想法是什么这样代码分析就变得简单明了读代码就变成了是在印证猜想修正方向。