《精通移动App测试实战:技术、工具和案例》一1.2 Android系统架构

简介: 本节书摘来自异步社区《精通移动App测试实战:技术、工具和案例》一书中的第1章,第1.2节,作者 于涌 , 王磊 , 曹向志,更多章节内容可以访问云栖社区“异步社区”公众号查看 1.2 Android系统架构 从图1-1中我们不难发现Android的系统架构采用了分层的架构,分为4个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。

本节书摘来自异步社区《精通移动App测试实战:技术、工具和案例》一书中的第1章,第1.2节,作者 于涌 , 王磊 , 曹向志,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.2 Android系统架构

从图1-1中我们不难发现Android的系统架构采用了分层的架构,分为4个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。那么它们每层都是用来做什么的呢?

1.应用程序层
应用层是用Java语言编写的运行在Android平台上的程序,比如一些手机游戏和基于手机端的应用等,如图1-1所示,最上面的Applications层。


1d24113de53ff12d1cd14075e6d835d7eb17f685

2.应用程序框架层
应用程序框架层是编写Google发布的核心应用时所使用的API框架,开发人员可以使用这些框架来开发自己的应用程序,这样可以简化程序开发的架构设计,如图1-1所示,第二层,即Application Framework层,其提供的主要API框架如下。

活动管理器:主要用来管理应用程序声明周期,并提供常用的导航退回功能。

窗口管理器:主要用来管理所有的窗口程序。

内容提供器:它可以让一个应用访问另一个应用的数据,或共享它们自己的数据。

视图管理器:主要用来构建应用程序,比如列表、表格、文本框及按钮等。

通知管理器:主要用来设置在状态栏中显示的提示信息。

包管理器:主要用来对Android系统内的程序进行管理。

电话管理器:主要用来对联系人及通话记录等信息进行管理。

资源管理器:主要用来提供非代码资源的访问,例如本地字符串、图形及布局文件等。

位置管理器:主要用来提供使用者的当前位置等信息,如GPRS定位。

XMPP Service:XMPP服务。

3.系统运行库层
系统运行库层主要提供Android程序运行时需要的一些类库,这些类库一般是使用C/C++语言编写的。另外,该层还包含了Android运行库。如图1-1所示,第三层,系统运行库层中包含的主要库如下。

libc:C语言标准库,系统最底层的库,C语言标准库通过Linux系统来调用。

Surface Manager:主要管理多个应用程序同时执行时各个程序之间的显示与存取,并且为多个应用程序提供2D和3D图层的无缝融合。

SQLite:关系数据库。

OpenGL|ES:3D效果的支持。

Media Framework:Android系统多媒体库,该库支持多种常见格式的音频、视频的回放和录制。

WebKit:Web浏览器引擎。

SGL:2D图形引擎库。

SSL:位于TCP/IP协议与各种应用层协议之间,为数据通信提供支持。

FreeType:位图及矢量库。

系统运行库层中还包含了一个Dalvik虚拟机,相对于桌面系统和服务器系统运行的虚拟机而言,它不需要很快的CPU计算速度和大量的内存空间。因此,它非常适合在移动终端上使用。

4.系统内核层
Android的核心系统服务基于Linux 2.6内核,该内核拥有安全性、内存管理、进程管理、网络协议栈和驱动模型等。同时它也作为硬件和软件栈之间的抽象层,而Android更多的是需要一些与移动设备相关的驱动程序,比如显示驱动、USB接口驱动、蓝牙驱动、电源驱动、Wi-Fi驱动等,如图1-1所示,最下面即为该层。

相关文章
|
8天前
|
Android开发 Swift iOS开发
深入探索iOS与Android操作系统的架构差异及其对应用开发的影响
在当今数字化时代,移动设备已经成为我们日常生活和工作不可或缺的一部分。其中,iOS和Android作为全球最流行的两大移动操作系统,各自拥有独特的系统架构和设计理念。本文将深入探讨iOS与Android的系统架构差异,并分析这些差异如何影响应用开发者的开发策略和用户体验设计。通过对两者的比较,我们可以更好地理解它们各自的优势和局限性,从而为开发者提供有价值的见解,帮助他们在这两个平台上开发出更高效、更符合用户需求的应用。
|
10天前
|
Java Linux Android开发
深入探索Android系统架构:从Linux内核到应用层
本文将带领读者深入了解Android操作系统的复杂架构,从其基于Linux的内核到丰富多彩的应用层。我们将探讨Android的各个关键组件,包括硬件抽象层(HAL)、运行时环境、以及核心库等,揭示它们如何协同工作以支持广泛的设备和应用。通过本文,您将对Android系统的工作原理有一个全面的认识,理解其如何平衡开放性与安全性,以及如何在多样化的设备上提供一致的用户体验。
|
9天前
|
安全 Android开发 iOS开发
深入探讨Android与iOS的系统架构差异
本文旨在通过对比分析Android和iOS两大移动操作系统的系统架构,揭示它们在设计理念、安全性、应用生态及开发环境等方面的显著差异。我们将从底层架构出发,逐步剖析至用户界面层面,为开发者和科技爱好者提供一份详尽的技术参考。
20 1
|
10天前
|
机器学习/深度学习 监控 安全
量化合约对冲策略交易app系统开发技术规则
量化合约对冲策略交易APP系统开发技术规则涵盖系统架构设计、量化策略实现、交易管理、风险管理、用户界面设计及性能优化等方面。通过模块化设计、分布式架构、数据持久化、策略开发、算法交易、回测优化、订单管理、持仓监控、资金安全、风险控制、实时监控、安全审计、界面设计、反馈机制、多语言支持、响应速度、资源优化和兼容性等措施,确保系统的稳定、安全、高效和易用。
|
11天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
43 3
|
18天前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
在 Android 开发中,选择合适的架构模式对于构建中大型项目至关重要。常见的架构模式有 MVVM、MVP、MVI、Clean Architecture 和 Flux/Redux。每种模式都有其优缺点和适用场景,例如 MVVM 适用于复杂 UI 状态和频繁更新,而 Clean Architecture 适合大型项目和多平台开发。选择合适的架构应考虑项目需求、团队熟悉度和可维护性。
45 6
|
16天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
32 1
|
17天前
|
安全 搜索推荐 Android开发
深入探索Android与iOS的系统架构差异
【10月更文挑战第29天】 在当今的智能手机市场中,Android和iOS无疑是两大主流操作系统。本文旨在深入探讨这两个系统的架构差异,从底层的操作系统设计到用户界面的呈现,以及它们如何影响了开发者和用户的体验。通过对比分析,我们可以更清晰地理解这两种平台的优势与局限,为开发者在选择开发平台时提供有价值的参考,同时也为用户选择设备提供一定的指导。
38 2
|
1月前
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
1401 1
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
20天前
|
前端开发 数据管理 测试技术
前端自动化测试:Jest与Cypress的实战应用与最佳实践
【10月更文挑战第27天】本文介绍了前端自动化测试中Jest和Cypress的实战应用与最佳实践。Jest适合React应用的单元测试和快照测试,Cypress则擅长端到端测试,模拟用户交互。通过结合使用这两种工具,可以有效提升代码质量和开发效率。最佳实践包括单元测试与集成测试结合、快照测试、并行执行、代码覆盖率分析、测试环境管理和测试数据管理。
37 2

热门文章

最新文章