前幾天發了一個Android App開發的技能圖譜, 大家也都比較感興趣, 有人問我有沒有關于Android ROM開發的知識體系介紹. 前幾年倒是做了幾年ROM和參考方案開發, 也整理了一些東西, 發出來大家分享之.
有兩年沒有太關注ROM開發了, 可能有點滯后, 大牛們輕拍.
先上圖, 大圖, 請稍安:)
Android 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.