Android基础:Android体系结构

Android体系结构

    • 体系架构解析
      • Linux系统层(Linux kernel)
      • 类库(Libraries) 和Android 运行环境(Runtime)
      • 应用程序框架(Application Framework)
      • 应用程序(Applications)

体系架构解析

Android基础:Android体系结构_第1张图片
        Android体系结构如图。从下往上分别是Linux系统层,Android库和运行环境,应用程序框架层和应用程序层。

Linux系统层(Linux kernel)

        Android底层是Linux系统,是基于kernel内核的。Android对操作系统内的使用主要是核心和驱动程序两部分。随着Android不断地升级,Linux版本也在缓慢提升。而对于驱动,他的主要作用就是跟硬件交互,常见的主要有:

  1. 显示驱动(Display Driver):主要是用于提供显示的驱动接口。
  2. 照相机驱动(Camera Driver):常用基于Linux的v4l(Video for )驱动。
  3. 蓝牙驱动(Bluetooth Driver)
  4. Flash内存驱动(Flash Memory Driver)
  5. Binder IPC驱动: Binder Driver是Android Framework IPC机制的核心,主要是提供进程间通讯的功能。
  6. USB驱动(USB Driver):USB接口的驱动,包括传输数据,充电等。
  7. 键盘驱动(KeyBoard Driver)
  8. WiFi驱动(Camera Driver):基于IEEE 802.11标准的驱动程序。
  9. Power Management(能源管理)。

类库(Libraries) 和Android 运行环境(Runtime)

        本层主要提供安卓常用的类库和Android的运行环境。类库主要是以C实现的。
         常见的类库有:

  1. OpenGL ES:三维绘图引擎。
  2. SGL:二维绘图引擎。
  3. Media Framework:多媒体框架,是Android多媒体的核心部分,基于PacketVideo(即PV)的OpenCORE,分为音频,视频的回放(PlayBack)和记录(Recorder)。
  4. SQLite:数据库,安卓下一种通用的嵌入式数据库。
  5. WebKit:浏览器的内核。
  6. FreeType:矢量字体和位图。
  7. SSL:安全协议(Secure Socket Layer),它位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。
  8. libc:C语言标准库。
  9. Surface Manager:界面显示管理器。
            在Android中,他的库程序一般以中间件的形式提供。

        而Android运行环境主要指的虚拟机技术——Dalvik。DVM是基于寄存器的,它没有基于栈的虚拟机在拷贝数据而使用的大量的出入栈指令,同时指令更紧凑更简洁。但是由于显示指定了操作数,所以基于寄存器的指令会比基于栈的指令要大。
        DVM和JVM的区别。
Android基础:Android体系结构_第2张图片
        dex,odex,热更新原理简述。
Android基础:Android体系结构_第3张图片
        在Jdk中,每一个.class文件都会有一个Header,这个Header主要是记录这个文件的打包版本(jdk版本,与运行环境版本匹配)。而在Android中,这么做是比较浪费空间的,所以,DVM会重新编译一个dex文件。另外在dex文件中,采用了字符串池,方法池,这里通过索引去搜索。

应用程序框架(Application Framework)

        应用框架层主要是为程序开发者 提供API,所以作为基础的Android开发者,最常见的就是该层的API。
        应用程序框架层提供的常见的API有:

  1. Activity Manager: 活动管理器。为系统中所有运行的Activity提供了接口,比如进程信息,任务信息,服务信息等。
  2. Package Manager: 管理应用程序包,通过它就可以获取应用程序信息。

应用程序(Applications)

        应用程序层就是我们开发的应用,比如打电话,天气等等。一般通过Java编写,因为技术的发展,现在有很多实现方式。

你可能感兴趣的:(Android,android,java,apache)