Uninote
Uninote
用户根目录
brdr
common
programming
docs
tests
后端试题
问题讨论

mynote mobile

  • E:\uninote\mynote-mobile
  • codex://threads/01a0e1c3-2909-74b0-918b-a569f17c2f0d

flutter

  • codex://threads/01a0e0d3-4c80-7b10-84e3-ec3c8e50014a
  • codex://threads/01a0e17b-a100-7371-b81c-e58df73685e9
  • codex://threads/01a0deb3-6b89-75d0-bb79-d62ed461ae17
flutter clean
flutter pub get
重新构建 Windows

flutter --version
flutter doctor
adb version

sdkmanager --sdk_root=D:\Android\Sdk "system-images;android-35;default;x86_64"

flutter run

flutter build & install

flutter build apk --release && adb -s 4ZU0225916013604 install -r build\app\outputs\flutter-apk\app-release.apk && cp "build\app\outputs\flutter-apk\app-release.apk" x:\fe\tmp2\app-release.apk
flutter build apk --release
flutter build apk --release ; adb -s emulator-5554 install -r build\app\outputs\flutter-apk\app-release.apk
flutter build apk --release ; adb -s 4ZU0225916013604 install -r build\app\outputs\flutter-apk\app-release.apk
# xiaomi
flutter build apk --release ; adb -s 9e76c53d install -r build\app\outputs\flutter-apk\app-release.apk

flutter debug

  • codex://threads/01a0e6f2-4954-7430-a77f-519da2a61866

真机调试

flutter devices
flutter run -d <设备ID>

flutter build apk --release 在 Gradle 启动阶段失败,报错为 Unable to establish loopback connection

  • codex://threads/01a0f119-c0b7-7d52-8474-1b9dad9f1570
  • Completion Workflow
  • 已写入 AGENTS.md,后续构建直接设置 socket 临时目录,不再因历史故障跳过打包或重复询问。提交:ea64958。
    • 找到回环连接故障的一个可行绕法:把 Java 的 Unix socket 临时目录指向项目构建目录后,Selector.open() 自检已通过。我会用这个仅对当前进程生效的配置重新构建,继续真机验证。

avdmanager 模拟器 avd emulators

avdmanager create

avdmanager create avd -n t2 -k "system-images;android-35;default;x86_64"

卡死、重启、黑屏

adb kill-server
adb start-server

adb -s emulator-5554 emu kill
D:\Android\Sdk\emulator\emulator.exe -avd t1 -no-snapshot-load -no-snapshot-save
fastboot.forceColdBoot=yes
fastboot.forceFastBoot=no

如何在模拟器测试刚才创建的 app-release.apk

codex://threads/01a0e0d3-4c80-7b10-84e3-ec3c8e50014a

flutter emulators
flutter emulators --launch flutter_api35
flutter emulators --launch t1
adb devices
adb install -r "build\app\outputs\flutter-apk\app-release.apk"

flutter clean
flutter pub get
flutter build apk --release && adb -s 4ZU0225916013604 install -r build\app\outputs\flutter-apk\app-release.apk

模拟器 size 修改

https://chat.deepseek.com/a/chat/s/85c0ad64-c3b9-4f9d-9dc2-dc55e34cddaa

  • 如果必须修改现有 AVD 的默认分辨率,可以手动编辑配置文件:找到 ~/.android/avd/<设备名>.avd/config.ini,修改 hw.lcd.width、hw.lcd.height 和 hw.lcd.density 。不过手动改配置容易出问题,建议优先通过 Android Studio 的 AVD Manager 界面操作。

adb

adb pull /sdcard/mynote-e01-e04.xml
adb -s emulator-5554 emu kill
adb -s emulator-5554 emu avd name

日志 log

日志用bash解决乱码问题:

  • adb logcat -v time |grep mynote.tree

UI 测试

  • codex://threads/01a16c34-e7a7-7361-af7f-3fc2f5d7882a 补充编辑与预览 UI 测试
  • codex://threads/01a16c11-027d-78f0-a524-e4811e49dfcd 重构 UI 测试结构
  • codex://threads/01a16b26-41f1-7f52-bb52-a84ca2adf50d 定位下拉箭头
  • 类的名字不要用 用例E01E04 重构以便加入更多的用例。
  • 常驻抓取 nodes。调用依赖时,自动通过 ADB 注入服务。
    • 老方案:adb -s emulator-5554 shell toybox timeout -k 1 12 uiautomator dump /sdcard/mynote-e01-e04.xml

bounds="[8,24][112,52]" [left,top][right,bottom]

python test/ui/run.py

  • codex://threads/01a16cf7-3151-7b42-bc2a-4208e404bdde wait_for 抽取

清理删除所有的测试生成库

  • codex://threads/01a16c15-f61c-7542-bbc9-5e8a0a5d6226
  • codex://threads/01a1679a-deaf-7de3-bed3-e4873f290fcb 添加删除本地仓库功能
# 加 `--dry-run` 可预览; --device 可选
py -3 test/ui/cleanup.py --device emulator-5554

新建仓库红屏处理

  • codex://threads/01a16c60-44a1-7a43-858a-ab1be658615f

改为 unittest

  • codex://threads/01a16c66-d404-7781-8cf2-e1af8f242a41

显示编辑差异开关定位

  • codex://threads/01a17106-082b-7e72-aaf7-b29af26ccb7c
  • 没有再 xml 中

如果是 Flutter Widget 测试,直接按 tooltip 定位,项目已有此测试:E:/uninote/mynote-mobile/test/note_tabs_test.dart:106。

// 开启
await tester.tap(find.byTooltip('显示编辑差异:关'));
await tester.pumpAndSettle();
expect(find.byTooltip('显示编辑差异:开'), findsOneWidget);

// 关闭
await tester.tap(find.byTooltip('显示编辑差异:开'));
await tester.pumpAndSettle();
expect(find.byTooltip('显示编辑差异:关'), findsOneWidget);

flutter testing

  • codex://threads/01a16d08-93df-7a22-9258-477e666e8d7b
  • testing
# 只显示失败用例
flutter test --reporter failures-only

# 指定测试文件
flutter test test/line_diff_test.dart

# 指定用例名称(子串匹配)
flutter test test/line_diff_test.dart --plain-name "matches long text line diff fixtures"

# 精确匹配完整名称,包含 group 名称
flutter test --name '^完整用例名称$'

test-unit

log

点赞(0) 阅读(16) 举报
目录
标题