`
Nullin
  • 浏览: 25346 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Adroid核心分析

阅读更多
作者博客:http://blog.csdn.net/maxleng 2010年06月14日 Android核心分析(28)-----Android GDI之Surface&Canvas Surface&Canvas Canvas为在画布的意思。Android上层的作图几乎都通过Canvas实例来完成,其实Canvas更多是一种接口的包装。drawPaints ,drawPoints,drawRect,drawBitmap ... 1 Canvas与Surface之间本质关系 对于本节,我们不去研究Skia图形引擎本身,我们需要了解的我们的所做的图形到底放置到了那个地方,并且这个Canvas如何与Surface连接在一起的。 Canvas(Java)在C++Native层有一个Native Canvas的C++对象所对应。 lockCanvas()@java Surface_lockCanvas@android_view_Surface.cpp SurfaceControl->new Surface(control) @Surface.cpp Surface: lock操作: GraphicBuffer :lock getBufferMapper(阅读全文> 发表于 @ 2010年06月14日 22:05:00 | 评论( 5 ) | 举报| 收藏 Android核心分析(27)-----Android GDI 之SurfaceFlinger之动态结构示意图 SurfaceFlinger对象建立过程示意 1 SurfaceSession的建立 客户端请求建立Surface时,首先在要与SurfaceFlinger建立一个Session,然后再Session上建立一个Connection通过概念返回Bclient对象。WindowManagerService在添加第一个窗口前会检查SurfaceSession是否建立,如何没有建立,将会新建立一个实例来代表与SurfaceFlinger的一个连接。 new SurfaceSession()@windowAddedLocked() @WindowManagerService.java。 SurfaceSession的建立过程大部分是在C++ Native空间中完成的,表现在SurfaceSession的初始化函数:init()本地函数上。从下面的初始化函数可以看到: Init()SurfaceSession_init@android_view_Surface.cpp new SurfaceComposerClient SurfaceSes阅读全文> 发表于 @ 2010年06月14日 22:02:00 | 评论( 5 ) | 举报| 收藏 Android核心分析(26)-----Android GDI之SurfaceFlinger Android GDI之SurfaceFlinger SurfaceFinger按英文翻译过来就是Surface投递者。SufaceFlinger的构成并不是太复杂,复杂的是他的客户端建构。SufaceFlinger主要功能是: 1) 将Layers (Surfaces) 内容的刷新到屏幕上 2) 维持Layer的Zorder序列,并对Layer最终输出做出裁剪计算。 3) 响应Client要求,创建Layer与客户端的Surface建立连接 4) 接收Client要求,修改Layer属性(输出大小,Alpha等设定) 但是作为投递者的实际意义,我们首先需要知道的是如何投递,投掷物,投递路线,投递目的地。 1 SurfaceFlinger的基本组成框架 SurfaceFlinger管理对象为: mClientsMap:管理客户端与服务端的连接。 ISurface,IsurfaceComposer:AIDL调用接口实例 mLayerMap:服务端的Surface的管理对象。 mCurrentState.layersSortedByZ 阅读全文> 发表于 @ 2010年06月14日 20:31:00 | 评论( 0 ) | 举报| 收藏 Android核心分析(25)------Android GDI之共享缓冲区机制 Androird GDI之共享缓冲区机制 1 native_handle_t对private_handle_t 的包裹 private_handle_t是gralloc.so使用的本地缓冲区私有的数据结构,而Native_handle_t是上层抽象的可以在进程间传递的数据结构。在客户端是如何还原所传递的数据结构呢?首先看看native_handle_t对private_handle_t的抽象包装。 numFds= sNumFds=1; numInts= sNumInts=8; 这个是Parcel中描述句柄的抽象模式。实际上是指的Native_handle所指向句柄对象的具体内容: numFds=1表示有一个文件句柄:fd/ numInts= 8表示后面跟了8个INT型的数据:magic,flags,size,offset,base,lockState,writeOwner,pid; 由于在上层系统不要关心buffer_handle_t中data的具体内容。在进程间传递buffer_handle_t(native_handle_t)句柄是阅读全文> 发表于 @ 2010年06月14日 16:29:00 | 评论( 0 ) | 举报| 收藏 Android核心分析(24)-----Android GDI之显示缓冲管理 Android GDI之屏幕设备管理-动态链接库 万丈高楼从地起,从最根源的硬件帧缓冲区开始。我们知道显示FrameBuffer在系统中就是一段内存,GDI的工作就是把需要输出的内容放入到该段内存的某个位置。我们从基本的点(像素点)和基本的缓冲区操作开始。 1 基本知识 1.1点的格式 对于不同的LCD来讲,FrameBuffer的二进制格式不一样,并且可以分为两部分: 1)点的格式:通常将Depth,即表示多少位表示一个点。 1位表示一个点 2位表示一个点 16位表示一个点 32位表示一个点(Alpha通道) 2) 点内格式:RGB分量分布表示。 例如对于我们常见的16位表示一个点 1.2.格式之间的转换 所以屏幕输出实际上是一个值映射的关系。我们可以有如下的点格式转换, 源格式可能来自单色位图和彩色位图,对于具体的目标机来讲,我们的目标格式可能就是一种,例如16位(5/6/5)格式。其实就只存在一种格式的转换,即从目标格式都是16位格式。 但是,在设阅读全文> 发表于 @ 2010年06月14日 13:36:00 | 评论( 1 ) | 举报| 收藏 2010年06月13日 Android核心分析(23)-----Andoird GDI之基本原理及其总体框架 Android GDI基本框架 在Android中所涉及的概念和代码最多,最繁杂的就是GDI相关的代码了。但是本质从抽象上来讲,这么多的代码和框架就干了一件事情:对显示缓冲区的操作和管理。 GDI主要管理图形图像的输出,从整体方向上来看,GDI可以被认为是一个物理屏幕使用的管理器。因为在实际的产品中,我们需要在物理屏幕上输出不同的窗口,而每个窗口认为自己独占屏幕的使用,对所有窗口输出,应用程序不会关心物理屏幕是否被别的窗口占用,而只是关心自己在本窗口的输出,至于输出是否能在屏幕上看见,则需要GDI来管理。 从最上层到最底层的数据流的分析可以看到实际上GDI在上层为GUI提供一个抽象的概念,就好像操作系统中的文件系统所提供文件,目录等抽象概念一样,GDI输出抽象成了文本,画笔,位图操作等设备无关的操作,让应用程序员只需要面对逻辑的设备上下文进行输出操作,而不要涉及到具体输出设备,以及输出边界的管理。GDI负责将文本、线条、位图等概念对象映射到具体的物理设备,所以GDI的在大体方向上可以分为以下几大要素: 画布 字体 文本输出 阅读全文> 发表于 @ 2010年06月13日 22:49:00 | 评论( 2 ) | 举报| 收藏 2010年05月24日 Android核心分析(22)-----Android应用框架之Activity 3 Activity设计框架 3.1 外特性空间的Activity 我们先来看看,Android应用开发人员接触的外特性空间中的Activity,对于AMS来讲,这个Activity就是客服端的Activity。应用程序员在建立Android应用时,构建Activity的子类就是Andoid外特性空间展现的接口。我们可以从下面的简单的例子描述看看Activity,到底如何建立的。 DemoActivity extend Activity { onCreate onResume onPause onStop } 在Android的外特性空间(SDK)中,Android应用程序员根本不知道进程是什么时候起来的,系统消息是如何传递过来的。这个DemoActivity是如何实例化的呢?并且该Activity是托管在哪个进程的呢?本节的分析将给出答案。 我们从ActivityThread中可以看到在应用进程中的Activity都被放置在mActivities中。 阅读全文> 发表于 @ 2010年05月24日 23:32:00 | 评论( 12 ) | 举报| 收藏 Android核心分析(21)----Android应用框架之AndroidApplication Android Application Android提供给开发程序员的概念空间中Application只是一个松散的表征概念,没有多少实质上的表征。在Android实际空间中看不到实际意义上的应用程序的概念,即使有一个叫Application的类,这个也就是个应用程序上下文状态,是一个极度弱化的概念。Application只是一个空间范畴的概念,Application就是Activity,Service之类的组件上下文描述。Application并不是Android的核心概念,而Activity才是Android的核心概念。 从Android的SDK文档中,我们知道一般情况Android应用程序是由以下四种组件构造而成的:Activity,Broadcast Intent Receiver,服务(Service),内容提供器(Content Provider)。我们可以使用下面的图来表示一下Android的概念空间。这些组件依附于应用程序中,应用程序并不会一开始就建立起来,而是在这些组件建立起来后,需要运行时,才开始建立应用程序对象。 2.1应用进程名称 阅读全文> 发表于 @ 2010年05月24日 23:31:00 | 评论( 3 ) | 举报| 收藏 2010年05月23日 Android核心分析(20)----Android应用程序框架之无边界设计意图 Android应用程序框架 1 无边界设计理念 Android的应用框架的外特性空间的描述在SDK文档(http://androidappdocs.appspot.com/guide/topics/fundamentals.html#acttask)有十分清楚的描述,Android应用的基本概念,组件生命周期等等有详细的描述。在外特性空间中,Android提供了Activity,Service,Broadcast receivers,Content Provider,Intent,task等概念,我在这里不讨论这些概念定义,因为SDK文档已经讲得够详细。 在阅读SDK文档和研究Activity这个概念时,我感觉到了在Android中若隐若现的Android自由无边界这个设计意图。Android的应用只是一个虚的概念,并没有实际的入口,这个不像Window平台上的应用程序的概念,Android更多的是提供组件(Components)的概念。为什么要虚化应用的概念?我想这个虚化就是自由无边界设计意图的直接体现。突出请求和服务,突出组件个体,弱化边界,系统的各阅读全文> 发表于 @ 2010年05月23日 22:06:00 | 评论( 0 ) | 举报| 收藏 2010年05月14日 Android核心分析(19)----电话系统之GSMCallTacker Android电话系统之GSMCallTracker 通话连接管理 GSMCallTracker在本质上是一个Handler。 GSMCallTracker是Android的通话管理层。GSMCallTracker建立了ConnectionList来管理现行的通话连接,并向上层提供电话调用接口。 在GSMCallTracker中维护着通话列表:connections。顺序记录了正连接上的通话,这些通话包括:ACTIVE,DIALING,ALERTING,HOLDING,INCOMING,WAITING等状态的连接。GSMCallTracker将这些连接分为了三类别进行管理: RingingCall: INCOMING ,WAITING ForegourndCall: ACTIVE, DIALING ,ALERTING BackgroundCall: HOLDING 上层函数通过getRingCall(),getForegrouandCall()等来获得电话系统中特定通话连接。 为了管理电话状态,GSMCallTracker在构造时就将自己登阅读全文> 发表于 @ 2010年05月14日 23:15:00 | 评论( 4 ) | 举报| 收藏 Android核心分析(18)-----Android电话系统之RIL-Java Android RIL-Java RIL-Java在本质上就是一个RIL代理,起到一个转发的作用,是Android Java概念空间中的电话系统的起点。在RIL-D的分析中,我们知道RILD建立了一个侦听套接口,等待RIL-Java的连接。一旦连接成功,RIL-JAVA就可发起一个请求,并等待应答,并将结构发送到目标处理对象。在RIL-Java中,这个请求称为RILRequest。为了直观起见,我还是不厌其烦的给出RIL-Java的框架图。 RIL-Java的大框架包含了四个方面: Receiver,Sender,CommandInterface,异步通知机制 (1) Command Interface 在ril.java源代码中,我们可以看到RIL-JAVA对象提供了如下的Command Interface: … getlccCardStatus getCurrrentCalls dial acceptCall rejectCall sendDTMF sendSMS setupDataCall 阅读全文> 发表于 @ 2010年05月14日 23:07:00 | 评论( 2 ) | 举报| 收藏 2010年05月10日 Android核心分析(17) ------电话系统之rilD Android电话系统之-rild Rild是Init进程启动的一个本地服务,这个本地服务并没有使用Binder之类的通讯手段,而是采用了socket通讯这种方式。RIL(Radio Interface Layer) Android给出了一个ril实现框架。由于Android开发者使用的Modem是不一样的,各种指令格式,初始化序列都可能不一样,GSM和CDMA就差别更大了,所以为了消除这些差别,Android设计者将ril做了一个抽象,使用一个虚拟电话的概念。这个虚拟电话对象就是GSMPhone(CDMAPhone),Phon对象所提供的功能协议,以及要求下层的支撑环境都有一个统一的描述,这个底层描述的实现就是靠RIL来完成适配。 Andoid将RIL层分为两个代码空间:RILD管理框架,AT相关的xxxril.so动态链接库。将RIL独立成一个动态链接库的好处就是Android系统适应不同的Modem,不同的Mode可以有一个独立的Ril与之对应。从这个层面上看,Rild更多是一个管理框架。 而ril是具体的AT指令合成者和应答解析者。从最基本的功能来讲,ri阅读全文> 发表于 @ 2010年05月10日 22:41:00 | 评论( 16 ) | 举报| 收藏 Android核心分析(16)-----Android电话系统-概述篇 Android电话系统之概述篇 首先抛开Android的一切概念来研究一下电话系统的最基本的描述。我们的手机首先用来打电话的,随后是需要一个电话本,随后是PIM,随后是网络应用,随后是云计算,随后是想我们的手机无所不能,替代PC。但是作为一个电话的基本功能如下: 0)拨叫电话,接听电话,挂断电话,发送短信,网络连接,PIM管理 1)由于电话运营商为我们提供了呼叫等待,电话会议等补充业务,所以我们的手机需要管理多路通话,如何管理? 2)来电时,我们要播出来电铃声,接通时我们需要切换语音通道,这个又跟多媒体系统打上了交道,例如有耳机插上了,有蓝牙耳机连上了,系统该做如何的管理和切换? 3)上网的网络通路建立(例如GSM GPRS),如何PPP连接并连接到LinuxSocket通道上的?系统如何管理数据连接? 4)AP跟Modem通讯时通过AT指令的,如何将AT指令变成一个个具体的操作函数,如何管理Modem发给我们的回应,AT命令通道,数据通道如何管理? 5)sim卡的电话本如何管理? 上面的关于手机的基本问题,An阅读全文> 发表于 @ 2010年05月10日 22:00:00 | 评论( 0 ) | 举报| 收藏 2010年05月05日 Android核心分析(15)--------Android输入系统之输入路径详解 Android用户事件输入路径 1 输入路径的一般原理 按键,鼠标消息从收集到最终将发送到焦点窗口,要经历怎样的路径,是Android GWES设计方案中需要详细考虑的问题。按键,鼠标等用户消息消息的处理可分为不同的情况进行判定: (1)用户输入根据系统状况是否应该派送。如在ScreenOff的情况下,在按键属于特殊按键的情况下等 (2)是否有拦截Listener (3)对按键事件来讲,是否存在输入法 (4)是否是焦点终点 (5)是否为焦点切换按相关键 这些情况都是设计输入路径需要考虑的基本条件。 1.1一般的输入路径设计 该输入路径实际上是指的按键消息(MSG_KEYDOWN,MSG_KEYUP, MSG_LongPress)的输入路径,即从活动主窗口到焦点窗口所经历的路程。 将信息输入路径分为两步: Step 1)窗口管理器将信息发送到活动窗口 Step 2)活动窗口通过缺省处理函数将该消息一层层的传递到焦点。 这样应用程序可以在活动View的处理函数中来预先处理用户输入信息,从而增强应用对用户信息的控制力。 传递路径阅读全文> 发表于 @ 2010年05月05日 23:12:00 | 评论( 0 ) | 举报| 收藏 Android核心分析(14)------ Android GWES之输入系统 Android输入系统 依照惯例,在研究Android输入系统之前给出输入系统的本质描述:从哲学的观点来看,输入系统就是解决从哪里来又将到哪里去问题。输入的本质上的工作就是收集用户输入信息并放置到目标位置。 Android在源代码分类上,并没有输入系统分类。本章的输入系统研究是一个综合的分析,前面的GWES的分析,特别是View的Focus Path以及Window Manager Proxy是本章分析的基础,如果没有理解,请参阅前面的窗口管理的相关章节。 Android输入系统的组成 输入系统由如下几部分组成: 1)后台窗口管理服务 2)Focus Activity 3)Focus Window 4)Focus View:用来接收键盘消息 从输入系统这个角度去看Android的Window Manager服务解决了用户信息输入收集,而FocusActvitiy,Focus Window、Focus View这些概念的设计是为了解决用户输入应该放到哪里去这个问题。在整个Android系统中,同时只有一个一个Foc阅读全文> 发表于 @ 2010年05月05日 23:10:00 | 评论( 2 ) | 举报| 收藏 2010年05月04日 Android 核心分析(13) -----Android GWES之Android窗口管理 Android GWES之Android窗口管理 1基本构架原理 Android的窗口管理是C/S模式的。Android中的Window是表示Top Level等顶级窗口的概念。DecorView是Window的Top-Level View,这个View我称之为主View,DecorView会缺省的attach到Activity的主窗口中。主View被加入到WindowManager中,WM使用WindowState与这个主View对应。 Activity建立一个主窗口后,在将主窗口添加到WindowManager时,首先要建立WindowManager代理对象,并打开一个会话(实现IWindowSession AIDL接口),并维持该会话。Activity将通过该会话与WindowManager建立联系,这个Session是C/S体系的基础,Client通过WindowSession将window加入到Window Manager中。 一个完整的窗口概念横跨了View,ViewRoot,WindowManager Service。Window,D阅读全文> 发表于 @ 2010年05月04日 23:35:00 | 评论( 1 ) | 举报| 收藏 Android 核心分析(12) -----Android GEWS窗口管理之基本架构原理 Android GWES之窗口管理之基本构架原理 Android的窗口管理是C/S模式的。Android中的Window是表示Top Level等顶级窗口的概念。DecorView是Window的Top-Level View,这个View我称之为主View,DecorView会缺省的attach到Activity的主窗口中。主View被加入到WindowManager中,WM使用WindowState与这个主View对应。 Activity建立一个主窗口后,在将主窗口添加到WindowManager时,首先要建立WindowManager代理对象,并打开一个会话(实现IWindowSession AIDL接口),并维持该会话。Activity将通过该会话与WindowManager建立联系,这个Session是C/S体系的基础,Client通过WindowSession将window加入到Window Manager中。一个完整的窗口概念横跨了View,ViewRoot,WindowMan阅读全文> 发表于 @ 2010年05月04日 08:50:00 | 评论( 4 ) | 举报| 收藏 2010年05月03日 Android核心分析 之十一-------Android GWES之消息系统 消息循环,消息队列,Looper,Handler,View阅读全文> 发表于 @ 2010年05月03日 18:46:00 | 评论( 3 ) | 举报| 收藏 2010年05月02日 Android核心分析 之十-------Android GWES之基本原理篇 Android GWES基本框架篇我这里的GWES这个术语实际上从Microsoft 的Window上移植过来的,用GWES来表示Android的窗口事件系统不是那么准确,在Android中Window是个弱化了的概念,更多的表现在View这个概念上。在很大程度上,Android的View的概念可以代替Microsoft Window这个概念,有点和Microsof暗中较劲的意味,你用过的概念我就偏不用,这个也是我以为的设计者意图。 原始GUI基本框架 首先我们从Android的SDK外特性空间开始,在编写Actvitiy时,我们都是面对的处理函数:OnXXXX(),例如有按键按下就是OnKeyDown等,在这个过程中系统做了这样的处理?要详细的理解这个过程,我们就需要理解Andoid的View管理,窗口系统,消息系统和输入系统。我们还是从最本质的地方开始,Android作为一种嵌入式的图形用户界面系统,它的基本原理与一般GUI的原理是相同的,同时也是遵循GWES(图形窗口事件系统)的一般规律,总体上And阅读全文> 发表于 @ 2010年05月02日 23:22:00 | 评论( 10 ) | 举报| 收藏 2010年04月20日 Android核心分析 之九-------Zygote Service Zygote Service 在本章我们会接触到这两个单词:Zygote [生物] 受精卵, 接合子, 接合体Spawn:产卵 通过这两个单词,我们就可以大体知道Zygote是干什么的了,就是叫老母鸡下蛋。通过“Zygote”产出不同的子“Zygote”。从大的架构上讲,Zygote是一个简单的典型C/S结构。其他进程作为一个客服端向Zygote发出”孵化”请求,Zygote接收到命令就“孵化”出一个Activity进程来。 Zygote系统代码组成及其调用结构:Zygote.java 提供访问Dalvik “zygote”的接口。主要是包装Linux系统的Fork,以建立一个新的VM实例进程。ZygoteConnection.java Zygote的套接口连接管理及其参数解析。其他Actvitiy建立进程请求是通过套接口发送命令参数给Zygote。ZygoteInit.java Zygote的main函数入口。 Zygote系统代码层次调用阅读全文> 发表于 @ 2010年04月20日 21:16:00 | 评论( 2 ) | 举报| 收藏 Android 核心分析 之八------Android 启动过程详解 Android 启动过程详解 Android从Linux系统启动有4个步骤; (1) init进程启动 (2) Native服务启动 (3) System Server,Android服务启动 (4) Home启动 总体启动框架图如: 第一步:initial进程(system\core\init) init进程,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。init始终是第一个进程. Init.rc Init.marvell.rc Init进程一起来就根据init.rc和init.xxx.rc脚本文件建立了几个基本的服务: servicemanamger zygote 。。。 最后Init并不退出,而是担当起property service的功能。 1.1脚本文件 init@System/Core/Init Init.c: pars阅读全文> 发表于 @ 2010年04月20日 20:36:00 | 评论( 5 ) | 举报| 收藏 2010年04月19日 Android 核心分析 之七------Service深入分析 Service深入分析 上一章我们分析了Android IPC架构,知道了Android服务构建的一些基本理念和原理,本章我们将深入分析Android的服务。Android体系架构中三种意义上服务: Native服务 Android服务 Init空间的服务,主要是属性设置,这个IPC是利用Socket来完成的,这个我将在另外一章来讨论。 Navite服务,实际上就是指完全在C++空间完成的服务,主要是指系统一开始初始化,通过Init.rc脚本起来的服务,例如Service Manger service,Zygote service,Media service , ril_demon service等。 Android服务是指在JVM空间完成的服务,虽然也要使用Navite上的框架,但是服务主体存在于Android空间。Android是二阶段初始(Init2)初始化时建立的服务。1 Service本质结构 我们还是从Service的根本意义分析入手,服务的本质就是响应客户端请求。要提供服务,就必须建立接收请求,处理请求,应阅读全文> 发表于 @ 2010年04月19日 22:26:00 | 评论( 2 ) | 举报| 收藏 2010年04月15日 Android 核心分析 之六 -----IPC框架分析 Binder,Service,Service manager IPC框架分析 Binder,Service,Service manager 我首先观的角度观察Binder,Service,Service Manager,并阐述各自的概念。从Linux的概念空间中,Android的设计每个Activity都是一个独立的进程,每个Service也都是一个独立的进程,Activity,Service之间要交换数据属于IPC。Binder就是为了Activity通讯而设计的一个轻量级的IPC框架。在代码分析中,我发现Android中只是把Binder理解成进程间通讯的实现,有点狭隘,而是应该站在公共对象请求代理这个高度来理解Binder,Service的概念,这样我们就会看到不一样的格局,从这个高度来理解设计意图,我们才会对Android中的一些天才想法感到惊奇。从Android的外特性概念空间中,我们看不到进程的概念,而是Activity,Service,AIDL,INTENT。一般的如果我作为设计者,在我们的根深蒂固的想法中,这些都是如下的C/S架构,客户端和服务端直接通过Binder交互数据,打阅读全文> 发表于 @ 2010年04月15日 22:15:00 | 评论( 4 ) | 举报| 收藏 Android 核心分析 之五 -----基本空间划分 基本空间划分Google给了我们一张系统架构图,在这张图上我们可以看到Android的大体框架组成。从上图可以看到:Android Applications,Application Framework,Dalvik Virtual Machine,Linux。如果将Android泛化,我们可以将系统划分成两部分: 但是为了研究的方便我们先看最为本质的三层,上面是Android,中间叫Dalvik虚拟机,下面叫Linux。 虽然上两层都包含在Android中,但是为了理解的方便或者从实用主义出发,我还是将虚拟机这次给分开出来,因为我研究的对象是Android的手机系统相关部分,对于虚拟机我们不做太深入的研究。从上面我们可以看到这个系统静态的划分成这样的三层。但是从动态运行逻辑上不是这样划分的,所以空间的划分是一个有趣的概念。从A阅读全文> 发表于 @ 2010年04月15日 21:58:00 | 评论( 2 ) | 举报| 收藏 2010年04月12日 Android核心分析之四 ---手机的软件形态 手机的软件形态 上节我给出了手机的硬件树,本节将给出手机软件形态树。主要突出手机软件涵盖的内容。通过该思维导图,我们可以看到手机软件所涉及到的方方面面,Android所涉及到的内容也不会超过下面所示太多,这个也是Andoid系统外特性空间所要展示的,这个也是Android设计者需要考虑管理的大部分内容,通过下面的整理,我们可以让我们的思维更加贴近Android设计意图,从而更深入的了解Android中各种组成的由来,这个就是前面讲到的分析思想之一从退到源头出发,从思考最终极的问题开始。阅读全文> 发表于 @ 2010年04月12日 15:12:00 | 评论( 0 ) | 举报| 收藏 Android是什么 之三-------手机之硬件形态 手机硬件形态本节可能与Android无关,但是Android系统现在这个阶段更多的是移动终端形态的开发平台,本节给出了Android背后的工作-Android管理的硬件是什么,Android的本质就是要管理好这些硬件部分,为用户提供一个体验更好,速度更快的智能移动终端。对手机硬件形态的认识是要让我们对手机硬件组成有个感性的认识,让程序员知道系统中的代码是管理那一部分的,即我们堆砖头的目的是什么,让思维有一个伸展。为了对手机这类嵌入式系统有一个较为深入的了解,我制作了如下的手机硬件结构思维导图,在这张图上我们可以看到组成手机硬件的有哪些,初步了解到手机管理平台为什么要那么多的管理框架和层次,从最底层理解Android设计者的设计意图,这个思维导图其实只是示意图。我们知道手机这种嵌入式系统,硬件架构最简单描述的描述为: 应用处理器+Modem+射频对于应用处理器而言,对设计者最为本质的描述为输入输出,而对于移动终端设备电源管理,连接机制,多媒体又是阅读全文> 发表于 @ 2010年04月12日 14:59:00 | 评论( 1 ) | 举报| 收藏 2010年04月11日 Android核心分析 之二 -------方法论探讨之概念空间篇 方法论探讨之概念空间篇 我们潜意识就不想用计算机的方式来思考问题,我们有自己的思维描述方式,越是接近我们思维描述方式,我们越容易接受和使用。各种计算机语言,建模工具,不外乎就是建立一个更接近人的思维方式的概念空间,再使用工具从该概念空间向另外一个概念空间映射,我称之为人性思维空间向01序列描述空间的一个映射。实现方面来看,系统就是一个翻译器,将机器性更加人性化的一种机制。大学计算机经典课“计算机体系结构”,其他的可以忘记,但是下面这个图不能忘记:这个就是概念空间最本质的原型体现:作为观测者看到了什么?设计者给了观察者什么?给出的答案是外部特性。(1)提供给观察者的概念空间是什么?(2)内部特性的概念空间是什么? 概念空间所表达的东西带有两个方面的缠绕:一面是人性自由,一面是物性制约(实时响应,系统资源的限制)。所以程序实现的概念空间是人性自由与特定计算机系统阅读全文> 发表于 @ 2010年04月11日 16:22:00 | 评论( 1 ) | 举报| 收藏 2010年04月10日 Android核心分析 之一--------分析方法论探讨之设计意图 分析方法论探讨为什么要研究Android,是因为它够庞大,它够复杂,他激起了我作为一个程序员的内心的渴望,渴望理解这种复杂性。我研究的对象是作为手机开发平台的Android软件系统部分,而不是Dalvik虚拟机本身。作为一个从其他平台装接过来的程序员,要从事Andoid平台系统开发,我的关于手机平台上积累的知识已经不能满足需要了,Andoid为我们带来了大量的新名词,Activity,Manifest,INTENT,Service,Binder,Dalvik虚拟机,Framework,Linux,Navtive ,JNI.....。通过在源代码,在开发社区,在开发博客,甚至在招聘过程中,我不断的寻求Android是什么。经过一定时间的沉淀,我慢慢的理解到Android不仅仅是一类手机的总称,不仅仅是一个手机开发平台,不仅仅是一个虚拟java操作系统,不仅仅是一个开发社区,一个开发标准,不仅仅是一堆代码,Android已经成了一个新的潮流。代码多,系统复杂,纵观社区中Android阅读全文> 发表于 @ 2010年04月10日 23:08:00 | 评论( 2 ) | 举报| 收藏
分享到:
评论
1 楼 gaogaf 2010-07-23  
我的天,没有分段,没有换行,累死人了要。

相关推荐

    android核心分析pdf

    android核心分析,介绍了android的一些特性,共二十几个介绍点,网上word文件转化为pdf,便于阅读 Android核心分析(01)----讨之设计意图 Android核心分析(02)----方法论探讨之概念空间篇 Android核心分析(03)-...

    android 核心分析

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

    Android核心分析(pdf)

    Android核心分析(01)----讨之设计意图 Android核心分析(02)----方法论探讨之概念空间篇 Android核心分析(03)----手机之硬件形态 Android核心分析(04)----手机的软件形态 Android核心分析(05)----基本空间...

    Android核心分析28

    [转]Android核心分析 技术专题只二十八--Android GDI之Surface&Canvas;.

    [经典文档]Android核心分析

    [经典文档]Android核心分析 核心分析之一 ----- 分析方法论探讨之设计意图 核心分析之二 ----- 方法论探讨之概念空间篇 核心分析之三 ----- 手机之硬件形态 核心分析之四 ----- 手机之软件形态 核心分析之五 ----- ...

    Android核心分析

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

    Android核心分析.pdf

    Android核心分析.pdf 对学习android的各模块之间的工作原理有很大帮助

    Android核心分析11

    [转]Android核心分析 技术专题之十一--Android GWES之消息系统

    Android核心分析 Android Android程序设计

    Android核心分析 Android Android程序设计

    android核心分析

    android手机移动开发核心分析资料说明文档

    Android核心分析文档

    Android核心分析。

    Android核心分析 100多页

    Android 核心 分析 架构 框架 Android核心分析 100多页

    Android核心分析.doc

    Android核心分析.docAndroid核心分析.docAndroid核心分析.docAndroid核心分析.doc

    Android 核心分析12

    [转]Android核心分析 技术专题之十二--Android GEWS窗口管理之基本架构原理

    Android 核心分析13

    Android 核心分析 技术专题之十三--Android GWES之Android窗口管理

    Android 核心分析7

    [转]Android 核心分析 技术专题之七--Service深入分析

Global site tag (gtag.js) - Google Analytics