SmbFast v20 (1.18.0):SMB 高速传输安卓客户端
- SMB 3.1.1 多流条带传输(下载/上传),轮转交错写入、48MB 内存护栏 - 前台服务保活 + WiFi/CPU 锁,后台传输不断连 - HyperOS 焦点通知/超级岛适配(miui.focus.param 双轨协议) - 全屏连接编辑器:共享多选、批量建连;错误中文提示 + TCP 预探测 - 凭据 AndroidKeyStore 加密存储;失败自动/手动重试;空间预检 - 全局单层极光背景(修复切页闪烁)+ 单元测试
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# SMB 极速 (SmbFast)
|
||||
|
||||
一个以**传输速度为第一目标**的安卓 SMB 客户端,基于 SMB2/SMB3 协议(SMBJ 库)+ Jetpack Compose。
|
||||
|
||||
## 功能
|
||||
|
||||
- **连接管理**:添加/编辑/删除 NAS、Windows 共享连接,支持域账号、匿名登录,连接前可测试
|
||||
- **文件浏览**:共享目录浏览(面包屑导航)、新建文件夹、重命名、删除、按类型显示图标
|
||||
- **高速下载**:多流分块并行下载(默认 4 流、1MB 分块,可调至 16 流 / 8MB)
|
||||
- **上传**:系统文件选择器上传(顺序流);本地文件多流并行上传
|
||||
- **传输管理**:实时进度、实时速度(EMA 平滑)、取消、完成后直接打开
|
||||
- **设置**:并行流数、分块大小、下载目录
|
||||
|
||||
## 为什么快
|
||||
|
||||
| 手段 | 说明 |
|
||||
| --- | --- |
|
||||
| SMB 3.1.1 协商 | 优先协商 SMB3(大 MTU),单请求 MaxRead/MaxWrite 可达 8MB(SMB2 仅 1MB) |
|
||||
| 多流并行 | 大文件切成条带,每条带独立打开 SMB 句柄并行读取,靠 credits 在单连接上流水线并发 |
|
||||
| 大分块 | 减少 RTT 往返次数,请求粒度默认 1MB、可调 8MB(自动按服务器协商值截断) |
|
||||
| 连接复用 | Connection/Session/Share 全程池化,浏览无重复握手开销 |
|
||||
| 关闭签名/加密 | 默认不做 SMB 签名与加密以换取吞吐(服务器强制时自动回退协商) |
|
||||
| 本地零拷贝拼装 | FileChannel 定位写 + 预分配,各流直接写入自己的偏移 |
|
||||
|
||||
> 实测建议:手机连 5GHz Wi-Fi,NAS 开 SMB3(Windows 8+/Server 2012+ 默认开启)。千兆内网理论 110MB/s 左右,多流可基本跑满;百兆/2.5G 环境收益更明显(单流顺序读通常只能到 30~60MB/s)。
|
||||
|
||||
## 构建
|
||||
|
||||
要求:JDK 17+,Android SDK(platform 35、build-tools 34+)。
|
||||
|
||||
```bash
|
||||
./gradlew :app:assembleDebug # 产物: app/build/outputs/apk/debug/app-debug.apk
|
||||
./gradlew :app:assembleRelease # 需要签名配置
|
||||
```
|
||||
|
||||
`local.properties` 中配置 `sdk.dir`。Gradle 仓库默认走阿里云镜像(`settings.gradle.kts`),国内环境无需代理。
|
||||
|
||||
## 使用
|
||||
|
||||
1. 首页点 **+** 添加连接:填服务器 IP(如 `192.168.1.10`)、共享名称(如 `share`)、用户名密码(或勾选匿名)
|
||||
2. 点「测试」确认可用,然后「连接」
|
||||
3. 浏览目录,点文件右侧菜单选择 **下载** / **下载并打开**
|
||||
4. 「传输」页查看实时速度;设置页可调并行流数与分块大小
|
||||
|
||||
下载保存位置:优先 `Download/SMBFast/`,受限存储设备回退到应用私有目录(设置页可见实际路径)。
|
||||
|
||||
## 已知限制
|
||||
|
||||
- SMBJ 不支持 SMB3 Multichannel(多网卡聚合),多流并行在同一 TCP 连接上实现
|
||||
- 密码明文保存在应用私有 SharedPreferences(未加密)
|
||||
- 暂不支持 SMB over QUIC / 直连 TLS,未做流媒体边下边播
|
||||
|
||||
## 技术栈
|
||||
|
||||
Kotlin · Jetpack Compose (Material 3) · SMBJ 0.15.0 (SMB2/SMB3) · BouncyCastle · Gson · Coroutines
|
||||
Reference in New Issue
Block a user