we new

深入理解Android - 系统架构

       虽然开发过几个Android的项目,但还是对Android的机制不是很熟悉,所以趁这个假期的时候查缺补漏,阅读 邓凡平老师 的《深入理解Android》来强化Android基础。这篇Blog主要是读书笔记,对一些关键地方做记录,方便自己复习巩固。深入理解Android的CSDN专栏
        Keywords: Android系统架构

整体架构


Android系统大体可分为四层,从下往上依次是:

  • Linux内核层,关于底层硬件驱动等。
  • Libraries层,这一层提供动态库(也叫共享库)、Android运行时库、Dalvik虚拟机等。从编程语言上来说,这一层大部分都是用C或C++写的,所以也可以简单地把它看成是Native层。
  • Libraries层之上是Framework层,这一层大部分用Java语言编写。它是Android平台上Java世界的基石。
  • Framework层之上就是Applications层了,和用户直接交互的就是这些应用程序,它们都是用Java开发的。

Java与Native的交互

  • Java虽具有和平台无关的特性,但Java和具体平台之间的隔离却是由JNI层来做到的。Java是通过JNI层调用Linux OS中的系统调用来完成对应的功能的。例如创建一个文件、创建一个Socket等。
  • 除了Java世界外,还有一个核心的Native世界,它为整个系统高效和平稳的运行提供了强有力的支持。一般而言,Java世界经由JNI层通过IPC方式和Native世界交互。而Android平台上最为神秘的IPC方法就是Binder了。在第六章将详细介绍Binder。除此之外,Socket也是常用的IPC方式。这些内容在后面的代码分析中都会见到。

各知识点所处层次


声明: 本文转载前需与作者联系并标明出处
分享到: