Binder 调试与优化实战
📚 30 章 · 系统服务
v2.0
01
Binder初探
什么是Binder?在Android中的角色,为何替代其他IPC
概念
02
Binder架构总览
Client-Server模型 · ServiceManager · Binder驱动
架构
03
AIDL基础
AIDL语法 · 定义接口 · 生成Java代码 · 手动实现
AIDL
04
Binder数据传输
Parcel机制 · 基本/自定义对象 · 文件描述符传递
数据
05
Binder线程池
线程模型 · 主线程与Binder线程 · 配置调优
线程
06
Binder死亡通知
linkToDeath · 死亡回调 · unlinkToDeath注意事项
通知
07
Binder异常处理
RemoteException · DeadObjectException · TransactionTooLargeException
异常
08
Binder性能分析
调用耗时 · 数据传输瓶颈 · binder_transaction日志
性能
09
Binder内存优化
内存映射 · 共享内存 · 避免内存泄漏
内存
10
Binder缓冲区管理
缓冲区大小 · 调整策略 · 大数据传输
缓冲区
11
Binder事务限制
事务大小限制 · 突破方法 · 风险权衡
事务
12
Binder日志系统
开启Binder日志 · binder_states · transaction日志
日志
13
Binder调试工具
binder_stats · ioctl · dumpsys binder · lsof
工具
14
Binder性能监控
Systrace · Perfetto事件 · 自定义监控
监控
15
Binder与匿名共享内存
MemoryFile · Ashmem原理 · 结合使用
共享内存
16
Binder与ContentProvider
ContentProvider的Binder实现 · 跨进程数据共享优化
Provider
17
Binder与Service
Service的Binder实现 · 前台Service与优先级
Service
18
Binder与Messenger
Handler · Messenger · 基于Message的IPC
Messenger
19
Binder与Socket对比
性能对比 · 适用场景 · 混合使用策略
对比
20
Binder安全机制
权限检查 · PID/UID验证 · SELinux与Binder
安全
21
Binder与HIDL
HIDL简介 · Treble中的Binder · AIDL对比
HIDL
22
Binder与RPC
远程过程调用原理 · Binder RPC框架 · 自定义RPC
RPC
23
Binder与多进程架构
多进程设计模式 · 通信设计 · 进程保活
多进程
24
Binder与匿名Binder
匿名Binder对象 · 使用场景 · 生命周期管理
匿名
25
Binder与Binder池
连接池设计 · 复用连接 · 连接池优化
连接池
26
Binder与跨进程回调
Callback接口 · 跨进程事件通知 · 线程管理
回调
27
Binder与序列化
Parcelable vs Serializable · 自定义 · 性能对比
序列化
28
Binder与数据压缩
压缩策略 · 压缩库 · 性能权衡
压缩
29
Binder与异步通信
oneway关键字 · 异步调用 · 回调设计
异步
30
Binder实战优化案例
系统服务优化 · 应用层优化 · 综合调优方案
实战