Files
zhini_im/Android手机调试完整指南.md

218 lines
5.3 KiB
Markdown
Raw Normal View History

# Android手机调试完整指南
## 调试环境准备
### 1. ADB连接设置
```bash
# 检查ADB连接
adb devices
# 如果设备未显示,尝试以下命令:
adb kill-server
adb start-server
adb devices
```
### 2. 启用USB调试
1. **设置 → 关于手机 → 版本号** (连续点击7次启用开发者选项)
2. **设置 → 开发者选项 → USB调试** (开启)
3. **设置 → 开发者选项 → USB安装** (开启)
## 小米推送离线消息调试步骤
### 步骤1: 清除应用数据并重新安装
```bash
# 清除应用数据
adb shell pm clear com.xunpaisoft.social
# 安装修复后的APK
adb install -r app-release.apk
```
### 步骤2: 启动应用并监控推送注册
```bash
# 清除日志
adb logcat -c
# 启动应用并登录,然后监控推送注册日志
adb logcat | grep "开始初始化\|小米推送注册成功\|设备Token设置成功\|setDeviceToken"
```
**关键日志**:
- `开始初始化小米推送服务` - 推送服务初始化
- `小米推送注册成功RegID: xxxxx` - 推送注册成功
- `设备Token设置成功: xxxxx` - 设备Token设置成功
### 步骤3: 测试离线消息
```bash
# 完全关闭应用
adb shell am force-stop com.xunpaisoft.social
# 监控推送消息日志
adb logcat | grep "MiPush\|onNotificationMessageArrived\|onReceivePassThroughMessage\|showMainActivity\|forceConnect"
```
**关键日志**:
- `onNotificationMessageArrived: xxxxx` - 通知消息到达
- `onReceivePassThroughMessage: xxxxx` - 透传消息到达
- `showMainActivity: started via action` - 应用启动成功
- `forceConnect called successfully` - 消息拉取成功
### 步骤4: 检查系统权限
```bash
# 检查应用权限
adb shell dumpsys package com.xunpaisoft.social | grep "permission"
# 检查推送服务状态
adb shell dumpsys package | grep "com.xiaomi.mipush"
```
## 调试脚本
### 1. 推送注册调试脚本
```bash
#!/bin/bash
echo "=== 小米推送注册调试 ==="
echo "1. 清除应用数据..."
adb shell pm clear com.xunpaisoft.social
echo "2. 清除日志..."
adb logcat -c
echo "3. 请启动应用并登录,然后按任意键继续..."
read -p "按任意键继续..."
echo "4. 监控推送注册日志..."
adb logcat | grep "开始初始化\|小米推送注册成功\|设备Token设置成功\|setDeviceToken"
```
### 2. 离线消息调试脚本
```bash
#!/bin/bash
echo "=== 小米推送离线消息调试 ==="
echo "1. 清除日志..."
adb logcat -c
echo "2. 请启动应用并登录,然后按任意键继续..."
read -p "按任意键继续..."
echo "3. 完全关闭应用..."
adb shell am force-stop com.xunpaisoft.social
echo "4. 监控推送消息日志..."
adb logcat | grep "MiPush\|onNotificationMessageArrived\|onReceivePassThroughMessage\|showMainActivity\|forceConnect"
```
### 3. 完整调试脚本
```bash
#!/bin/bash
echo "=== 小米推送完整调试 ==="
echo "1. 检查ADB连接..."
adb devices
echo "2. 清除应用数据..."
adb shell pm clear com.xunpaisoft.social
echo "3. 清除日志..."
adb logcat -c
echo "4. 请启动应用并登录,然后按任意键继续..."
read -p "按任意键继续..."
echo "5. 监控推送注册日志..."
adb logcat | grep "开始初始化\|小米推送注册成功\|设备Token设置成功\|setDeviceToken"
```
## 常见问题排查
### 问题1: ADB连接失败
**解决方案**:
1. 检查USB线是否支持数据传输
2. 检查USB调试是否已开启
3. 尝试不同的USB端口
4. 重启ADB服务
### 问题2: 推送注册失败
**解决方案**:
1. 检查网络连接
2. 检查APPID/APPKEY配置
3. 检查应用签名
4. 检查小米推送服务状态
### 问题3: 推送消息收不到
**解决方案**:
1. 检查系统权限设置
2. 检查电池优化设置
3. 检查自启动权限
4. 检查通知权限
### 问题4: 应用启动失败
**解决方案**:
1. 检查应用启动权限
2. 检查系统限制
3. 检查应用完整性
4. 检查系统版本兼容性
## 调试技巧
### 1. 使用详细日志
```bash
adb logcat -v time | grep "MiPush\|PushService\|showMainActivity\|forceConnect"
```
### 2. 监控特定进程
```bash
adb shell ps | grep "com.xunpaisoft.social"
```
### 3. 检查系统状态
```bash
adb shell dumpsys package com.xunpaisoft.social
```
### 4. 检查推送服务状态
```bash
adb shell dumpsys package | grep "com.xiaomi.mipush"
```
## 预期结果
### 推送注册成功日志
```
开始初始化小米推送服务
小米推送配置 - APPID: 2882303761520346070, APPKEY: 5522034658070
开始注册小米推送服务
小米推送服务注册请求已发送
小米推送注册成功RegID: xxxxx
设备Token设置成功: xxxxx
```
### 推送消息接收日志
```
onNotificationMessageArrived: xxxxx
showMainActivity: started via action
forceConnect called successfully
```
### 应用启动日志
```
showMainActivity: started via action
forceConnect called successfully
```
## 注意事项
1. **确保ADB连接稳定**: 避免调试过程中断开连接
2. **确保应用完整**: 使用修复后的APK进行测试
3. **确保系统权限**: 授予所有必要的系统权限
4. **确保网络连接**: 保持设备网络连接稳定
5. **确保推送服务**: 确保小米推送服务正常运行
## 联系支持
如果问题仍然存在,请提供以下信息:
1. 完整的日志输出
2. 设备型号和系统版本
3. 应用版本信息
4. 测试步骤和结果