原文地址: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 部分。后面我将用较多的篇幅来深入阐述这个部分。

更多相关文章

  1. Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
  2. android tools命名空间
  3. ANDROID视图空间代码
  4. android系统
  5. Android(安卓)学习笔记【基础扫盲篇】
  6. Android自动化测试之如何安装Android虚拟机(三)
  7. android:layout_weight总有你不知道的用法.
  8. 修改Android(安卓)Studio下的AVD的下载路径
  9. Android(安卓)为什么使用DVM虚拟机,而不使用Java JVM??

随机推荐

  1. Android 6.0 - 申请动态权限
  2. Android源代码编译
  3. 【转】Android(安卓)SDK Setup使用及注意
  4. 网上的Android教程
  5. 〖Android〗(how-to) fix k860/k860i bul
  6. Android地图开发之OpenStreetMap基础教程
  7. 监听不到android 的 Home 键
  8. Android Notifications通知
  9. Android About AndroidManifest.xml
  10. android 常用组建案例