-
Notifications
You must be signed in to change notification settings - Fork 0
Transfer Engine
Yichenlemon edited this page Aug 28, 2026
·
1 revision
传输是 FastTransfer 的立身之本,支持三种通道,各有绝活。
| 通道 | 适用场景 | 特点 |
|---|---|---|
| 🏠 本地 | 电脑内部整理 | 最快,直接用 IO 流 |
| 📱 ADB | 手机 / Android 设备 | 走 USB,大文件夹用 tar 流式打包 |
| 💾 WPD (MTP) | U盘 / 移动硬盘 / 相机 | 走系统协议,兼容性最好 |
普通工具会一个文件一个文件地传,文件多时来回请求几万个包,巨慢。
FastTransfer 的做法:
- 大文件夹 / 小碎文件 → 用 tar 流式打包成单一数据流传输,一次搞定,避免逐文件往返。
-
多设备并发 → 每个设备用独立
adb -s <序列号>进程,互不抢 USB 带宽。
- 📊 实时进度:显示已传多少、总量多少、速度多少
- ⏸️ 可暂停 / 可继续:点一下暂停,再点恢复
- 🔌 断线处理:设备中途断开会提示,不假死
- 📝 错误日志:失败的条目全部留痕,供排查
- 用
TransferEngine统一调度,三种Provider(Local/Adb/Wpd)各自实现细节。 - 所有 WPD COM 调用必须在专用 STA 线程执行,否则会蓝屏级崩溃(0xC0000005)。
- 详情见源码
Providers/目录。