Learning Embedded Android N Pro - Ivan Morgillo.pdf
### 学习嵌入式Android N编程 #### 理解Android架构 本书《Learning Embedded Android N Pro》由Ivan Morgillo撰写,旨在为读者提供深入理解与掌握Android N(即Android 7.0 Nougat)嵌入式开发所需的知识。我们来了解一下Android系统的基本架构。 ##### Android系统概述 Android系统主要由以下几个层次组成: 1. **Linux内核**:这是Android的基础层,提供了对硬件设备的支持,并负责内存管理、进程管理等功能。 2. **硬件抽象层(HAL)**:位于内核之上,为上层软件提供了访问底层硬件的标准接口。 3. **库和应用框架**: - **库**:包含了一系列C/C++库,如媒体框架、SQLite等。 - **应用框架**:提供了构建应用程序所需的API和服务,比如Activity Manager、Notification Manager等。 4. **Binder IPC**:用于实现跨进程间通信的重要机制。 5. **应用层**:包含了Android平台上运行的各种应用程序。 6. **Android兼容性**:确保不同设备之间的软件可以无缝运行,主要包括Android兼容性定义文档(CDD)和兼容性测试套件(CTS)。 ##### Android兼容性 为了确保Android设备的一致性和兼容性,Google制定了一套标准,其中包括了Android兼容性定义文档(CDD),它详细描述了Android设备必须遵循的技术要求。此外,还有兼容性测试套件(CTS),用于验证设备是否符合这些要求。 1. **CTS设置**:包括设备设置、媒体文件设置等。 2. **运行CTS测试**:通过自动化脚本执行测试。 3. **分析测试结果**:检查测试报告,找出不符合要求的地方。 4. **使用CTS Verifier进行深入测试**:这是一种手动测试工具,可以帮助开发者发现更深层次的问题。 #### 获取源代码——结构与哲学 本章介绍了如何获取Android N的源代码,并探讨了Android项目的组织结构及其背后的设计哲学。 ##### Android哲学 Android项目遵循了一些基本原则,例如开源许可、开放与封闭并存的发展模式等。 1. **许可证**:大部分Android源代码都采用了Apache 2.0许可证。 2. **开源与闭源**:虽然Android是基于开源模型开发的,但某些关键组件和驱动程序可能是闭源的。 3. **开发模型**:Android采用了一种类似于滚动发布的方法,不断推出新的版本和功能。 ##### 源代码工具 为了管理和维护如此庞大的项目,Android使用了一些强大的工具。 1. **Git**:分布式版本控制系统,用于代码版本控制。 2. **Repo**:Google开发的一个辅助工具,用于简化Android项目的克隆和更新过程。 3. **Gerrit**:代码审查工具,帮助开发者在提交更改前进行同行评审。 ##### 构建环境设置 为了能够构建Android源代码,你需要准备一个合适的开发环境。 1. **磁盘空间**:确保有足够的磁盘空间存储源代码和编译产物。 2. **安装必备工具**:包括Git、Repo、JDK等。 3. **下载源代码**:使用Repo工具从官方仓库下载源代码。 #### 目录结构简介 Android源代码被组织在一个复杂的目录结构中,每个目录都有其特定的功能。 1. **ART目录**:包含Android运行时的相关文件。 2. **bionic目录**:包含了bionic C库和其他库。 3. **build目录**:存放构建脚本和配置文件。 4. **external目录**:用于存放第三方库和模块。 5. **device目录**:针对不同设备的特定代码。 6. **frameworks目录**:包含核心应用程序框架和服务。 7. **out目录**:编译后的输出文件。 8. **packages目录**:包含预装的应用程序。 9. **system目录**:存放系统级服务和库。 #### Android构建系统 了解Android构建系统的原理对于嵌入式开发至关重要。 1. **概述**:构建系统使用Makefile和脚本来编译源代码。 2. **Bootstrap阶段**:初始化构建环境。 3. **Setup阶段**:配置构建变量。 4. **变量设置**:包括TARGET_PRODUCT、TARGET_BUILD_VARIANT等关键变量。 通过以上内容的学习,你可以更好地理解Android N的架构和技术细节,为后续深入学习打下坚实基础。
剩余376页未读,继续阅读
- 粉丝: 2
- 资源: 16
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- FDExam_Note-软考冲刺资源
- mather-课程考试资源
- 300AE669-0B24-42C6-A870-786B3AD1B666 2.txt
- YoloX目标检测算法的结构原理及其应用优化
- java-leetcode题解之Populating Next Right Pointers in Each Node.java
- java-leetcode题解之Plus One.java
- java-leetcode题解之Play with Chips.java
- java-leetcode题解之PIO.java
- java-leetcode题解之Permutation Sequence.java
- java-leetcode题解之Permutation in String.java