name: mobile-app-debugging description: 移动应用调试用于iOS、Android、跨平台框架。适用于崩溃、内存泄漏、性能问题、网络问题,或遇到Xcode Instruments、Android Profiler、React Native调试器、原生桥错误。
移动应用调试
调试iOS、Android和跨平台框架的移动应用程序。
iOS调试 (Xcode)
// 带条件的断点
// 右键单击断点 > 编辑 > 条件: userId == "123"
// LLDB命令
po variable // 打印对象
p expression // 评估表达式
bt // 回溯
内存调试
- 使用内存图调试器查找循环引用
- 启用僵尸对象处理使用后释放错误
- 使用Instruments > Leaks进行剖析
Android调试 (Android Studio)
// Logcat过滤
Log.d("TAG", "调试消息")
Log.e("TAG", "错误", exception)
// 过滤: tag:MyApp level:error
常见问题
- ANR:检查主线程阻塞
- OOM:使用内存剖析器剖析
- 布局问题:使用布局检查器
React Native
// 远程调试
// 摇动设备 > 远程调试JS
// 控制台日志
console.log('调试:', variable);
console.warn('警告');
console.error('错误');
// 性能监视器
// 摇动 > 显示性能监视器
// 目标:60 FPS,每帧<16毫秒
网络调试
// 拦截请求
XMLHttpRequest.prototype._send = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function() {
console.log('请求:', this._url);
this._send.apply(this, arguments);
};
调试清单
- [ ] 在物理设备上测试(不仅限于模拟器)
- [ ] 在旧设备型号上测试
- [ ] 模拟慢速3G网络
- [ ] 测试离线模式
- [ ] 检查负载下的内存
- [ ] 测试旋转和安全区域
- [ ] 验证60 FPS目标
性能目标
| 指标 | 目标 |
|---|---|
| 帧率 | 60 FPS (16毫秒/帧) |
| 内存 | <100MB |
| 应用启动 | <2秒 |