2022年Android核心模块 .pdf
《2022年Android核心模块 .pdf》由会员分享,可在线阅读,更多相关《2022年Android核心模块 .pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Android 作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。根据 Android 的软件框图,其 Android 核心模块结构自下而上分为以下几个层次:第一、操作系统层(OS)第二、各种库(Libraries)和 Android 运行环境(RunTime)第三、应用程序框架(Application Framework)第四、应用程序(Application)以下分别介绍 Andoid 各个层次的软件的重点及其相关技术:Android核心模块之操作系统层(OS)Android 使用 Linux2.6 作为操
2、作系统,Linux2.6 是一种标准的技术,Linux也是一个开放的操作系统。Android 对操作系统的使用包括核心和驱动程序两部分,Android 的 Linux 核心为标准的 Linux2.6内核,Android 更多的是需要一些与移动设备相关的驱动程序。主要的驱动如下所示:显示驱动(Display Driver):常用基于 Linux 的帧缓冲(Frame Buffer)驱动。Flash 内存驱动(Flash Memory Driver)照相机驱动(Camera Driver):常用基于 Linux 的 v4l(Video for)驱动。音频驱动(Audio Driver):常用基于
3、ALSA(Advanced Linux Sound Architecture,高级 Linux 声音体系)驱动。WiFi 驱动(Camera Driver):基于 IEEE 802.11 标准的驱动程序键盘驱动(KeyBoard Driver)蓝牙驱动(Bluetooth Driver)Binder IPC 驱动:Andoid 一个特殊的驱动程序,具有单独的设备节点,提供进程间通讯的功能。Power Management(能源管理)Android 核心模块之各种库(Libraries)和 Android 运行环境(RunTime)名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 1
4、0 页 -本层次对应一般 嵌入式 系统,相当于中间件层次。Android 的本层次分成两个部分一个是各种库,另一个是Android 运行环境。本层的内容大多是使用 C+实现的。在其中,各种库包括:C 库:C语言的标准库,这也是系统中一个最为底层的库,C库是通过Linux 的系统调用来实现。多媒体框架(MediaFrameword):这部分内容是Android 多媒体的核心部分,基于PacketVideo(即 PV)的 OpenCORE,从功能上本库一共分为两大部分,一个部分是音频、视频的回放(PlayBack),另一部分是则是音视频的纪录(Recorder)。SGL:2D图像引擎。SSL:即
5、Secure Socket Layer 位于 TCP/IP 协议与各种应用层 协议之间,为数据通讯提供 安全支持。OpenGL ES 1.0:本部分提供了对3D的支持。界面管理工具(Surface Management):本部分提供了对管理显示子系统等功能。SQLite:一个通用的 嵌入式 数据库 WebKit:网络浏览器的核心 FreeType:位图和矢量字体的功能。Android 的各种库一般是以系统中间件的形式提供的,它们均有的一个显着特点就是与移动设备的平台的应用密切相关。Android 运行环境主要指的虚拟机技术Dalvik。Dalvik 虚拟机和一般JAVA虚拟机(Java VM)
6、不同,它执行的不是JAVA标准的字节码(bytecode)而是 Dalvik可执行格式(.dex)中执行文件。在执行的过程中,每一个应用程序即一个进程(Linux 的一个 Process)。二者最大的区别在于Java VM是以基于栈的虚拟机(Stack-based),而 Dalvik 是基于寄存器的虚拟机(Register-based)。显然,后者最大的好处在于可以根据硬件实现更大的优化,这更适合移动设备的特点。Android核心模块之应用程序框架(Application Framework)Android 的应用程序框架为应用程序层的开发者提供APIs,它实际上是一个应用程序的框架。由于上层
7、的应用程序是以JAVA构建的,因此本层次提供的首先包含了 UI 程序中所需要的各种控件:名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 10 页 -例如:Views(视图组件)包括 lists(列表),grids(栅格),text boxes(文本框),buttons(按钮)等。甚至一个嵌入式的Web浏览器。一个 Andoid 的应用程序可以利用应用程序框架中的以下几个部分:Activity(活动)Broadcast Intent Receiver(广播意图接收者)Service(服务)Content Provider(内容提供者)Android核心模块之应用程序(Applica
8、tion)Android 的应用程序主要是用户界面(User Interface)方面的,通常以 JAVA程序编写,其中还可以包含各种资源文件(放置在res 目录中)JAVA程序及相关资源经过编译后,将生成一个APK包。Android 本身提供了主屏幕(Home),联系人(Contact),电话(Phone),浏览器(Browers)等众多的核心应用。同时应用程序的开发者还可以使用应用程序框架层的API 实现自己的程序。这也是 Android 开源的巨大潜力的体现。Android 架构详解Android 系统架构由 5 部分组成,分别是:Linux Kernel、Android Runtime
9、、Libraries、Application Framework、Applications。第二部分将详细介绍这5个部分。下面自底向上分析各层。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 10 页 -Android 架构1、Linux KernelAndroid 基于 Linux 2.6 提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。如果你学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,
10、当本层及以下层发生了变化不会影响到上层。也就是说各层各尽其职,各层提供固定的SAP(Service Access Point),专业点可以说是高内聚、低耦合。如果你只是做应用开发,就不需要深入了解Linux Kernel层。2、Android RuntimeAndroid 包含一个核心库的集合,提供大部分在Java 编程语言核心类库中可用的功能。每一个Android 应用程序是 Dalvik虚拟机中的实例,运行在他们自己的进程中。Dalvik 虚拟机设计成,在一个设备可以高效地运行多个虚拟机。Dalvik 虚拟机可执行文件格式是.dex,dex 格式是专为 Dalvik 设计的一种压缩格式,适
11、合内存和处理器速度有限的系统。大多数虚拟机包括JVM都是基于栈的,而 Dalvik 虚拟机则是基于寄存器的。两种架构各有优劣,一般而言,基于名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 10 页 -栈的机器需要更多指令,而基于寄存器的机器指令更大。dx 是一套工具,可以将 Java.class 转换成 .dex 格式。一个 dex 文件通常会有多个.class。由于dex 有时必须进行最佳化,会使文件大小增加1-4 倍,以 ODEX 结尾。Dalvik虚拟机依赖于 Linux 内核提供基本功能,如线程和底层内存管理。3、LibrariesAndroid 包含一个 C/C+库的集
12、合,供 Android 系统的各个组件使用。这些功能通过 Android 的应用程序框架(application framework)暴露给开发者。下面列出一些核心库:系统 C库-标准 C系统库(libc)的 BSD衍生,调整为基于嵌入式 Linux 设备 媒体库-基于 PacketVideo 的 OpenCORE。这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括 MPEG4、H.264、MP3、AAC、AMR、JPG、PNG 界面管理-管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层 LibWebCore-新式的 Web浏览器引擎,驱动Android 浏览器和内
13、嵌的 web视图 SGL-基本的 2D图形引擎 3D 库-基于OpenGL ES 1.0 APIs 的实现。库使用硬件3D加速或包含高度优化的3D软件光栅 FreeType-位图和矢量字体渲染 SQLite-所有应用程序都可以使用的强大而轻量级的关系数据库引擎4、Application Framework通过提供开放的开发平台,Android 使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发
14、布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。所有的应用程序其实是一组服务和系统,包括:视图(View)-丰富的、可扩展的视图集合,可用于构建一个应用程序。包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器内容提供者(Content Providers)-使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据资源管理器(Resource Manager)-提供访问非代码资源,如本地化字符串、图形和布局文件通知管理器(Notification Manager)-使所有的应用程序能够在状态栏显示自定义警告活动管理器(Activ
15、ity Manager)-管理应用程序生命周期,提供通用的导航回退功能5、ApplicationsAndroid 装配一个核心应用程序集合,包括电子邮件客户端、SMS 程序、日历、地图、浏览器、联系人和其他设置。所有应用程序都是用Java 编程语言写的。更加丰富的应用程序有待我们去开发!从上面我们知道 Android 的架构是分层的,非常清晰,分工很明确。Android 本身是一套软件堆迭(Software Stack),或称为软件迭层架构,迭层主要分成三层:操作系统、中间件、应用程序。从上面我们也看到了开源的力量,一个个熟悉的开源软件在这里贡献了自己的一份力量。名师资料总结-精品资料欢迎下载
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Android核心模块 2022 Android 核心 模块
限制150内