`

Android核心分析 之一--------分析方法论探讨之设计意图

阅读更多

原文地址:http://blog.csdn.net/maxleng/article/details/5471557

 

 

分析方法论探讨之设计意图


为什么要研究 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 )从分析系统数据流和控制流分析出发。


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


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

 

分享到:
评论

相关推荐

    android 核心分析

    Android 核心分析 之一--------分析方法论探讨之设计意图.......................................... 1 Android 核心分析 之二 -------方法论探讨之概念空间篇..............................................3 ...

    Android核心设计思想分析

    Android核心分析之一--------分析方法论探讨之设计意图..........................................1 Android核心分析之二-------方法论探讨之概念空间篇..............................................3 Android是...

    [经典文档]Android核心分析

    核心分析之一 ----- 分析方法论探讨之设计意图 核心分析之二 ----- 方法论探讨之概念空间篇 核心分析之三 ----- 手机之硬件形态 核心分析之四 ----- 手机之软件形态 核心分析之五 ----- 基本空间划分 核心分析之六 -...

    Android核心分析1

    (转) Android核心分析 之一--分析方法论探讨之设计意图

    android核心分析pdf

    #### 二、方法论探讨 **Android核心分析(02):** 探讨了Android系统设计中的“概念空间”,即如何从抽象的角度理解和构建系统的各个组成部分。这部分内容有助于读者建立对Android整体架构的认知框架。 #### 三、...

    Android核心分析-050417421

    本文档使用看云构建,通过分析方法论探讨之设计意图,了解Android系统的设计理念和架构设计。 Android系统作为一个庞大和复杂的手机开发平台,已经激起了程序员的内心渴望,渴望理解其复杂性。通过研究和分析,作者...

    android核心分析

    ### Android核心分析——设计意图与方法论探讨 #### 一、设计意图的探索 在深入研究Android之前,首要任务是理解其背后的设计理念。对于一个跨平台开发者而言,熟悉并掌握Android的核心概念至关重要。Android引入...

    Android核心分析 100多页

    #### 一、设计意图与方法论探讨 - **设计意图的重要性:** 开发者在深入研究Android系统时,首先要明确设计者的初衷与目标。只有理解了设计者的意图,才能更好地把握整个系统的架构和发展方向。本文档从设计者的...

    Android核心分析系列教程

    #### 一、Android核心分析之——分析方法论探讨之设计意图 在这一章节中,作者强调了研究Android的重要性,并指出研究Android不仅仅是学习其技术细节,更重要的是理解其背后的设计思想。作者认为,面对如此复杂的...

    Android核心分析(pdf)

    **方法论探讨:** - **概念空间篇:** 通过对概念空间的探讨,帮助开发者构建对Android系统整体架构的认知模型。这包括了解Android的核心概念如Activity、Service等的基本定义及作用。 - **设计理念与原则:** 分析...

    Android核心分析

    #### 三、方法论探讨之概念空间篇 进一步地,Maxleng在其系列文章中讨论了概念空间的重要性,并将其视为理解系统设计的关键因素之一。 ##### **3.1 概念空间的本质** - **人性思维空间**: 开发者通常会从人类的...

    Android应用源码之Android小部件AppWidget-IT计算机-毕业设计.zip

    - **论文撰写**:可以从设计思路、实现技术、用户交互等方面阐述AppWidget的设计与实现,分析其在实际应用中的价值和挑战。 通过这个毕业设计项目,学生可以深入理解Android系统的组件模型,掌握BroadcastReceiver...

    Android应用源码之MySensor-IT计算机-毕业设计.zip

    总结来说,"Android应用源码之MySensor"是一个典型的Android毕业设计案例,涵盖了Android开发的多个核心知识点,包括传感器API的使用、UI设计、数据处理、权限管理等。通过深入研究源码,不仅可以提升Android开发...

    android的核心分析

    #### 分析方法论探讨之设计意图 在深入探讨Android系统之前,我们首先需要明确一点:为何要研究Android?对于许多开发者来说,Android不仅是一个极具吸引力的开发平台,更是一种挑战,一种对技术极限的追求。...

    Android核心分析.doc

    2. 方法论探讨:在概念空间篇中,讨论了Android系统的模块化设计和组件间的通信方式,强调了Intent和BroadcastReceiver等核心机制在系统中的重要作用。 3. 硬件形态:这部分分析了Android如何适应不同硬件配置,如...

    Android核心分析.pdf

    本文旨在深入剖析Android的核心机制,从设计者的意图出发,采用一种独特的分析方法论来探索Android系统的本质特征。 #### 二、研究背景与动机 对于一名程序员而言,面对如此庞大的Android系统,如何快速理解和掌握...

Global site tag (gtag.js) - Google Analytics