|-- Android .   |-- Android 基础 .   .   |-- 四大组件 .   .   |-- UI 界面 .   .   .   |-- 常用控件 .   .   .   .   |-- SurfaceView .   .   .   .   |-- TextureView .   .   .   .   |-- RecyclerView .   .   .   .   |-- ConstraintLayout .   .   .   .   `-- CoordinatorLayout .   .   .   |-- 属性动画 .   .   .   |-- 点击事件分发 .   .   .   |-- Window 与 Surface .   .   .   |-- View 的工作机制 .   .   .   `-- 大图加载 .   .   |-- Jetpack .   .   |-- Android 特有的数据结构 .   .   .   |-- ArrayMap .   .   |-- 消息机制 .   .   .   `-- epoll 机制 .   .   |-- 跨进程通信 .   .   .   |-- Binder 机制 .   .   .   `-- AIDL .   .   |-- 多媒体 .   .   .   |-- 录音 .   .   .   |-- 音频播放 .   .   .   `-- 相机 .   |-- Android 源码 .   .   `-- Activity 启动流程 .   |-- Android 专项技术 .   .   |-- 性能优化 .   .   .   |-- 启动耗时优化 .   .   .   .   |-- 定位耗时代码的方案 .   .   .   .   .   |-- TraceView和Systrace .   .   .   .   .   |-- Perfetto .   .   .   .   .   `-- 插桩统计函数耗时 .   .   .   .   |-- 其他优化方案 .   .   .   .   .   |-- 启动任务的有向无环图 .   .   .   .   .   |-- 在 Application 中预加载 .   .   .   .   .   `-- 首屏视图尽可能使用ViewStub .   .   .   |-- CPU 占用率 .   .   .   |-- 线程数量 .   .   .   .   |-- 线程数量监控 .   .   .   .   `-- 线程数量优化 .   .   .   |-- FPS和卡顿优化 .   .   .   .   |-- 卡顿监控 .   .   .   .   `-- 主线程 IO 检测 .   .   .   |-- 内存优化 .   .   .   .   |-- 内存泄露 .   .   .   .   |-- 内存抖动 .   .   .   .   `-- 内存占用 .   .   .   .   .   |-- C++ 内存占用分析 .   .   .   .   .   `-- Java 内存占用分析 .   .   |-- 编译流程 .   .   |-- Gradle .   .   |-- 插件化 .   .   |-- APT .   .   |-- 代码插桩 .   .   `-- 安全性 .   .   .   |-- 代码混淆 .   .   .   |-- 签名 .   .   .   .   |-- 摘要、签名与数字证书都是什么? .   .   .   `-- 加固 .   |-- 开源库 .   .   |-- EventBus .   .   |-- RxJava .   .   |-- Okhttp .   .   |-- Retrofit .   .   `-- Glide |-- Java .   |-- 线程安全 .   `-- 数据结构 |-- Kotlin `-- 架构设计 .   |-- 六种设计原则 .   |-- 23种设计模式 .   `-- 架构 .   .   |-- MVC .   .   |-- MVP .   .   |-- MVVM .   .   |-- VIPER .   .   `-- Clean