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.


    相关文章

      网友评论

      • 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