码迷,mamicode.com
首页 > 移动开发 > 详细

深入理解Android(1)__系统架构

时间:2015-10-13 15:15:16      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:

  最近一直在为Android的系统级开发发愁,很多东西云里雾里,还是觉得是基础知识不够扎实的缘故,所以,思考再三,还是决定认真研读一下《深入理解Android卷I、II》,最近深入手了一本《深入理解Android卷III》,希望能够在研读的过程中,将心得笔记写下,与Android爱好者一起学习,共同进步。

  下面我们就进入正题吧。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  1、Android系统架构

            技术分享

  Android系统大体可分为四层:

Android系统(从下往上)
Linux内核层:包含了Linux内核和一系列驱动程序
Libraries层:这一层提供动态库(也叫共享库)、Android运行时库、Dalvik虚拟机等,这一层大部分都是由C、C++编写,所以可以简单把它看成Native层
Framework层:这一层大部分用Java语言编写,它是Android平台上Java世界的基石
Applications层:与用户直接进行交互的就是这些应用程序,它们都是用Java开发

  Android系统的最大特点之一就在于它搭建了一个被广大Java开发者热捧的Java世界,但是Java世界并不是空中楼阁,它依赖于Native世界(一个被Google极力隐藏的世界),他们之间的交互关系如下图:

             技术分享

  对此图进行说明:

  (1)Java虽具有与平台无关的特性,但是Java与具体平台之间的隔离则是由JNI层来实现的,Java是通过调用JNI层调用Linux OS中的系统调用来完成对应的功能的。

  (2)Native层,为整个系统的高效与平稳提供了强有力的支持。一般而言,Java世界经由JNI层通过IPC方式与Native世界交互,而Android平台上最神秘的IPC方法就是Binder。除此以外,Socket也是常用的IPC方式。

  本帖子以及后续都将围绕下面的架构进行学习:

            技术分享

  主要包含:

    1、Native层:init、Audio系统(包括AudioTrack、AudioFlinger和AudioPolicyService)、Surface系统(包括Surface和SurfaceFlinger)、常用类(包括RefBase、sp、wp等)、Vold和Rild。

    2、Java Framework层:包括zygote、System_server以及Java中的常用类(包含Handler和Looper等)。

    3、Java Application层:包括MediaProvider和Phone。

  

深入理解Android(1)__系统架构

标签:

原文地址:http://www.cnblogs.com/pepsimaxin/p/4874591.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!