Android(安卓)核心分析 之五 -----基本空间划分
原文地址:http://blog.csdn.net/maxleng/article/details/5490713
基本空间划分
Google 给了我们一张系统架构图,在这张图上我们可以看到 Android 的大体框架组成。
从上图可以看到:AndroidApplications,ApplicationFramework,DalvikVirtualMachine,Linux 。 如果将Android 泛化,我们可以将系统划分成两部分:
但是为了研究的方便我们先看最为本质的三层,上面是 Android ,中间叫 Dalvik 虚拟机,下面叫 Linux 。
虽然上两层都包含在 Android 中,但是为了理解的方便或者从实用主义出发,我还是将虚拟机这次给分开出来,因为我研究的对象是 Android 的手机系统相关部分,对于虚拟机我们不做太深入的研究。
从上面我们可以看到这个系统静态的划分成这样的三层。但是从动态运行逻辑上不是这样划分的,所以空间的划分是一个有趣的概念。 我们从操作系统的角度看, 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 是 DalvikVM (虚拟机)这是一个专为嵌入式设备打造的JAVA虚拟机,是一个有着自己的 code-byte 和格式的可以在嵌入式设备上高效运行的 Java 虚拟机。
为了研究的深入,我们还是需要涉及到 JNINative 部分。在这个分类中我将 JVM 分为 JVM 空间和 C++ 空间。
Android 应用的开发者是工作在 Android 外特性概念空间的,这里没有了 Linux 的一点气息, Android 构建的外特性空间概念包含了: Activity,Provider,Interface,Events,Provider , Service 等。至于 JVM 空间和 C++ 空间的划分是为了研究 Android 核心的描述而提出的,我们在做 Android 系统开发时,常常需要修改到 JNI 的 Native 部分。后面我将用较多的篇幅来深入阐述这个部分。
更多相关文章
- Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
- android tools命名空间
- ANDROID视图空间代码
- android系统
- Android(安卓)学习笔记【基础扫盲篇】
- Android自动化测试之如何安装Android虚拟机(三)
- android:layout_weight总有你不知道的用法.
- 修改Android(安卓)Studio下的AVD的下载路径
- Android(安卓)为什么使用DVM虚拟机,而不使用Java JVM??