Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2124316
  • 博文数量: 288
  • 博客积分: 10594
  • 博客等级: 上将
  • 技术积分: 3469
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-27 19:27
文章分类

全部博文(288)

文章存档

2012年(4)

2011年(30)

2010年(40)

2009年(32)

2008年(71)

2007年(79)

2006年(32)

分类: LINUX

2010-08-03 18:37:23

基本空间划分
Google给了我们一张系统架构图,在这张图上我们可以看到Android的大体框架组成。

 


从上图可以看到:Android Applications,Application Framework,Dalvik Virtual Machine,Linux。如果将Android泛化,我们可以将系统划分成两部分:

 

 


 但是为了研究的方便我们先看最为本质的三层,上面是Android,中间叫Dalvik虚拟机,下面叫Linux。

 


 

 

    虽然上两层都包含在Android中,但是为了理解的方便或者从实用主义出发,我还是将虚拟机这次给分开出来,因为我研究的对象是Android的手机系统相关部分,对于虚拟机我们不做太深入的研究。

e: pre;"> 从上面我们可以看到这个系统静态的划分成这样的三层。但是从动态运行逻辑上不是这样划分的,所以空间的划分是一个有趣的概念。我们从操作系统的角度看,Android就是一堆Linux应用的集合。从Linux角度看到的空间划分:进程空间和内核空间。从Android的应用对应着Linux的一个个进程。

 

 

  Andoid中包含一个Java虚拟机,虚拟机是运行在Linux之上的,Android构建在JVM之上,从Android动态运行逻辑上我们需要将Android划分成Android空间和非Android空间。在Andoid系统中我们面对的是Andoid概念空间,而不是Linux进程了,在Andoid概念空间中已经没有了Lliux进程的概念,而是Service,proxy,Activity,provider等。

 


 

 至于虚拟机JVM,我们只需要知道JVM是Dalvik VM(虚拟机)这是一个专为嵌入式设备打造的JAVA虚拟机,是一个有着自己的code-byte和格式的可以在嵌入式设备上高效运行的Java虚拟机。


 为了研究的深入,我们还是需要涉及到JNI Native部分。在这个分类中我将JVM分为JVM空间和C++空间。


 Android应用的开发者是工作在Android外特性概念空间的,这里没有了Linux的一点气息,Android构建的外特性空间概念包含了:Activity,Provider,Interface,Events,Provider,Service等。至于JVM空间和C++空间的划分是为了研究Android核心的描述而提出的,我们在做Android系统开发时,常常需要修改到JNI的Native部分。后面我将用较多的篇幅来深入阐述这个部分。

 

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/maxleng/archive/2010/04/15/5490713.aspx

阅读(1063) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-04-04 11:49:53

学习了,多谢楼主分享哦!也欢迎广大linux爱好者来我的论坛一起讨论arm哦!www.lt-net.cn