没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Android 核心分析 之一 -------- 分析方法论探讨之设计意图 .......................................... 1
Android 核心分析 之二 ------- 方法论探讨之概念空间篇 .............................................. 3
Android 是什么 之三 ------- 手机之硬件形态 ..................................................................... 5
Android 核心分析之四 --- 手机的软件形态 ...................................................................... 6
Android 核心分析 之五 ----- 基本空间划分 .................................................................... 7
Android 核心分析 之六 -----IPC 框架分析 Binder , Service , Service manager ..... 11
Android 核心分析 之七 ------Service 深入分析 .............................................................. 21
Android 核心分析 之八 ------Android 启动过程详解 ................................................... 31
Android 核心分析 之九 -------Zygote Service .................................................................. 36
Android 核心分析 之十 -------Android GWES 之基本原理篇 ....................................... 40
Android 核心分析 之十一 -------Android GWES 之消息系统 ....................................... 43
Android 核心分析 (12) -----Android GEWS 窗口管理之基本架构原理 ...................... 48
Android 核心分析 (13) -----Android GWES 之 Android 窗口管理 ............................... 50
Android 核心分析( 14 ) ------ Android GWES 之输入系统 .......................................... 57
Android 核心分析( 15)--------Android 输入系统之输入路径详解 .............................. 59
Android 核心分析( 16 ) -----Android 电话系统
-
概述篇 ............................................... 66
Android 核心分析( 17 ) ------ 电话系统之 rilD ............................................................ 69
Android 核心分析( 18 ) -----Android 电话系统之 RIL-Java ........................................ 76
Android 核心分析( 19 ) ---- 电话系统之 GSMCallTacker ............................................. 84
Android 核心分析( 20)----Android 应用程序框架之无边界设计意图 ....................... 87
Android 核心分析( 21 ) ----Android 应用框架之 AndroidApplication ....................... 88
Android 核心分析( 22 ) -----Android 应用框架之 Activity .......................................... 93
Android 核心分析( 24)-----Android GDI 之显示缓冲管理 ......................................... 104
Android 核心分析( 25 ) ------Android GDI 之共享缓冲区机制 ................................ 112
Android 核心分析( 26 ) -----Android GDI 之 SurfaceFlinger ..................................... 116
Android 核心分析( 27 ) -----Android GDI 之 SurfaceFlinger 之动态结构示意图 .. 123
Android 核心分析( 28 ) -----Android GDI 之 Surface&Canvas .................................. 126
Android
Android
Android
Android 核心分析 之一 --------
--------
--------
-------- 分析方法论探讨之设计意图
分析方法论探讨之设计意图
为什么要研究 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
Android
Android 核心分析 之二 -------
-------
-------
------- 方法论探讨之概念空间篇
方法论探讨之概念空间篇
我们潜意识就不想用计算机的方式来思考问题 , 我们有自己的思维描述方式 , 越是接近
我们思维描述方式 , 我们越容易接受和使用 。 各种计算机语言 , 建模工具 , 不外乎就是建立
一个更接近人的思维方式的概念空间,再使用工具从该概念空间向另外一个概念空间映射
,
我称之为人性思维空间向 01 序列描述空间的一个映射。实现方面来看,系统就是一个翻译
器 , 将机器性更加人性化的一种机制 。 大学计算机经典课
“
计算机体系结构 ” , 其他的可以忘
记,但是下面这个图不能忘记:
这个就是概念空间最本质的原型体现 : 作为观测者看到了什么?设计者给了观察者什么?给
出的答案是外部特性。
( 1 )提供给观察者的概念空间是什么?
( 2 )内部特性的概念空间是什么?
概念空间所表达的东西带有两个方面的缠绕 : 一面是人性自由 , 一面是物性制约 ( 实时
响应,系统资源的限制 ) 。所以程序实现的概念空间是人性自由与特定计算机系统物性之间
有一个折中,并且根据实际系统而采取某种动态的平衡。而这种平衡将会影响到系统架构
,
以及设计的思想 。 特别在手机这样的嵌入式系统中 , 这种矛盾和平衡无处不在 , 这种折中无
处不在 。 而对系统的选取和采用 , 也就接受了某个方面的折中或某中即在的 , 也许是看不见
的标准 , 及这样的标准有隐式和显式的 。 正因为如此 , 不管是工具的产生 , 新的平台的产生 ,
都是计算机的物性向人性靠近的一个小台阶 。 一个新的思想的形成随即带来的新工具 , 新系
统框架,新的体系结构。
如果设计者站的高度足够高,那么设计者一开始就会考虑到
“
我该给他们一个什么样的
概念空间,甚至一个什么样的理念,让他们这个概念空间去建立自己的产品 ” ,于是设计者
就会开始主动的去建立概念空间 , 这个概念空间要表达的实际意义 , 概念空间应该有哪些内
容构成 , 考虑概念空间的完备性和封闭性 , 考虑概念空间的边界 , 考虑从哪个基础上建立这
个概念空间 , 考虑如何与概念空间外的实体进行交互 , 考虑系统的资源限制条件 , 考虑功能
性构建的合理性,考虑机器系统与人的平衡问题。
我们在学习新系统时,首先映入眼帘的就是新概念。新名词,就如现在我们面临 的
Android 大量的新名词,在程序员的世界都是从代码实践开始的,是从写应用开始去涉及 。
SDK 给了我们一个概念 , 我们就在这个概念框架下 , 使用 SDK 给我提供的函数接口 , 数据
结构 , 初始化过程等 , 我们最初的接触到原型就是
“
HelloWorld ” 之类的 DEMO 程序 , 我们 在
Hello world 上去使用各种不同的接口函数,对于应用程序员来讲 , 他说看到的系统就是系统
调用接口,及其编程开发流程。实际上只要一使用这些接口 , 就不得不接受一系列的概念 , 只
有在这种概念系统下 , 我们才能工作 。 但是 , 实际上我们却忽略了这样的概念系统的理解 , 只是
在编程接口的这个狭窄的空间去理解系统 . 我们理解系统在形成理解概念的空间只是微小的
一角,很少有资料来介绍这种概念系统的形成和理解 , 编程接口只是这个概念空间一个,对
外部的一个表征 。 我们可以抽象起来 , 以接口 , 协议和行为 , 来描述系统的情况 。 SDK API 的实
质向上层提供了一个语义接口 , 从而在层间实现了一个转义过程 , 同时又成为一个功能的集
合体。但是我们很少这样跳出来看,我们到底是处于一种什么样的概念空间, SDK 除了调
用接口外 , 还给了我们怎样一种整体概念?目标系统的基本构架在本质上的东西就是一个概
念系统到另一个概念系统的映射 。 让我们大脑理解的概念系统映射到计算机能实现的概念域
的一个映射。我们假定这个概念域 E, 机器能够理解的概念域为 M, 我们的软件工程要做的事
情实质就是: E
à
M 领域的一个映射过程。
为什么要在宏观上把握这些概念呢 , 显然有我的目的 , 理解概念空间是理解设计者意图的一
个重要途径 。 设计者要想给开发者提供什么 , 设计者想要提供给最终用户什么 。 我们需要站
在高处看待系统明白设计者意图。
Android 的实质还是一套管理手机硬件系统的软件 , 这个话讲起来没有多大意义 , 计算机
操作系统本质都是如此 , Android 是 Google 云计算计划的一部分 , 我们修正成 : Android 建
立的本质就是让计算机成为我的云接入移动智能终端 。 作为硬件管理软件 , Android 提供概
念空间内涵实质上泛操作系统内涵 , 我们的理解可以从泛操作系统概念空间映射到 Androi d
系统中去。而作为云计算的一部分的内容,我们可以云计算的概念入手去研究 Andoird 。
Android
Android
Android
Android 是什么 之三 -------
-------
-------
------- 手机之硬件形态
手机硬件形态
本节可能与 Android 无关 , 但是 Android 系统现在这个阶段更多的是移动终端形态的开
发平台,本节给出了 Android 背后的工作 -Android 管理的硬件是什么, Android 的本质就是
要管理好这些硬件部分 , 为用户提供一个体验更好 , 速度更快的智能移动终端 。 对手机硬件
形态的认识是要让我们对手机硬件组成有个感性的认识 , 让程序员知道系统中的代码是管理
那一部分的,即我们堆砖头的目的是什么,让思维有一个伸展。
为了对手机这类嵌入式系统有一个较为深入的了解 , 我制作了如下的手机硬件结构思维
导图 , 在这张图上我们可以看到组成手机硬件的有哪些 , 初步了解到手机管理平台为什么要
那么多的管理框架和层次 , 从最底层理解 Android 设计者的设计意图 , 这个思维导图其实只
是示意图。
剩余127页未读,继续阅读
资源评论
- _Oliver_2014-11-17学习资料,好好学习
- caiwl20102016-07-25很好的学习资料,谢谢啦
- 彬斌滨2014-10-22十分不错,灰常不错!谢谢楼主!!!!!
GeekerParadise
- 粉丝: 5
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功