前几天发了一个Android App开发的技能图谱, 大家也都比较感兴趣, 有人问我有没有关于Android ROM开发的知识体系介绍. 前几年倒是做了几年ROM和参考方案开发, 也整理了一些东西, 发出来大家分享之.
有两年没有太关注ROM开发了, 可能有点滞后, 大牛们轻拍.
先上图, 大图, 请稍安:)
1. 操作系统
- Ubuntu(首选)
- MacOSX
2. 编程语言
- Java
- JNI(务必掌握)
- C++
- C
3. 源码
3.1 管理方式
- Codelines/Branches/Releases
- Codenames/Tags/Build Numbers
3.2 源码地址
3.3 下载
- Repo/Git
3.4 阅读修改工具
- SourceInsight(首选)
- Eclipse
- Android Studio
3.5 编译
- 搭建编译环境
- Makefile编译体系
4. 层次体系
4.1 核心Applications
- Phone/Contacts/MMS
- Camera/Gallery/Music/Video
- Settings
4.2 Frameworks
- Telephony
- MultiMedia
- Connectivity
- Window/View/ActivityManager
- Surface/Graphics
4.3 Native Libs
4.4 Android Runtime
- Dalvik
- ART
4.5 HAL
4.6 Linux Kernel
4.7 Driver
5. 核心系统
5.1 Audio
5.2 Bluetooth
5.3 Camera
5.4 Media
5.5 Storage
- Internal
- External
- OTG
5.6 Sensor
5.7 Input
- EventHub
- Touch
5.8 Accessories
5.9 DRM
5.10 Power
5.11 Window
- WindowManager
- View
- ActivityManagerService
5.12 Telephony
- Phone
- RIL
- ATCommands
- Modem
6 辅助技术
6.1 刷机
- fastboot
- unlock
- flash
- bootloader
6.2 设备分区
- boot
- system
- vendor
- userdata
- cache
- recovery
- misc
6.3 product配置
- Carrier
- File System
- Low RAM
- Runtime Permission(6.0)
- ...
6.4 调试工具
- GDB
- Valgrind
- Systrace
- Dumpsys
- Network usage
- RAM usage
6.5 兼容测试
- CTS源码下载
- CTS设置和执行
6.6 OTA升级
-
升级过程
- 全量升级
- 增量升级
-
升级优化
- 缩减升级包
本文已上传至Github的AndroidDevResource中, 欢迎大家star, fork, 提pull request.