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. **生产环境**: 使用标准配置,确保稳定性
|
||
|
||
---
|
||
|
||
*注意:模拟器环境的延迟主要来自虚拟化开销,真机环境下延迟会显著降低。* |