Android Framework 层开发往往被视为进阶分水岭,很多应用层开发者遇到性能瓶颈或系统定制需求时,常因对底层机制理解不深而受阻。这门课程聚焦于 AOSP(Android Open Source Project)源码解析与 Binder 通信机制,旨在填补应用开发与系统开发之间的知识鸿沟。它不教你写普通的 App UI,而是教你如何在 Android 系统内部“造轮子”,例如添加系统服务、修改内核配置或开发原生库。对于想要突破职业发展天花板、从应用层向系统层转型的工程师来说,这是一门解决“知其然不知其所以然”痛点的高质量资料。

门槛与基础要求

学习本课前,建议读者具备扎实的 Java 或 Kotlin 基础,并熟悉 Android 应用层开发流程。Binder 涉及 C++ 与 Native 层,如果你对内存管理、指针操作或 Linux 进程概念较为陌生,初期会有较大认知负荷。课程并非为零基础准备,而是面向已经看过 Android 源码但读不懂 Framework 层的开发者。你需要习惯阅读几百行的 C++ 源码,并具备通过日志定位问题的能力。此外,本地需配备能编译 AOSP 的 Linux 开发环境,否则部分实操环节只能停留在理论层面。

建议学习路径与重点

内容模块跨度较大,建议按照“原理先行,分语言跟进,最后整合”的顺序学习。首先必须精修 Binder 专题导学及预备知识部分,这是理解后续所有源码分析的基石,切勿跳过直接看示例。接着,建议先通过 C 语言示例建立底层思维,再切换到 C++ 和 Java 层对比差异,最后学习 AIDL 数据类型及跨语言调用(Native 调用 Java,Java 调用 Native)。这一顺序符合从底层驱动到上层框架的认知规律。对于只需进行系统 App 开发的读者,可重点攻克“添加 Product”、“添加可执行程序”及“使用 Android Studio 开发系统 App”章节;对于从事底层驱动的读者,则应深挖 Binder 驱动框架设计与分析部分。

学完产出与资料用法

完整学完后,你将能够独立在 AOSP 中添加自定义的系统服务,理解 ServiceManager 如何注册与获取服务,并能排查复杂的跨进程通信死锁或权限问题。你不再依赖第三方库的简单封装,而是能直接阅读并修改 Framework 层源码来解决业务难题。资料包以视频为主,建议在观看每一节源码分析时,同步打开对应的 AOSP 源码工程,跟随讲师的节奏逐行打断点或阅读调用栈。不要仅作为背景音播放,Binder 的复杂性决定了你必须手边有源码和 IDE,才能实现从“看懂”到“会用”的转化。

课程目录

01_001.玩转AOSP.mp4
 58.37M 02_002.系统开发工具推荐.mp4
 71.27M 03_003.添加Product.mp4
 48.96M 04_004.添加可执行程序.mp4
 83.87M 05_005.系统App源码添加.mp4
 82.62M 06_006.使用android studio开发系统APP.mp4
 54.66M 07_000.Binder 专题导学 —— 如何深入掌握 Bind.mp4
 13.56M 08_001.学习 Binder 的预备知识1.mp4
 14.89M 09_002.学习 Binder 的预备知识2.mp4
 71.22M 10_003.学习 Binder 的预备知识3.mp4
 31.76M 11_004. 学习 Binder 的预备知识4.mp4
 12.95M 12_005.Binder 基本原理.mp4
 14.32M 13_006.Binder 程序示例之 C 语言篇.mp4
 57.59M 14_007. Binder C 语言示例源码分析之 Servic.mp4
 67.24M 15_008.Binder C 语言示例源码分析之服务注册过程.mp4
 38.03M 16_009. Binder C 语言示例源码分析之服务获取与使用.mp4
 19.99M 17_010. Android Binder 驱动框架设计与分析.mp4
 41.05M 18_011. Binder 驱动情景分析之 ServiceMan.mp4
 104.24M 19_012.Binder驱动情景分析之服务注册过程上.mp4
 143.60M 20_013.Binder驱动情景分析之服务注册过程下.mp4
 50.58M 21_014.Binder 驱动情景分析之服务获取与使用过程.mp4
 90.08M 22_015.Binder 程序示例之C++篇.mp4
 30.34M 23_016.Binder C++ 程序分析之主要类解析.mp4
 29.48M 24_017.Binder 服务注册过程情景分析之C++篇).mp4
 101.29M 25_018.Binder 服务获取与使用过程情景分析之C++篇.mp4
 28.19M 26_019.Binder 程序示例之 aidl-cpp 篇.mp4
 35.98M 27_020.添加 Native 系统服务.mp4
 38.59M 28_021.添加 Native 系统服务回调.mp4
 36.35M 29_022.Binder 程序示例之 Java 篇.mp4
 20.77M 30_023.Binder Java 层初始化.mp4
 24.11M 31_024.Binder Java 层服务注册过程分析.mp4
 77.00M 32_025.添加 Java 系统服务.mp4
 72.67M 33_026.Android Java 系统服务框架与第三方 Ap.mp4
 91.85M 34_027.添加 Java 系统服务回调.mp4
 41.77M 35_028.AIDL 数据类型详解之 Java 篇.mp4
 51.31M 36_029.AIDL 数据类型详解之 C++ 篇.mp4
 36.96M 37_30.Java 调用 Native 服务.mp4
 65.44M 38_31.Native 调用 Java Binder 服务.mp4
 50.07M 39_32.AIDL 关键字 in out inout onewa.mp4
 47.56M 40_33.Binder 匿名服务源码分析.mp4
 41.16M 41_34.Binder 中的 Parcel 数据结构分析(C++.mp4
 117.95M 42_35.Binder 中的 Parcel 数据结构分析(Jav.mp4
 72.62M 43_36.Binder多线程情景分析.mp4
 87.47M 44_37.Binder 代理对象泄露问题分析.mp4
 19.38M 45_38.Binder 死亡通知情景分析.mp4
 129.90M 46_39.Binder 异常处理机制.mp4
 33.99M 47_001.基础组件专题介绍.mp4
 7.56M 48_002.Android 平台智能指针使用与分析.mp4
 88.40M 49_003.弱引用 wp 的作用.mp4
 22.37M 50_004.Linux IO 多路复用 epoll 机制.mp4
 26.68M 51_005.Linux timerfd 的基本使用.mp4
 8.24M 52_006.Android Native Looper 机制.mp4
 54.98M 53_007.Android Java Looper 机制.mp4
 59.53M 54_008.Handler同步屏障机制.mp4
 56.27M 55_009.IdleHanlder 原理与使用.mp4
 15.96M 56_010.属性系统概述.mp4
 34.12M 57_011.属性系统入门.mp4
 41.67M 58_012.属性文件生成过程分析.mp4
 65.48M 59_013.属性与SeLinux.mp4
 42.86M 60_014.属性系统源码分析一.mp4
 159.28M 61_015.属性系统源码分析二.mp4
 96.61M 62_016.属性系统源码分析三.mp4
 62.10M 63_017.属性系统源码分析四.mp4
 59.36M 64_018.Unix Domain Socket 使用解析之 U.mp4
 41.15M 65_019.Unix Domain Socket 使用解析之 T.mp4
 29.17M 66_020.Android 中的 Unix Domain Soc.mp4
 37.84M 67_021.socketpair 使用解析.mp4
 24.77M 68_001.Android 系统启动.mp4
 9.22M 69_002.Init 进程启动分析一.mp4
 102.86M 70_003.Init 进程启动分析二.mp4
 23.94M 71_004.Init 进程启动分析三.mp4
 38.87M 72_005.Init 进程启动分析四.mp4
 71.22M 73_006.Init 进程启动分析五.mp4
 76.29M 74_007.zygote 进程启动分析一.mp4
 57.52M 75_008.zygote 进程启动分析二.mp4
 36.99M 76_009.zygote 进程启动分析三.mp4
 46.16M 77_010.应用进程启动分析.mp4
 117.87M 78_11.SystemServer 进程启动分析一.mp4
 95.26M 79_12.SystemServer 进程启动分析二.mp4
 75.01M 80_013.Android 平台开机时间分析.mp4
 97.76M