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

更多相关文章

  1. Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影
  2. App测试在IOS和android系统中的区别
  3. [置顶] Android访问控制系统测试与评估
  4. 面试问题之:Android中消息系统模型和Handler Looper
  5. 浅入浅出 Android(安卓)安全:第四章 Android(安卓)框架层安全
  6. Android(安卓)5.0 Camera系统源码分析(1):CameraService启动流程
  7. Symbian生不逢时,被迫闭源是必然结局
  8. Android权限管理详解
  9. Android中的icon适配

随机推荐

  1. android 内存清理
  2. android截屏代码:C++实现
  3. GoogleAndroid常用的Android常量
  4. 读取raw文件下文件内容
  5. android开发--RelativeLayout用到的一些
  6. Android(安卓)ImageSpan与TextView中的te
  7. Android中WebView如何加载JavaScript脚本
  8. Android预制APP第一次打开时不弹权限提示
  9. AndroidのUI布局之layout weight
  10. android-GooglePlay安装来源追踪PlayInst