Android ROM 开发技能图谱
# 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 开发技能图谱的更多相关文章
- Android App 开发技能图谱
操作系统 Windows/MacOSX/Linux 编程语言 Java HTML/JS (Hybrid/Web App) C/C++ (NDK) SQL (DB) Kotlin 开发工具 IDE An ...
- Android App开发技能图谱(转载)
操作系统 Windows/MacOSX/Linux 编程语言 Java HTML/JS (Hybrid/Web App) C/C++ (NDK) SQL (DB) Kotlin 开发工具 IDE An ...
- HTML5 开发技能图谱skill-map
# HTML5 开发技能图谱——ROM架构以及Updater-Script脚本分析,常见的Status错误解决办法
Android ROM开发(二)--ROM架构以及Updater-Script脚本分析,常见的Status错误解决办法 怪自己二了,写好的不小心弄没了,现在只好重新写一些了,上篇简单的配置了一下环境, ...
- Android ROM开发(三)——精简官方ROM并且内置ROOT权限,开启Romer之路
Android ROM开发(三)--精简官方ROM并且内置ROOT权限,开启Romer之路 相信ROM的相关信息大家通过前几篇的学习都是有所了解了,这里就不在一一提示了,这里我们下载一个官方包,我们还 ...
- Android ROM开发(一)——Windows下Cygwin和Android_Kitchen厨房的安装
Android ROM开发(一)--Windows下Cygwin和Android_Kitchen厨房的安装 很久没有碰到ROM开发了,在很久很久以前也是从ROM起步的,无奈还是一脚踏上了Android ...
- Node.js 开发技能图谱
# Node.js 开发技能图谱 ## Node.js 语言环境搭建 - Node.js 安装(3m大法:nvm.npm.nrm)- Node.js 命令- Node.js开发工具(推荐vscode) ...
- Golang 开发技能图谱
# Golang 开发技能图谱 ## Go 语言环境搭建- Go 安装- GOPATH 与工作空间- Go 命令- Go开发工具 ## GO 语言编程基础- 关键词和语法(Language Synta ...
随机推荐
- [CSP-S模拟测试]:画作(BFS+数学)
题目描述 小$G$的喜欢作画,尤其喜欢仅使用黑白两色作画.画作可以抽象成一个$r\times c$大小的$01$矩阵.现在小$G$构思好了了他的画作,准备动笔开始作画.初始时画布是全白的,他每一次下笔 ...
- 后端技术杂谈3:Lucene基础原理与实践
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- BeautifulSoup的用法
BeautifulSoup是一个模块,该模块用于接收一个HTML或XML字符串,然后将其进行格式化,之后遍可以使用他提供的方法进行快速查找指定元素,从而使得在HTML或XML中查找指定元素变得简单. ...
- 左手Mongodb右手Redis
第二章,了解Mongodb保存数据 Mongodb对于每次插入的数据没有要求,字段可以随便变动,字段类型可以随意变动. Mongodb可以并发插入上万条文档,这是传统关系型数据库不能望其项背的. 1. ...
- Java学习之多线程(定义)
进程:正在运行中的程序线程:负责执行程序的控制单元(执行路径)一个进程中可以有多个执行路径,称之为多线程一个进程中至少要有一个线程 创建新执行线程有两种方式 一.继承Thread类步骤:1.定义一个类 ...
- [题解]Magic Line-计算几何(2019牛客多校第三场H题)
题目链接:https://ac.nowcoder.com/acm/contest/883/H 题意: 给你偶数个点的坐标,找出一条直线将这n个点分成数量相等的两部分 并在这条直线上取不同的两个点,表示 ...
- 洛谷 P1346 电车——dijstra
上一波题目 https://www.luogu.org/problem/P1346 是道水题 路口一开始对着的那条路权值为0 其余路权值为1 然后跑一遍最短路就好了 qwq #include<c ...
- [fw]LINUX中断描述符初始化
LINUX中断描述符初始化 @CopyLeft by ICANTH,I Can do ANy THing that I CAN THink!~ Author: WenHui, WuHan Univer ...
- mysql修改root密码和设置权限 转摘:http://www.cnblogs.com/wangs/p/3346767.html
整理了以下四种在MySQL中修改root密码的方法,可能对大家有所帮助! 方法1: 用SET PASSWORD命令 mysql -u root mysql> SET PASSWORD FOR ' ...
- .Net Core应用RabbitMQ,及简单封装
首先,还是万分感谢大家能够抽空来阅读我的文章,万分感谢.今天我带来的是.Net Core中应用RabbitMQ,和简单封装.因为昨天的文章里说了今天要写,所以今天一定要写出来.小编翻阅了很多资料,想要 ...