# Android ROM 开发技能图谱

## 1. 操作系统

* Ubuntu(首选)
* MacOSX

## 2. 编程语言

* Java
* JNI(务必掌握)
* C++
* C

## 3. 源码

### 3.1 管理方式

* Codelines/Branches/Releases
* Codenames/Tags/Build Numbers

### 3.2 源码地址

* [官方源码](https://android.googlesource.com)
* [Github镜像](https://github.com/android)
* [高通扩展源码](https://www.codeaurora.org/projects/all-active-projects/android-msm)
* [CM源码](https://github.com/cyanogenmod)
* [MIUI部分源码](https://github.com/MiCode)

### 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升级

* 升级过程
* 全量升级
* 增量升级

* 升级优化
* 缩减升级包

Android ROM 开发技能图谱的更多相关文章

  1. Android App 开发技能图谱

    操作系统 Windows/MacOSX/Linux 编程语言 Java HTML/JS (Hybrid/Web App) C/C++ (NDK) SQL (DB) Kotlin 开发工具 IDE An ...

  2. Android App开发技能图谱(转载)

    操作系统 Windows/MacOSX/Linux 编程语言 Java HTML/JS (Hybrid/Web App) C/C++ (NDK) SQL (DB) Kotlin 开发工具 IDE An ...

  3. HTML5 开发技能图谱skill-map

    # HTML5 开发技能图谱![HTML5 脑图](https://github.com/TeamStuQ/skill-map/blob/master/data/designbyStuQ/png-HT ...

  4. Android 架构师技能图谱

    # Android 架构师技能图谱 ## 架构与设计 - 设计模式 - 重构 - 技术选型 - 特性 - 可用性 - 性能 - 包大小 - 方法数 - 文档 - 技术支持 - UI架构模式 - MVC ...

  5. Android ROM开发(二)——ROM架构以及Updater-Script脚本分析,常见的Status错误解决办法

    Android ROM开发(二)--ROM架构以及Updater-Script脚本分析,常见的Status错误解决办法 怪自己二了,写好的不小心弄没了,现在只好重新写一些了,上篇简单的配置了一下环境, ...

  6. Android ROM开发(三)——精简官方ROM并且内置ROOT权限,开启Romer之路

    Android ROM开发(三)--精简官方ROM并且内置ROOT权限,开启Romer之路 相信ROM的相关信息大家通过前几篇的学习都是有所了解了,这里就不在一一提示了,这里我们下载一个官方包,我们还 ...

  7. Android ROM开发(一)——Windows下Cygwin和Android_Kitchen厨房的安装

    Android ROM开发(一)--Windows下Cygwin和Android_Kitchen厨房的安装 很久没有碰到ROM开发了,在很久很久以前也是从ROM起步的,无奈还是一脚踏上了Android ...

  8. Node.js 开发技能图谱

    # Node.js 开发技能图谱 ## Node.js 语言环境搭建 - Node.js 安装(3m大法:nvm.npm.nrm)- Node.js 命令- Node.js开发工具(推荐vscode) ...

  9. Golang 开发技能图谱

    # Golang 开发技能图谱 ## Go 语言环境搭建- Go 安装- GOPATH 与工作空间- Go 命令- Go开发工具 ## GO 语言编程基础- 关键词和语法(Language Synta ...

随机推荐

  1. 禅道安装--结合openldap

    原文地址: https://blog.csdn.net/plei_yue/article/details/79075298 ldap结合禅道(需要神道不是开源版) https://www.cnblog ...

  2. JS基础入门篇(四)—this的使用,模拟单选框,选项卡和复选框

    1.this的使用 this js中的关键字 js内部已经定义好了,可以不声明 直接使用 this的指向问题 1. 在函数外部使用 this指向的是window 2. 在函数内部使用 有名函数 直接调 ...

  3. JSON的android应用实例

    JSON的android应用实例 Json在线解析器 下面是直接通过JUnit来测试直接通过API来解析Json数据 1.普通键值对象 2.Json数组对象 3.Json数组对象

  4. kubernetes原理

    kubernetes 核心组件 etcd:保存整个集群的状态 apiserver:提供资源操作的唯一入口,并提供认证.授权.访问控制.api注册和发现等机制 controller manager:负责 ...

  5. 为什么总是弹出报错“百度未授权使用地图API”?

    今天打开网站的时候出现了这个问题“百度未授权使用地图API, 可能是因为您提供的密钥不是有效的百度开放平台密钥或此密钥未对本应用的百度地图JavasoriptAPI授权.…”经过研究终于知道什么原因了 ...

  6. Ajax跨域(CROS)请求中的Preflighted requests

    Ajax跨域(CROS)请求中的Preflighted requests:https://www.aliyun.com/jiaocheng/862989.html 10 分钟理解跨域请求:https: ...

  7. maven项目使用tomcat启动报错:Server Tomcat v8.5 Server at localhost failed to start

    背景说明:1)该项目为maven项目,使用的maven的本地仓库里有不少之前使用过下载的jar包: 2)从svn下载该项目后,无报错情况: 3)部署到tomcat启动报错 如下 : 4)在网上搜索了很 ...

  8. web编程非常实用的在线工具大全---转载

    代码对比/归并: http://www.matools.com/compare 正则表达式: http://www.matools.com/regex js/css压缩: http://www.mat ...

  9. Python控制台输出带颜色方法

    书写格式,和相关说明如下: 举例: print('\033[0;32;40m欢迎使用学生选课系统\033[0m') try: num = int(input('请输入数字选择功能 :')) excep ...

  10. ubuntu中下载pycharm并添加到桌面

    方法一:下载Pycharm与安装 下载地址:https://www.jetbrains.com/pycharm/ Pycharm专业版和社区版对大多数人来说差别不大,区别如下: 我们下载Linux的社 ...