一: 首先你必须了解 ARM 平台 Android 移植与驱动核心开发, 当然也可以是 X86 和其他的平台, 不过其他平台的 Android 智能终端开发并不是很多.
Android 嵌入式智能操作系统是基于 Linux 内核和驱动的, 对于 HTC, 华为等公司开发 Android 操作系统时, 需要专门将 Android 移植到 特定硬件平台下, 同时将必要的驱动进行编写及开发. 成为 Android 的核心层开发者, 在这种嵌入式设备厂商中谋得核心开发人员.
1. Android 系统的开发框架和开发模型
做 Android 嵌入式开发, 这个是必须的基础, 你必须清楚 Android 开发的整个框架, 知道一些必要的开发模型和程序模块, 这个有助于你快速的理解 Android 嵌入式开发
2. Android 系统体系及移植相关工具
1.1Android 操作系统体系结构介绍, Android Linux 内核移植介绍, 文件系统, toolbox 等移植, 存储驱动移植. Bootloader 相应方案与移植以及 Android 虚拟器 Dalvik 移植介绍.
1.2ARM 处理器介绍.
ARMv5TJS.
ARM 中断处理.
ARM 体系结构与 ARM 处理器的体系结构.
IP 核, 芯片与开发板.
ARM 处理器结构处理器模式.
. 寄放器.
. 流水线结构.
C 语言内嵌汇编款式与编程实例.
1.3ARM 指令系统.
. 算术逻辑指令 . 指令对状态寄放器的影响 . 对比指令 . 分支指令 . 移位 . 指令位图 . 辨认机器指令.
1.4 内存造访与内存把持.
. 数据总线与地址总线的应用与实例.
.STR/LDR .
1.5ARM 历程调用标准.
.LDM/STM.
. 反汇编.
.APCS.
.C 语言函数与汇编的互相调用.
[案例] 应用 Android Linux patch 进行 Linux 内核的构建
3. AndroidLinux 内核移植与核心开发
2.1ARM 处理器的 Android 系统构建.
2.2 输入输出设备驱动移植 .
2.3 存储设备 nand flash,MMC/SD 卡驱动移植.
2.4Framebuffer 移植 .
2.5 Touchscreen 移植 .
2.6 Open Binder IPC 移植.
[案例]
2.7 在 ARM 处理器上移植 Android 实验 .
2.8 编写 Nand flash 驱动.
2.9 移植 Framebuffer 驱动.
2.10 硬件相关部分 (键盘, 触摸屏, LCD 等).
4. Android 相关环境库, 以及 Bionic 系统移植
3.1libc 移植 .
3.2libm 移植 .
3.3libdl 移植.
3.4libm 移植.
3.5 busybox, toolbox 移植.
[案例]
1. 移植 glibc.
2. 移植 busybox 和 toolbox.
5. Android Dalvik 移植一
4.1 JNI Call Bridge 相关原理 .
4.2 dx, dalvitvm 原理和应用.
4.3 Dalvik 指令款式.
4.4 Dalvik 履行款式 dex .
4.5 Java 字节码款式.
6. Android Dalvik 移植二
5.1 Dalvik Library 原理 .
5.2 dalvit libcore 核心库移植.
5.3 dalvit/vm/native 移植.
5.4 Dalvik Interpreter 原理 .
5.5 Dalvik Mterp.
7. ARMAT&T 汇编
6.1AT&T 汇编语法详解 .
6.2gas 工具的应用 .
6.3label 标签的作用.
6.4 数据与代码的散播.
8. 链接脚本 ld-script
7.1 段地址的断定.
7.2 编写 ld-script.
7.3 ELF 款式与 libc 函数库的关系.
9. 时序电路根基
8.1 电平信号 .
8.2 电路图分析.
8.3 时序图分析.
8.4datasheet 查看 .
8.5s3c2440 的外围器件结构.
8.6GPIO 操作.
10. AMBA 总线标准
9.1 AMBA 总线标准 .
9.2 FCLK/HCLK/PCKL 频率分配与设置.
9.3 Watchdog 计时操作.
9.4 UART 操作 .
9.5 ARM 中断体系.
9.6 异常向量表.
9.7 ARM 模式切换.
9.8 ARM 中断把持器 .
9.9 软中断.
9.10 Linux 系统调用的实现.
11. Nand Flash 把持器
10.1 Flash 原理.
10.2 Nand 把持器原理及时序分板.
10.3k9f1208 时序分析.
12. 内存把持器
11.1 s3c2440 物理地址散播 .
11.2 SDRAM 原理与时序.
11.3 内存把持器的物理连接.
11.4 地址对齐 .
11.5 SRAM 造访.
13. 内存管理单元
12.1 MMU 的原理 .
12.2ARM 协处理器指令.
12.3 section 模式.
12.4 small page 模式 .
12.5 I & D TLBs .
12.6 I & DCache.
12.7 哈佛结构的原理与实现.
14. DMA 直接内存造访的机制与应用
13.1 DMA 的状态机 .
13.2 DMA 的把持.
15. 触摸屏接口与 ADC 接口 与实例
14.1 ADC 原理 .
14.1 触摸屏接口与把持.
16. LCD 把持器
15.1 图形显示原理.
15.2 LCD 把持器.
15.3 LCD 时序.
15.4 LCD 驱动相关的框架与体系 .
17. I2S 音频总线
16.1 音频硬件原理.
16.2 I2S 时序.
16.3 s3c2440 上 I2S 的操作.
16.4 音频设备的裸驱动讨论.
18. CS8900 网卡把持
17.1 逻辑链路层与 Mac 层.
17.2 CS8900 原理与时序分析.
17.3 后续网卡裸驱动讨论与体系结构.
19. TCP/IP 协议栈移植, 与网络体系结构
18.1 LwIP TCP/IP 协议栈简介 .
18.2 LwIP 配置与编译.
18.3 tftp 配置与编译.
20. Bootloader 原理与移植
19.1u-boot 的配置, 编译 .
19.2u-boot 启动历程分析.
19.3ARM-Linux 的启动请求.
19.4 ARM-Linux kernel 的 ld-sript 分析 .
19.5 u-boot 到 ARM-Linux 的跳转代码分析 .
19.6 应用 mkimage 制作启动镜像文件.
21. ARM-Linux 原理与移植
20.1ARM-Linux 的配置, 编译 .
20.2ARM-Linux 启动代码分析.
20.3ARM-Linux 地址映射的关系.
20.4 Busybox 的配置, 编译 .
22.ARM 等平台的调试测试技巧
会熟悉的使用一些测试脚本对自己的驱动进行测试, 或者对嵌入式硬件作简单的测试, 这个对于做 Android 嵌入式开发的开发人员十分的有必要!
最后
漫漫开发之路, 我们只是其中的一小部分...... 只有不断的学习, 进阶, 才是我们的出路! 才跟得上时代的进步!
这些资料免费领取方式点击下方链接领取
https://www.jianshu.com/u/ee81236d2d37
来源: https://www.cnblogs.com/Androidqin/p/11574386.html