大家好,欢迎来到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