[经验分享] Android 核心分析 基本空间划分

基本空间划分

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

很好~学习了。android...
嗯,跟我学的android教程一样
恩,大概懂了
参悟了!顶一个!
感谢分享了
代码是写出来的!
感谢分享
双鱼H
thank you share
thank you share
谢谢分享
UDE新安装包上线罗!
平台性能稳定,上手快,开发成本小的跨平台开发组件UDE,新安装包上线罗!本次更新升级了Eclipse至3.7.2、JDK 1.6.0.33、Android ADT 20、 SDK Tools r20、MM社区账号本地信息加密,新增移动研究院MM应用开发引擎……欢迎下载体验!安装包下载地址:
http://dev.10086.cn/app/local/
thank you.
感谢分享
学习呢
统一开发环境(UDE)出新版本啦,支持HTML5跨平台开发和应用模板服务!
  UDE新推HMTL5开发环境,帮助开发者快速开发HTML5项目:使用PhoneGap开源引擎创建Web应用,支持仿真模拟调试预览和跨平台编译,可以将HTML5资源包编译生成Android  Hybrid App程序包,并可编译移植到Android/iOS/WP平台。
  UDE项目工程内置丰富的应用模板,开发者可以在此基础上补充自己的内容资源,完善优化,即可生成自己的个性化应用!

完整安装包下载:http://dev.10086.cn/appdown/cmcc_ude/final/CMCC_UDE_1.3.02.1618.exe
HTML5开发插件包下载:http://dev.10086.cn/appdown/cmcc_ude/plugin/cmcc_ude_update_2.0.zip
开发帮助文档下载:http://dev.10086.cn/appdown/cmcc_ude/final/CMCC_UDE_Readme.chm
学习
开发者的福利到了,devstore将拿出十万,悬赏写评测报告的开发者,参与就有奖。太爽了。http://www.devstore.cn/activity/rewardTestPage