《Android深度探索(卷1):HAL与驱动开发》——1.1节Android系统架构

简介:

本节书摘来自异步社区《Android深度探索(卷1):HAL与驱动开发》一书中的第1章,第1.1节Android系统架构,作者李宁,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.1 Android系统架构
Android深度探索(卷1):HAL与驱动开发
Android是一个非常优秀的嵌入式操作系统。经过几年的发展和演进,Android已经形成了非常完善的系统架构,如图1-1所示。


0bba652f4126260528238b23c5f2811501e62b63

从图1-1可以看出,Android的系统架构分为4层。这4层所包含的内容如下。

第1层:Linux内核

由于Android是基于Linux内核的,因此,Android和其他Linux系统(如Ubuntu Linux、Fedora Linux等)的核心部分差异非常小。这一层主要包括Linux的驱动程序以及内存管理、进程管理、电源管理等程序。Android使用Linux 2.6作为其内核。不过不同版本的Android使用的Linux内核版本有细微的差异,所以不同Android版本的驱动可能并不通用。本书主要讲的就是开发第1层的驱动程序,以及如何在不同Linux版本、硬件平台移植驱动程序。

第2层:C/C++代码库

这一层主要包括使用C/C++编写的代码库(Linux下的.so文件),也包括Dalivk虚拟机的运行时(Runtime)。

第3层:Android SDK API

由于Android SDK API是用Java语言编写的,因此,这一层也可称为Java API层。实际上,这一层就是用Java编写的各种Library。只不过这些Library是基于Dalvik虚拟机格式的。笔者所著《Android开发权威指南》主要就是介绍了这一层的Android SDK API的使用方法及技巧。

第4层:应用程序

这一层是所有的Android用户(包括程序员和非程序员)都要接触到的。因为这一层相当于Android的UI。所有的Android应用程序(包括拍照、电话、短信、Android的桌面、浏览器以及各种游戏)都属于这一层。而这一层主要依靠第3层中的Android SDK API来完成各种功能。

相关文章
|
11天前
|
Java Android开发
Android系统 修改无源码普通应用为默认Launcher和隐藏Settings中应用信息图标
Android系统 修改无源码普通应用为默认Launcher和隐藏Settings中应用信息图标
23 0
|
1天前
|
存储 安全 Android开发
安卓应用开发:构建一个高效的用户登录系统
【5月更文挑战第3天】在移动应用开发中,用户登录系统的设计与实现是至关重要的一环。对于安卓平台而言,一个高效、安全且用户体验友好的登录系统能够显著提升应用的用户留存率和市场竞争力。本文将探讨在安卓平台上实现用户登录系统的最佳实践,包括对最新身份验证技术的应用、安全性考量以及性能优化策略。
|
4天前
|
前端开发 测试技术 数据处理
安卓开发中的MVP架构模式深度解析
【4月更文挑战第30天】在移动应用开发领域,模型-视图-呈现器(Model-View-Presenter, MVP)是一种广泛采用的架构模式。它旨在通过解耦组件间的直接交互来提高代码的可维护性和可测试性。本文将深入探讨MVP在安卓开发中的应用,揭示其如何促进代码的模块化,提升用户界面的响应性,并简化单元测试过程。我们将从理论概念出发,逐步过渡到实践案例,为读者提供一套行之有效的MVP实施策略。
|
10天前
|
监控 物联网 数据处理
构建未来:基于Android的智能物联网家居系统
【4月更文挑战第24天】 随着物联网技术的飞速发展,智能家居系统作为其重要分支之一,正逐渐渗透到千家万户。本文将详细探讨如何利用Android平台的灵活性和开放性,设计并实现一个高效、可靠的智能物联网家居系统。我们将从系统的架构设计出发,深入分析关键技术点,包括设备通信协议、用户界面设计以及后台数据处理等方面,并展示通过Android设备进行实时控制和监控的实用性。文章不仅聚焦于技术细节,还将对未来发展趋势及潜在挑战进行前瞻性讨论。
11 0
|
11天前
|
Java Shell Android开发
Android构建系统:Android.mk(3)条件控制详解
Android构建系统:Android.mk(3)条件控制详解
15 1
|
11天前
|
存储 Android开发 开发者
Android构建系统:Android.mk(1)基础概念赋值变量引用详解
Android构建系统:Android.mk(1)基础概念赋值变量引用详解
18 0
|
11天前
|
Android开发
Android构建系统:Android.mk(2)函数详解
Android构建系统:Android.mk(2)函数详解
15 1
|
11天前
|
前端开发 Java 编译器
Android HAL深入探索(7)hidl-gen和hidl2aidl的使用详解
Android HAL深入探索(7)hidl-gen和hidl2aidl的使用详解
8 0
|
11天前
|
存储 Java API
Android系统 文件访问权限笔记
Android系统 文件访问权限笔记
44 1
|
11天前
|
移动开发 Java Unix
Android系统 自动加载自定义JAR文件
Android系统 自动加载自定义JAR文件
33 1