# 真实数据测试指南 ## 📱 测试真实数据需要什么? ### ✅ 必须条件 1. **真实手机设备**(Android 或 iOS) - 模拟器无法获取真实的系统使用数据 - Web 平台不支持系统 API 2. **安装应用到手机** - 需要将应用安装到真实设备上 - 通过 USB 连接或构建 APK/IPA 安装 3. **授予系统权限** - Android: "使用情况访问权限" (Usage Access) - iOS: Screen Time API 权限 --- ## 🚀 测试步骤 ### 方式 1:USB 连接调试(推荐,最简单) #### Android 设备 ```bash # 1. 在手机上启用开发者选项和 USB 调试 # 设置 → 关于手机 → 连续点击"版本号"7次 # 设置 → 系统 → 开发者选项 → 启用"USB 调试" # 2. 用 USB 连接手机到电脑 # 3. 检查设备连接 flutter devices # 4. 运行应用到手机 flutter run -d # 或者直接运行(会自动选择设备) flutter run ``` #### iOS 设备(Mac 用户) ```bash # 1. 在 iPhone 上:设置 → 通用 → VPN与设备管理 → 信任电脑 # 2. 连接 iPhone 到 Mac # 3. 运行应用 flutter run -d ``` **优点:** - ✅ 实时调试 - ✅ 支持热重载 - ✅ 可以看到日志输出 - ✅ 无需手动安装 --- ### 方式 2:构建安装包(适合分享测试) #### Android APK ```bash # 1. 构建 APK flutter build apk # 2. APK 文件位置 # build/app/outputs/flutter-apk/app-release.apk # 3. 传输到手机并安装 # - 通过 USB 传输 # - 通过云盘/邮件发送 # - 通过 ADB 安装:adb install build/app/outputs/flutter-apk/app-release.apk ``` #### Android App Bundle(用于 Google Play) ```bash flutter build appbundle # 输出:build/app/outputs/bundle/release/app-release.aab ``` #### iOS(需要 Apple 开发者账号) ```bash # 开发版本 flutter build ios # 或者使用 Xcode 构建和签名 ``` **优点:** - ✅ 可以分享给他人测试 - ✅ 不需要连接电脑 - ✅ 可以测试真实使用场景 --- ## 🔐 权限设置 ### Android 权限设置 应用首次运行时,需要引导用户授予权限: 1. **应用内权限请求** - 应用会自动显示权限引导界面 - 点击"去设置"按钮 2. **系统设置页面** - 自动跳转到"使用情况访问权限"设置 - 找到 "AutoTime Tracker" - 开启"允许使用情况访问" 3. **验证权限** - 返回应用 - 应用会自动检测权限状态 - 如果已授予,进入主界面 **手动设置路径:** ``` 设置 → 应用 → 特殊应用访问 → 使用情况访问权限 → AutoTime Tracker → 开启 ``` ### iOS 权限设置 1. **应用内权限请求** - 应用会自动请求 Screen Time API 权限 - 用户需要明确授权 2. **系统设置** - 设置 → 屏幕使用时间 → 应用限制 - 确保应用有访问权限 --- ## 📊 测试真实数据 ### 1. 安装并运行应用 ```bash # 连接设备后 flutter run ``` ### 2. 授予权限 - 按照应用内的引导完成权限设置 ### 3. 使用手机一段时间 - 正常使用手机上的各种应用 - 系统会自动记录使用数据 ### 4. 查看数据 - 打开应用 - 查看"Today"页面,应该能看到真实的使用数据 - 查看"Stats"页面,查看历史统计 ### 5. 验证功能 - ✅ 应用使用时间是否正确 - ✅ 分类是否正确 - ✅ 统计数据是否准确 - ✅ 图表是否正常显示 --- ## 🧪 测试场景 ### 场景 1:基础功能测试 1. 安装应用 2. 授予权限 3. 使用手机 1-2 小时 4. 打开应用查看数据 ### 场景 2:分类测试 1. 使用不同类型的应用(工作、娱乐、社交等) 2. 检查分类是否正确 3. 手动调整分类(设置 → 应用分类) 4. 验证分类是否生效 ### 场景 3:目标测试 1. 设置每日总时长目标 2. 设置分类时间限制 3. 使用手机一段时间 4. 检查目标完成情况 ### 场景 4:数据导出测试 1. 使用应用一段时间,积累数据 2. 进入设置 → 数据导出 3. 导出 CSV 和统计报告 4. 验证导出文件内容 --- ## ⚠️ 注意事项 ### 数据延迟 - **Android**: 使用情况数据可能有几分钟延迟 - **iOS**: Screen Time 数据更新较慢 - **建议**: 使用手机一段时间后再查看数据 ### 权限限制 - **Android**: 某些系统应用可能无法追踪 - **iOS**: Screen Time API 有严格限制 - **建议**: 测试时使用常见的第三方应用 ### 后台限制 - 应用需要在后台运行才能持续追踪 - 某些手机系统会限制后台运行 - **建议**: 将应用添加到"白名单"或"不受限制" ### 电池优化 - 某些手机会自动优化电池,可能影响后台追踪 - **建议**: 在电池设置中,将应用设置为"不受限制" --- ## 🔧 调试技巧 ### 查看日志 ```bash # 运行应用时查看日志 flutter run # 或者单独查看日志 flutter logs ``` ### 检查权限状态 在应用中: - 设置 → 权限设置 - 查看权限是否已授予 ### 验证数据同步 1. 使用手机一段时间 2. 打开应用 3. 点击刷新按钮 4. 查看数据是否更新 --- ## 📝 测试清单 ### 安装测试 - [ ] 应用可以正常安装 - [ ] 应用可以正常启动 - [ ] 没有崩溃或错误 ### 权限测试 - [ ] 权限引导界面正常显示 - [ ] 可以跳转到系统设置 - [ ] 权限授予后应用可以正常使用 ### 数据追踪测试 - [ ] 可以获取应用使用数据 - [ ] 数据时间戳正确 - [ ] 应用名称显示正确 - [ ] 使用时长计算准确 ### 分类测试 - [ ] 自动分类正确 - [ ] 可以手动修改分类 - [ ] 分类修改后生效 ### 统计测试 - [ ] 今日统计正确 - [ ] 周统计正确 - [ ] 图表显示正常 - [ ] 效率评分计算正确 ### 功能测试 - [ ] 目标设置功能正常 - [ ] 数据导出功能正常 - [ ] 设置保存正常 --- ## 🎯 快速测试流程 ```bash # 1. 连接手机 flutter devices # 2. 运行应用 flutter run # 3. 在手机上: # - 授予权限 # - 使用手机 10-15 分钟 # - 打开应用查看数据 # 4. 验证数据是否正确显示 ``` --- ## 💡 提示 1. **首次测试建议使用物理设备**,模拟器无法获取真实系统数据 2. **测试前确保手机有足够的电量**,避免测试中断 3. **建议测试多种应用类型**,验证分类功能 4. **测试时间建议 1-2 小时**,积累足够的数据 5. **可以导出数据验证准确性**,检查 CSV 文件内容 --- ## 🐛 常见问题 ### Q: 应用显示"无数据" **A:** - 检查权限是否已授予 - 等待几分钟,数据可能有延迟 - 使用一些应用,确保有使用记录 ### Q: 某些应用无法追踪 **A:** - 系统应用可能无法追踪(这是系统限制) - 某些受保护的应用可能无法追踪 - 这是正常现象 ### Q: 数据不准确 **A:** - 检查时间同步是否正确 - 验证应用分类是否正确 - 检查是否有重复记录 ### Q: 应用在后台被杀死 **A:** - 将应用添加到电池优化白名单 - 允许应用后台运行 - 检查系统后台限制设置 --- **总结:测试真实数据需要安装到真实手机设备上,通过 USB 连接运行是最简单的方式。** 📱