Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
180 lines (113 sloc) 2.57 KB

Android ROM 开发技能图谱

前几天发了一个Android App开发的技能图谱, 大家也都比较感兴趣, 有人问我有没有关于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, 博客, 简书, 掘金, 开发者头条