Android ROM 开发技能图谱

作者: anly_jun | 来源:发表于2016-08-04 22:42 被阅读7376次

前几天发了一个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.


相关文章

  • Android ROM 开发技能图谱

    前几天发了一个Android App开发的技能图谱, 大家也都比较感兴趣, 有人问我有没有关于Android RO...

  • 整理

    Android 知识体系脑图「android篇」 Android 技能图谱学习路线 重磅:Android 技能图谱...

  • 轨迹目录

    Android 技能图谱学习路线

  • Android Rom判断方法

    Android应用开发的时候,有时候会需要判断系统的Rom类型。判断Rom有以下两种方式: 通过android.o...

  • 开发技能图谱

    操作系统 管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须...

  • Android技能图谱

    操作系统Windows/MacOSX/Linux 编程语言JavaHTML/JS (Hybrid/Web App)...

  • 史上最全java架构师技能图谱(上)

    java架构师最全技能图谱上篇,包含:数结构算法、java进阶、web开发、框架与工具四大技能图谱。 下篇将包含大...

  • iOS开发技能图谱

    今天在公交车上看到一张关于iOS开发的必备技能图谱,作为一个ios开发者,结合自身的情况,感觉还是从这张图中看到了...

  • webgis开发技能图谱

    webgis开发需要掌握web前端之外的很多技能,需要对GIS从数据获取到前端展示的整个流程都能融汇贯通,而不是仅...

  • 检测Rom类型(RomUtil)

    由于 Android 机型繁多,存在着各种定制的ROM,所以在开发应用的过程中,时常需要针对不同的ROM进行适配。...

网友评论

  • HelloXu:核心Application应该还包括SystemUI(keyguard)
  • 狂奔的鸡翅膀:这方面有什么相关的社区.介绍几个
  • eb3dad736df7:能说明一下做Android系统开发,使用Ubuntu和mac osx开发,为什么推荐使用ubuntu吗,准备换电脑,之前是用公司的台式机,Ubuntu,自己的本本跑不起来,就只能看看代码,不能编译,多谢:smile: 刚入行rom开发,多谢指教,
    anly_jun:@换个名字_acfe 官方推荐, 使用mac开发也可以, 会比较麻烦点, 做rom开发可以多关注下source.android.com
  • 补不补不:不错,很全面,支持
  • b2b1d6f3dfbb:学习Android系统源码Source Insight建议不要作为首选吧,用来快速查找还是很不错的
    eb3dad736df7:在终端查找比较慢,而且不支持函数跳转,也看个人习惯,罗大神就用命令搜,个人还是推荐sourceinsight,支持函数跳转,不过不要把整个Android代码导入,会卡。
  • justT24:特别感谢这篇博客,刚从App开发转到Rom开发,一头雾水中。
    丶Mdzz:我想问下 我也准备从app转向rom开发,难不难?
    anly_jun: @justT24 有帮助就好😀
  • 笑说余生:请问一下编写思维导图的软件叫什么,能给一份吗,谢谢啦🐥🐥🐥
    笑说余生: @anly_jun 谢谢啦
    anly_jun:@敲代码的大圣 mindnode pro
  • 古古有灵:不错
    anly_jun:@雪灬飞扬 谢谢,共同进步~

本文标题:Android ROM 开发技能图谱

本文链接:https://www.haomeiwen.com/subject/ouhhsttx.html