从上层到底层,分别是应用程序层,进程通信层,系统服务层,Android
运行时层和 Linux
核心层。通过上图可以发现,基本应用程序运行在应用程序框架层之上,同样,开发者借助
AndroidSDK 调用应用程序框架 API 开发出来的应用程序也运行在应用程序框架层之上。
Android 是基于 Linux 内核的,所以我们移植 Android11 完全不需要什么担心,其他几个层的
知识,我们在以后移植的过程中再再慢慢了解学习。
那么我们如何学习 android 呢?最权威的资料是 Android 源码,Android 源码主要组成
如下:
l Kernel:Android Linux 内核
l bionic: Android 标准 C 支持库
l bootLoader :Android 内核加载器参考
l Build :Android 的 build 系统
l cts:Android 兼容性测试源
l Dalvik :Dalvik 虚拟机
l External:Android 使用的开放源
l Frameworks:Android 框架
l Hardware:Android HAL 库源
l Package:包含 Android 应用程序
l System:android 初始化进程,蓝牙工具集等。
到这里,我们再来看 android11 源码的源码目录,是不是清晰了很多。
buid.sh 是编译脚本。
瑞芯微官方Android11移植开发教程目录:
瑞芯微官方Android 11 移植开发
第一章Android系统开发编译环境配置
专题一让android系统在iTOP-rk3568上运行起来
第二章Android源码结构简介
第三章 获取Android源码
4.1 电源域的概念
4.2 IO电源域配置方法
4.2.1 VCCIO2解析
4.2.2 VCCIO1解析
4.2.3 VCCIO3解析
4.2.4 VCCIO4解析
4.2.5 VCCIO5解析
4.2.6 VCCIO6解析
4.2.7 VCCIO7解析
4.2.8 PMUIO解析
4.2.9 总结
第五章 RK809电源芯片配置
5.1 配置i2c和中断
5.2 配置供电和输出电压
第六章 编译烧写验证
专题二 Android11 配置串口
第七章 配置调试串口
7.1 硬件原理解析
7.2 设备树配置
7.3 uboot设置调试串口
7.4 使用MobaXterm打开调试串口
第八章配置普通串口
8.1 硬件原理解析
8.2 设备树配置
8.3 修改节点权限
8.4 测试串口
8.5 Android串口APP编写
8.5.1串口硬件连接
8.5.2软件准备
8.5.3创建JNI项目工程
8.5.4编写串口操作的JNI接口
8.5.6编写activity_main.xml
第九章配置调试串口为普通串口
9.1 在配置文件中关闭 FIQ
9.2 修改设备树
9.3 修改串口权限
第十章Android11 配置485
10.1 硬件原理分析
10.2 编写驱动
10.3 设备树配置
10.4 烧写验证
10.5 编写应用程序APP