Skip to content

feixiao/AndroidFrameworkTutorial

 
 

Repository files navigation

以下是 Android Framework 核心基础的学习路线图:

清晰的学习路线图可以在 链接:https://pan.baidu.com/s/1F0Ibi8pHcYT39HASy3zvNw 提取码:1234   处下载到。

学习路线一共分为 11 个专题,接下来看看这 11 个专题都需要学习哪些内容:

2. 基础篇

基础部分已分享内容:

3. AOSP 快速上手路线

这部分内容提供有免费配套视频教程

这部分内容主要是让大家上手 Android 系统源码,对系统开发有一个感性的认知,主要有以下内容:

系统模块添加

系统 App 开发入门

4.Binder

Binder 是一套 linux 上的 远程过程调用(RPC) 编程框架,是整个 Android 系统的核心基础组件,在体验的系统开发的“快乐”以后,我们需要第一时间掌握 Binder 的里里外外。计划分享以下内容:

5.基础组件

所谓基础组件,就是系统源码中使用的较多的模块,需要学习的内容主要包括:

  • Android 源码中的智能指针

  • Android 属性系统使用与分析

  • Android 日志系统使用与分析

  • Android 中的权限管理

  • Android 匿名共享

  • 基础组件面试题解析

6.Hal 与硬件服务

Hal 主要是对驱动功能做一些封装,下接驱动,上接 Framework,主要学习以下内容:

7.构造系统

有的时候我们可能需要修改构造系统的行为,这需要我们对 AOSP 的构造系统有基本的认识,下面是构造系统的学习顺序:

  • AOSP 构造系统的演进

  • 构造系统初始化

  • 编译过程解析

  • 打包流程解析

  • 构造系统面试题分析

8. 应用层框架

应用层框架是应用开发接触最频繁的组件,主要掌握以下几个方面:

  • AMS/ATMS 与四大组件

    • Activity 启动过程与进程启动

    • Service 启动

    • ContentProvider 实现原理

    • 广播机制

  • Handler 与 Looper 消息处理机制

  • PackageManagerService 工作流程与原理

  • 应用层框架面试题分析

9.系统启动过程

系统启动是我们常打交道的部分,其流程如下图所示:

图片来自这里

主要熟悉以下内容:

  • 系统启动过程整体流程

  • init 进程解析

  • zygote 进程解析

  • SystemServer 进程解析

  • 系统启动过程面试题分析

10.Android 图形系统

Android 图形系统是系统框架中一个非常重要的子系统,我们从以下几个方面来学习和理解图形系统的整体框架:

  • 图形系统整体框架

  • Hal 层原理分析

  • SurfaceFlinger 实现与剖析

  • WMS 实现与剖析

  • Android View 系统分析

  • VSync 原理解析

  • Android 图形系统面试题分析

11.Android 输入系统

输入系统主要分为输入子系统和 IMS,我们重以下几个角度来学习 Android 的输入系统:

  • 输入系统整体框架

  • 事件的读取

  • 事件的分发

  • 事件的处理

  • Android 输入系统面试题分析

12.系统应用

系统开发的大部分内容是做系统应用开发,常修改的系统应用如下:

  • Settings

  • Launcher

  • SystemUI

  • 系统应用开发相关面试题分析

13. 其他

  • Android 多屏显示分析

总结

在掌握了这 11 个专题后,不论是继续研究 Framework 中其他模块,或是参与 App 开发,又或是研究内核与驱动,我相信,你一定早已是是游刃有余了!

About

写给应用开发的 Android Framework 教程

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 55.4%
  • C++ 30.0%
  • Java 11.5%
  • Shell 2.2%
  • Makefile 0.3%
  • CMake 0.3%
  • AIDL 0.3%