89 lines
2.2 KiB
Markdown
89 lines
2.2 KiB
Markdown
|
|
# 模拟器环境优化指南
|
|||
|
|
|
|||
|
|
## 🚀 已完成的优化
|
|||
|
|
|
|||
|
|
### 1. 应用层优化
|
|||
|
|
- ✅ 异步加载资源,避免主线程阻塞
|
|||
|
|
- ✅ 减少网络请求频率(15秒轮询)
|
|||
|
|
- ✅ 优化启动流程,立即显示内容
|
|||
|
|
- ✅ 添加ANR防护机制
|
|||
|
|
|
|||
|
|
### 2. 网络层优化
|
|||
|
|
- ✅ 模拟器专用超时配置(3秒连接,8秒读取)
|
|||
|
|
- ✅ 启用连接重试机制
|
|||
|
|
- ✅ 优化HTTP客户端配置
|
|||
|
|
|
|||
|
|
### 3. 流媒体服务器优化
|
|||
|
|
- ✅ 使用模拟器专用SRS配置
|
|||
|
|
- ✅ HLS分片时长降至1秒(极低延迟)
|
|||
|
|
- ✅ 减少缓冲区大小
|
|||
|
|
- ✅ 关闭GOP缓存
|
|||
|
|
|
|||
|
|
## 📱 模拟器设置建议
|
|||
|
|
|
|||
|
|
### Android Studio模拟器优化
|
|||
|
|
1. **硬件配置**
|
|||
|
|
- RAM: 至少4GB
|
|||
|
|
- VM heap: 512MB
|
|||
|
|
- Graphics: Hardware - GLES 2.0
|
|||
|
|
|
|||
|
|
2. **高级设置**
|
|||
|
|
- 启用 "Use Host GPU"
|
|||
|
|
- 启用 "Snapshot" 快速启动
|
|||
|
|
- 关闭不必要的传感器
|
|||
|
|
|
|||
|
|
### 推流设置(OBS)
|
|||
|
|
```
|
|||
|
|
服务器: rtmp://localhost:1935/live
|
|||
|
|
密钥: 从应用获取的streamKey
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**OBS优化设置:**
|
|||
|
|
- 关键帧间隔: 1秒
|
|||
|
|
- 码率: 1000-2000 kbps(模拟器环境建议较低)
|
|||
|
|
- 分辨率: 720p或更低
|
|||
|
|
- 编码器: x264(软编码,兼容性更好)
|
|||
|
|
|
|||
|
|
## ⚡ 延迟优化效果
|
|||
|
|
|
|||
|
|
| 配置项 | 优化前 | 优化后 |
|
|||
|
|
|--------|--------|--------|
|
|||
|
|
| HLS分片 | 10秒 | 1秒 |
|
|||
|
|
| 缓冲时长 | 30秒 | 3秒 |
|
|||
|
|
| 预期延迟 | 15-20秒 | 3-8秒 |
|
|||
|
|
|
|||
|
|
## 🔧 故障排除
|
|||
|
|
|
|||
|
|
### 如果仍然出现ANR
|
|||
|
|
1. 重启模拟器
|
|||
|
|
2. 清除应用数据
|
|||
|
|
3. 检查电脑性能(CPU/内存使用率)
|
|||
|
|
|
|||
|
|
### 如果延迟仍然很高
|
|||
|
|
1. 确认使用HTTP-FLV播放(延迟更低)
|
|||
|
|
2. 检查网络连接
|
|||
|
|
3. 尝试降低推流码率
|
|||
|
|
|
|||
|
|
### 切换回生产配置
|
|||
|
|
如需在真机上测试,修改docker-compose.yml:
|
|||
|
|
```yaml
|
|||
|
|
volumes:
|
|||
|
|
- ./docker/srs/srs.conf:/usr/local/srs/conf/srs.conf
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 📊 性能监控
|
|||
|
|
|
|||
|
|
可以通过以下方式监控性能:
|
|||
|
|
- SRS统计页面: http://localhost:8080/console/
|
|||
|
|
- Android Studio Profiler
|
|||
|
|
- 应用内的网络请求日志
|
|||
|
|
|
|||
|
|
## 💡 最佳实践
|
|||
|
|
|
|||
|
|
1. **开发阶段**: 使用模拟器配置,快速测试
|
|||
|
|
2. **测试阶段**: 切换到真机,验证实际性能
|
|||
|
|
3. **生产环境**: 使用标准配置,确保稳定性
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
*注意:模拟器环境的延迟主要来自虚拟化开销,真机环境下延迟会显著降低。*
|