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

Android 基本空间划分_第1张图片

从上图可以看到:AndroidApplications,ApplicationFramework,DalvikVirtualMachine,Linux如果将Android泛化,我们可以将系统划分成两部分:


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

Android 基本空间划分_第2张图片

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

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

Android 基本空间划分_第3张图片

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

Android 基本空间划分_第4张图片

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

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

Android 基本空间划分_第5张图片

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




更多相关文章

  1. android中的命名空间
  2. xmlns:android 命名空间
  3. android获取内部外部存储空间
  4. Virtual Box 虚拟机安装Android
  5. Android ART运行时与Dalvik虚拟机
  6. Android的一些基本概念
  7. Android Studio启动安卓虚拟机失败,附Android Studio安装虚拟机步
  8. Android 获取剩余存储空间
  9. android存储空间的分类

随机推荐

  1. android RecyclerView 中添加 FooterView
  2. adb通过wifi连接 milestone
  3. 我的第一个Android程序,BMI计算器,分享一下
  4. android:The application has stopped une
  5. Android之FastJSon基本使用,属性首字母大
  6. [转]android adapter 深刻分析
  7. Android(安卓)开发错误集锦
  8. 使用Canvas的drawTextOnPath方法实现沿着
  9. Android(安卓)Studio第一次安装遇见的问
  10. Android(安卓)SurfaceFlinger 学习之路(