安卓系统框架和Framework概述

安卓系统框架和Framework概述本文详细探讨了安卓系统的五层架构 从应用层到 Linux 内核 重点讲解了 Java 框架层的功能 NativeC C 库的作用以及硬件抽象层的设计

大家好,欢迎来到IT知识分享网。


一、安卓系统框架

1.1 应用层

1.2 应用框架层(Java Framework)

名称 功能描述
Activity Manager(活动管理器) 管理各个应用程序生命周期以及通常的导航回退功能
Location Manager(位置管理器) 提供地理位置以及定位功能服务
Package Manager(包管理器) 管理所有安装在Android系统中的应用程序
Notification Manager(通知管理器) 使得应用程序可以在状态栏中显示自定义的提示信息
Resource Manager(资源管理器) 提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等
Telephony Manager(电话管理器) 管理所有的移动设备功能
Window Manager(窗口管理器) 管理所有开启的窗口程序
Content Providers(内容提供器) 使得不同应用程序之间可以共享数据
View System(视图系统) 构建应用程序的基本组件

1.3 Native C/C++系统库和 Android Runtime

系统运行库层分为两部分,分别是C/C++程序库和Android运行时库。

1.3.1 C/C++程序库

C/C++程序库能被Android系统中的不同组件所使用,并通过应用程序框架为开发者提供服务,主要的C/C++程序库如下表所示。

名称 功能描述
OpenGL ES 3D绘图函数库
Libc 从BSD继承来的标准C系统函数库,专门为基于嵌入式Linux的设备定制
Media Framework 多媒体库,支持多种常用的音频、视频格式录制和回放。
SQLite 轻型的关系型数据库引擎
SGL 底层的2D图形渲染引擎
SSL 安全套接层,是为网络通信提供安全及数据完整性的一种安全协议
FreeType 可移植的字体引擎,它提供统一的接口来访问多种字体格式文件

1.3.2 Android运行时库

运行时库又分为核心库和ART(5.0系统之后,Dalvik虚拟机被ART取代)。核心库提供了Java语言核心库的大多数功能,这样开发者可以使用Java语言来编写Android应用。相较于JVM,Dalvik虚拟机是专门为移动设备定制的,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。而替代Dalvik虚拟机的ART 的机制与Dalvik 不同。在Dalvik下,应用每次运行的时候,字节码都需要通过即时编译器转换为机器码,这会拖慢应用的运行效率,而在ART 环境中,应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用,提高了全局的执行效率并减少了电量消耗,提高了内存分配能力和更准确的 Application 解析能力。

1.4 硬件抽象层(HAL)

1.5 Linux Kernel 内核层

Android 系统基于 Linux 内核,内核层为 Android 设备的各个硬件提供了相应驱动,如显示驱动、 音频驱动、 相机驱动、蓝牙/WIFI 驱动以及电源管理等。系统的安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核。了解以上的知识对以后分析系统源码有很大的帮助。

在这里插入图片描述
Android 底层内核空间以 Linux Kernel 作为基石,上层用户空间由 Native 系统库、虚拟机运行环境、框架层组成, 通过系统调用(Syscall)连通系统的内核空间与用户空间。对于用户空间主要采用 C++和 Java 代码编写, 通过 JNI 技术打通用户空间的 Java 层和 Native 层(C++/C),从而连通整个系统。


二、Framework

2.1 关于Framework层

Android的Framework是直接应用之下的一层,叫做应用程序框架层。这一层是核心应用程序所使用的AP!框架,为应用层提供各种API,提供各种组件和服务来支持我们的Android开发,包括ActivityManager,WindowManager,ViewSystem等。

  • 1.AcivityManagerSenvice(Ams);:负责管理所有应用程序中的Activity,它掌握所有Activity的情况,具有所有调度Activity生命周期的能力,简单来说,ActivityManagerService是管理和掌控所有的Activity.
  • 2.WindowManagerSenvice(Wms):控制窗口的显示、隐藏以及窗口的层序,简单来说,它就是管理窗口的,大多数和View有关系的都要和它打交道。
  • 3.内容提供器(Content Providers):可以让一个应用访问”另一个应用”的数据(比如联系人数据库),或者共享他们的数据
  • 4.视图系统(View System):丰富且可拓展,包括:列表(lists),网络(grids),文本框(text boxes),按钮(butons)等等
  • 5.通知管理器(Notification Manager):可以在”状态栏中”显示自定义的提示信息
  • 6.包管理器(Package Manger):对Android系统内的程序管理
  • 7.Telephony Manager 主要提供了一系列用于访问与手机通讯相关的状态和信息的方法,査询电信网络状态信息,sim卡的信息等。
  • 8.Resource Manager 提供非代码资源的访问,如本地字符串,图形,和布局文件(Layout files )。
  • 9.Location Manager 提供设备的地址位置的获取方式。很显然,GPS导航肯定能用到位置服务。
  • 10.XMPP 可扩展通讯和表示协议。前身为Jabber,提供即时通信服务。例如推送功能,Google Talk.

2.2 Android Framework的三大核心功能

  • 1、View.java :View工作原理,实现包括绘制view、处理触摸、按键事件等。
  • 2、ActivityManagerService.java :Ams 管理所有应用程序的Activity等
  • 3、WindowManagerService.java :Wms 为所有应用程序分配窗口,并管理这些窗口。

2.3 多语言编写的好处

  • 1.用java语言编写一些规范化的模块封装成框架,供APP层开发者调用开发出具有特殊业务的手机应用,
  • 2.用Java Native lInterface调用core lib层的本地方法,JNI的库是在Dalvik虚拟机启动时加载进去的,Dalvik会直接去寻址这个JNI方法,然后去调用。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/132022.html

(0)
上一篇 2025-08-03 18:15
下一篇 2025-08-03 18:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信