在安卓设备上测试 AWS S3 下载速度的完整指南
在移动开发、边缘计算或网络性能调优场景中,有时我们需要直接在安卓设备上测试从云端(例如 AWS S3)下载文件的速度。本文将手把手教你如何利用 Termux 和 AWS CLI,在一台已 Root 或未 Root 的安卓设备上完成这一任务。
适用人群 :开发者、测试工程师、DevOps 工程师
所需工具:安卓手机、USB 数据线、电脑(用于 ADB)、AWS 账号(含访问密钥)
一、为什么要在安卓设备上测下载速度?
- 验证特定地区/运营商下对 AWS S3 的实际访问性能
- 模拟真实用户在移动端使用 App 时的网络体验
- 对比不同 CDN 或存储方案的实际效果
- 自动化测试脚本的一部分(如 CI/CD 中集成移动端网络检测)
二、准备工作
1. 硬件与网络要求
- 安卓设备(Android 7.0 及以上推荐)
- 设备已连接 Wi-Fi 或蜂窝数据(确保能访问互联网)
- 电脑与安卓设备通过 USB 连接,并开启 USB 调试(ADB)
2. 软件准备
- 在电脑上安装 ADB 工具
- 准备以下文件:
termux-app_v0.118.3+github-debug_arm64-v8a.apk(Termux 安装包)test-speed.sh(自定义测速脚本).aws目录(包含credentials和config文件,配置好 AWS 密钥)
💡 提示:
.aws/credentials文件内容示例:
[default] aws_access_key_id = YOUR_ACCESS_KEY aws_secret_access_key = YOUR_SECRET_KEY
三、部署测试环境
步骤 1:推送文件到安卓设备
bash
adb push .\test-speed.sh /sdcard/
adb push .\.aws /sdcard/
adb install .\termux-app_v0.118.3+github-debug_arm64-v8a.apk
步骤 2:启动 Termux
bash
adb shell am start -n com.termux/.app.TermuxActivity
若设备未安装 Termux,上述命令会自动打开刚安装的应用。
四、在 Termux 中配置环境
打开 Termux 应用后,依次执行以下命令:
bash
# 更新包管理器
pkg update
# 安装 Python 和 pip
pkg install python
pip install awscli
# 授予 Termux 存储权限(关键!否则无法读取 /sdcard)
termux-setup-storage
⚠️ 注意:
termux-setup-storage会弹出系统权限请求,请务必点击"允许"。
复制配置与脚本
bash
# 复制 AWS 配置
cp -r ~/storage/shared/.aws ~/
# 复制测速脚本
cp ~/storage/shared/test-speed.sh ~/
五、运行测速脚本
假设你的 test-speed.sh 内容如下(可自行定制):
bash
#!/bin/bash
URL="s3://your-bucket/large-file.zip"
OUTPUT="downloaded_file.zip"
echo "开始下载测试..."
START_TIME=$(date +%s.%N)
aws s3 cp $URL $OUTPUT
END_TIME=$(date +%s.%N)
DURATION=$(echo "$END_TIME - $START_TIME" | bc)
FILE_SIZE=$(stat -c%s "$OUTPUT")
SPEED=$(echo "scale=2; $FILE_SIZE / $DURATION / 1024 / 1024" | bc)
echo "下载耗时: $DURATION 秒"
echo "文件大小: $(($FILE_SIZE / 1024 / 1024)) MB"
echo "平均速度: $SPEED MB/s"
运行脚本:
bash
chmod +x test-speed.sh
bash test-speed.sh
六、常见问题与优化建议
❓ Q1:提示 "Permission denied"?
- 确保已运行
termux-setup-storage - 检查
.aws目录权限:chmod 600 ~/.aws/credentials
❓ Q2:aws cli 报错 "command not found"?
- 确认
pip install awscli成功完成 - 尝试使用
~/.local/bin/aws路径,或将其加入 PATH
💡 优化建议:
- 使用大文件(如 100MB+)以减少测量误差
- 多次运行取平均值
- 记录时间、网络类型(Wi-Fi/5G)、地理位置等元数据
七、结语
通过 Termux + AWS CLI 的组合,我们可以在几乎任何安卓设备上快速搭建一个轻量级的云服务测试环境。这种方法无需 Root,成本低,且高度可复现,非常适合现场网络诊断或自动化测试场景。