- 前端
- Framework系统教程
目录
- # 1. 基础篇
- 1-1. 001.Ubuntu 使用快速入门 1-2. 002.Make 构建工具入门 1-3. 003.Android 平台如何编译执行 C C++ 可执行程序 1-4. 004.Linux Shell 脚本编程入门1——核心基础语法 1-5. 005.Linux Shell 脚本编程入门2——脚本自动化基础 1-6. 006.JNI 编程上手指南之 JavaVM 详解 1-7. 007.JNI 编程上手指南之 JNI 数据类型 1-8. 008.JNI 编程上手指南之描述符 1-9. 009.JNI 编程上手指南之 JNIEnv 详解 1-10. 010.JNI 编程上手指南之 JavaVM 详解 1-11. 011.JNI 编程上手指南之字符串处理 1-12. 012.JNI 编程上手指南之数组访问 1-13. 013.JNI 编程上手指南之 Native 访问 Java 1-14. 014.JNI 编程上手指南之异常处理 1-15. 015.JNI 编程上手指南之从内存角度再看引用类型 1-16. 016.JNI 编程上手指南之 JNI 调用性能优化 1-17. 017.JNI 编程上手指南之多线程 1-18. 018.理解 C++ 的 Memory Order
- # 2. 玩转AOSP篇
- 2-1. 001.AOSP 极速上手 2-2. 002.Android 系统开发工具推荐 2-3. 003.添加 Product 2-4. 004.添加可执行程序 2-5. 005.添加 C/C++、Java 库 2-6. 006.添加配置文件与删除已有模块 2-7. 007.玩转 AOSP 之系统 App 源码添加 2-8. 008.使用 Android Studio 开发系统 App 2-9. 009.SeAndroid 使用极速上手 2-10. 010.添加开机自启动 Shell 脚本 2-11. 011.如何阅读 Android 系统源码 —— C/C++ 篇 2-12. 012.如何阅读 Android 系统源码 —— Java 篇 2-13. 013.系统开发专用版 Android Studio 上手指南 2-14. 014.Repo 使用入门 2-15. 015.Android14 Native 图形化调试上手 2-16. 016.2025 Android Studio For Platform 上手指南
- # 3. 学穿Binder篇
- 3-1. 000.Binder 专题导学 —— 如何深入掌握 Binder 3-2. 001.学习 Binder 的预备知识 3-3. 002.Binder 基本原理 3-4. 003.Binder 程序示例之 C 语言篇 3-5. 004.Binder 服务注册过程情景分析之 C 语言篇 3-6. 005.Binder 服务获取与使用过程情景分析之C语言篇 3-7. 006.Android Binder 驱动框架设计与分析 3-8. 007.Binder 驱动情景分析之 ServiceManager 启动过程 3-9. 008.Binder 驱动情景分析之服务注册过程 3-10. 009.Binder 驱动情景分析之服务获取与使用过程 3-11. 010.Binder 程序示例之 C++ 篇 3-12. 011.Binder C++ 程序分析之主要类解析 3-13. 012.Binder 服务注册过程情景分析之 C++ 篇 3-14. 013.Binder 服务获取与使用过程情景分析之C++篇 3-15. 014.Binder 程序示例之 aidl-cpp 篇 3-16. 015.添加 Android Native 系统服务 3-17. 016.添加 Native 系统服务回调 3-18. 017.Binder 程序示例之 Java 篇 3-19. 018.Binder Java 层初始化 3-20. 019.Binder Java 层服务注册过程分析 3-21. 020.Binder Java 层服务获取与使用过程分析 3-22. 021.添加 Java 系统服务 3-23. 022.Android Java 系统服务框架与第三方 App 使用自定义 Java 系统服务 3-24. 023.添加 Java 系统服务回调 3-25. 024.AIDL 数据类型详解之 Java 篇 3-26. 025.AIDL 数据类型详解之 C++ 篇 3-27. 026.Java 调用 Native 服务 3-28. 027.Native 调用 Java Binder 服务 3-29. 028.AIDL 关键字 in out inout oneway 解析 3-30. 029.Binder 驱动 Debug 入门指南 3-31. 030.Binder 匿名服务源码分析 3-32. 031.Binder 中的 Parcel 数据结构分析(C++) 3-33. 032.Binder 中的 Parcel 数据结构分析(Java) 3-34. 033.Binder 多线程情景分析 3-35. 034.Binder 线程池溢出问题 3-36. 035.Binder 代理对象泄露问题分析 3-37. 036.Binder 死亡通知情景分析 3-38. 037.Binder 异常处理机制 3-39. 038.Binder 系统源码演进 3-40. 039.Binder 面试题汇总 3-41. 补充——LocalService
- # 4. 基础组件篇
- 4-1. 001.Android 平台智能指针使用与分析 4-2. 002.弱引用 wp 的作用 4-3. 003.Linux eventfd 原理与实践 4-4. 004.Linux IO 多路复用 epoll 机制 4-5. 005.Linux timerfd 的基本使用 4-6. 006.Android Native Looper 机制 4-7. 007.Android Java Looper 机制 4-8. 008.Handler 同步屏障机制 4-9. 009.IdleHanlder 原理与使用 4-10. 010.Android 属性系统入门 4-11. 011.属性文件生成过程分析 4-12. 012.如何添加系统属性 4-13. 013.属性与 Selinux 4-14. 014.属性系统源码分析一 4-15. 015.属性系统源码分析二 4-16. 016.属性系统源码分析三 4-17. 017.Unix Domain Socket 使用解析之 UDP 篇 4-18. 018.Unix Domain Socket 使用解析之 TCP 篇 4-19. 019.Android 中的 Unix Domain Socket 使用解析 4-20. 020.socketpair 使用解析 4-21. 021.Android 平台日志系统整体框架 4-22. 022.logd 守护进程初始化过程 4-23. 023.客户端写日志过程分析 4-24. 024.logd 写日志过程分析一 4-25. 025.logd 写日志过程分析二 4-26. 026.logd 读日志过程分析 4-27. 027.Android 平台日志丢失问题分析
- # 5. 系统启动过程分析
- 5-1. 001.Android 系统启动过程概述 5-2. 002.Android 系统启动之 Init 进程启动分析一 5-3. 003.Android 系统启动之 Init 进程启动分析二 5-4. 004.Android 系统启动之 Init 进程启动分析三 5-5. 005.Android 系统启动之 Init 进程启动分析四 5-6. 006.Android 系统启动之 Init 进程启动分析五 5-7. 007.Android 系统启动之 zygote 进程启动分析一 5-8. 008.Android 系统启动之 zygote 进程启动分析二 5-9. 009.Android 系统启动之 zygote 进程启动分析三 5-10. 010.Android 系统启动之应用进程启动分析 5-11. 011.Android 系统启动之 SystemServer 进程启动分析一 5-12. 012.Android 系统启动之 SystemServer 进程启动分析二 5-13. 013.Android 平台开机时间分析与优化 5-14. 014.Android 开机动画 BootAnimation 源码分析 5-15. 015.Android 平台自定义开机动画 5-16. 016.Android BootAnimation 添加视频播放功能 5-17. 017.Android 进程杀手 lmkd 源码分析一
- # 6. Hal开发入门与实践
- 6-1. 001.Android HAL 层概览 6-2. 002.传统 Hal 开发指南1 —— 开发环境准备 6-3. 003.传统 Hal 开发指南2 —— 传统 HAL 整体架构 6-4. 004.传统 Hal 开发指南3 —— 驱动开发 6-5. 005.传统 Hal 开发指南4 —— 实现一个简单的 Hal 模块 6-6. 006.传统 Hal 开发指南5 —— 添加硬件访问服务 6-7. 007.传统 Hal 开发指南6 —— 开发一个 App 访问硬件服务 6-8. 008.HIDL HAL 开发指南1 —— 开发环境准备 6-9. 009.HIDL Hal 开发指南2 —— Android 8 HAL 变迁 6-10. 010.HIDL Hal 开发指南3 —— HIDL HAL 实例程序 6-11. 011.HIDL Hal 开发指南4 —— Binderized HALs 实例分析 6-12. 012.HIDL Hal 开发指南5 —— Passthrough HALs 实例分析 6-13. 013.HIDL Hal 开发指南6 —— Same-Process HALs 实例分析 6-14. 014.HIDL Hal 开发指南7 —— 驱动开发 6-15. 015.HIDL Hal 开发指南8 —— 简单 HIDL HAL 实现 6-16. 016.HIDL Hal 开发指南9 —— 添加硬件访问服务 6-17. 017.HIDL Hal 开发指南10 —— 开发一个 App 访问硬件服务 6-18. 018.AIDL Hal 开发指南1—— 开发环境准备 6-19. 019.AIDL Hal 开发指南2 —— AIDL HAL 整体架构 6-20. 020.AIDL Hal 开发指南 3 ———— AIDL HAL 实例分析1 6-21. 021.AIDL Hal 开发指南 4 ———— AIDL HAL 实例分析2 6-22. 022.AIDL Hal 开发指南5 —— stable-c HAL 实例分析 6-23. 023.AIDL Hal 开发指南6 —— 驱动开发 6-24. 024.AIDL Hal 开发指南7 —— 实现一个简单的 AIDL HAL 6-25. 025.AIDL Hal 开发指南8 —— 添加硬件访问服务 6-26. 026.AIDL Hal 开发指南10 —— AIDL HAL 的升级