基本空间划分

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

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

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

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

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


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

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

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

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


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

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

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

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

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

更多相关文章

  1. 低功耗蓝牙(BLE)之概念理解
  2. Android工程下build target,minSdkVersion,targetSdkVersion,maxSdk
  3. Android OpenGL 显示基本图形及相关概念解读
  4. Android 源码分析-Dalvik 虚拟机创建过程
  5. Android核心技术-day02-03-获取手机内部存储空间
  6. Mac环境Android 6.0虚拟机启动黑屏解决办法
  7. android存储空间的检测
  8. 第1章 Java基本概念及环境配置——FAQ1.04 Android与Java语言有
  9. 安卓虚拟机启动后报错: 类似 SDK Manager] Error: Error parsing

随机推荐

  1. Android平台开发-Android(安卓)HAL devel
  2. Android中WebView的使用,加载H5
  3. 分析Android(安卓)根文件系统启动过程(ini
  4. Android(安卓)关机流程分析-----(1)Framewo
  5. Android(安卓)高清加载巨图方案 拒绝压缩
  6. Android(安卓)LayoutInflater inflate方
  7. android recovery模式及ROM制作
  8. Android代码混淆指南
  9. 关于 Android(安卓)进程保活,你所需要知道
  10. Android内存泄漏查找