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"

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


-
flutter build apk --release
build\app\outputs\flutter-apk\
flutter_api35

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 build apk --release 在 Gradle 启动阶段失败,报错为 Unable to establish loopback connection

如何在模拟器测试刚才创建的 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"

# 卡死、重启
https://chat.deepseek.com/a/chat/s/c19dc65f-9d4f-4cd7-b42b-d5d49cc110de

flutter clean
flutter pub get
flutter build apk --release

PS E:\uninote\mynote-mobile> cp  "build\app\outputs\flutter-apk\app-release.apk" x:\fe\tmp

日志 log

日志用bash解决乱码问题:

  • adb logcat -v time |grep mynote.tree

前后导航支持

崩溃后无法build cpu 频率限制

  • codex://threads/01a0e672-5e9b-7061-9215-b805d413b819
  • 关闭了隐藏的 CPU 睿频并限制到 99%
  • ~/.gradle 文件夹内部有损坏
  • X:\all2\bat\cpu-limit.bat

迁移日志

  • 集中在 2026-9-27 - 2026-9-28,查看 codex sessions
  • X:\fe\tmp2

文件筛选与差异 && 文件树差异 迁移

  • 不需要迁移 git head 比较
  • codex://threads/01a0e7c4-1da6-70e3-aff3-69c1cf9b2e0f

将打开文件筛选的那个按钮也放一个到大纲按钮左边。

  • codex://threads/01a0fccf-dd6b-78d2-9ed4-81cfb6f7c5e2
  • 筛选后要重新计算差异

预览页面的差异高亮:参考 pc 版本当前行高亮算法计算对应的预览页部分

  • codex://threads/01a0f13d-6289-7ac0-b110-f57744844184

性能优化

mobile 优化尝试

2b0d4a5..34a711d 尝试失败,先放放,1s时间还是可以接受

  • 文件树比较

  • git status 优化 供参考,有问题

  • 5.7 文件树差异

  • 相当于是要优化每次 git status 的计算量,缓存当前文件大小以及修改时间。是否和 mynote HEAD 对应的内容相等

  • 这样就可以优化为,首先 status 显示有差异的文件肯定是要全部进行比较的,然后根据用户指定的时间拿到的版本,如果是最后一个更改的版本,则不需要读取和比较。

启动优化

  • codex://threads/01a0ef8d-cef0-7062-a3e4-aece02f64f41
  • 避免网络请求、全文件扫描

misc todo --

  • 再按一次返回主界面,以及提示。
  • 桌面端可以启动本地服务作为服务器然后手机就可以同步到电脑上。
  • 差异视图大纲不能定位。 1
    • codex://threads/01a0ef76-c6ab-7553-9f32-ad55fc02eec2

横屏全屏

  • codex://threads/01a0ef7c-ba96-7591-ab1c-86005ce9c0d0
  • codex://threads/01a0f2ef-0677-7781-94ea-31ee5571ad6e
  • 全屏模式下,大纲弹窗和文件选择弹窗的高度占满屏幕的高度。
  • 收藏夹、搜索框同样处理

自动同步

  • codex://threads/01a0ef80-7c2c-7f53-9b43-8780256afc59
  • 同步时只锁定不能编辑,增删文件,其他操作要放开

收藏与同步

  • 5.5 收藏夹
  • codex://threads/01a0ef9b-b585-7ad0-bf9f-31d6d4ba62d9
  • 除了失效收藏整理都迁移了

切换大纲收藏

  • 预览界面,每个大纲后面加一个五角星的收藏按钮,可以直接切换大纲收藏。

  • 下拉菜单,收藏下面再加一个大纲收藏切换菜单项

  • 大纲收藏:用户收藏、取消收藏先保留在本机,不要同步调用接口,现在断网后反应很慢;其他需要同步的数据也是如此处理

    • codex://threads/01a0f04f-4f9d-7e13-83f6-40fd5e879581

收藏卡顿优化

分析有哪些操作会等待网络请求造成卡顿?

文件树差异视图支持双指缩放

  • 缩放值共享:调整一个,其他跟着调整。
  • codex://threads/01a0ef9c-c495-7613-b6a1-6a4de1d4cdc9
  • “当前差异”页面、“文件树差异”页面都支持

标签优化

  • codex://threads/01a0f153-6690-7c51-894d-c58772b78549

  • codex://threads/01a0f19d-aa9c-7572-83c2-3f031fc474b1

  • 标签列表加入一个固定按钮,点击后固定、取消固定此标签。

    • 固定的标签在列表置顶
  • 现有的每个标签单独展示的方案改为只展示一个标签项。这个标签的宽度固定大概能展示到 8 个字符即可,单击这个标签则展示标签列表。

    • 点击标签的×按钮,则关闭当前标签,显式下一个标签(从标签列表中选一个非固定的)
  • 固定的标签依次展示到这个标签的右侧。然后提供一个解除固定的按钮。

  • 标签的按钮尽可能少占据空间:保证固定标签能尽可能多的展示。

    • 固定标签只取文件名的第一个字符
    • 固定按钮平时都隐藏,只有当点击按钮时才在标签的下方显示一个浮动的固定按钮,点击页面任何一个地方隐藏此按钮。
    • 按钮内外间距也缩小
    • 普通标签页长按快捷固定当前页;固定标签页长按快捷取消固定

变更:

  • 点击不再显示固定按钮,直接固定、取消固定即可。长按还是按照之前的显示tooltip。
  • 切换标签后,通过Toast显示一下文件名、路径。

最终:标签上的单击事件不需要等待双击事件的判定,直接响应,要不然显得很卡顿,你有更好的建议没?

  • 普通标签页长按改为切换标签,固定标签保持不动。 ==

界面布局优化

  • codex://threads/01a0f261-2af2-7742-b8de-61d6653b542f
  • codex://threads/01a0f216-2934-7b31-9436-ebc32192f3e1
  • 这里三个按钮改为图标的形式,不要文字(放toast中)。保存按钮的“保存”文字一样处理。
  • 最左侧的“编辑并显示差异”,去掉这个按钮。仅保留“编辑”。 改为在下拉菜单当中增加一个选项。当选中编辑时,这个选项可用。默认不选择,就不显示差异。
  • 按钮的内边距统一为 0.5em

垂直紧凑,手动调整 + cc:0036782...4d8c5ee

移植pc同步中心,将这些也放进去

  • codex://threads/01a0f140-2541-7bb1-9b50-d4f29de0e108
  • 顶部“刷新远端列表”按钮应该放在远端笔记库旁边,左侧弹出层和同步中心都应该要加上。
  • 左侧弹出层的按钮和仓库名合并成一个,不需要按钮了,直接点击仓库名就展开弹出层。
  • 顶部按钮,按钮间距也缩小。

line diff 测试数据解析:

  • codex://threads/01a0f7f6-c49a-7373-a352-ef373bf4df67
  • save 另存历史版本
  • test\data\line-diffs.txt
  • 这个文件包含长文本测试数据,每一条用例用<=======================>分隔
  • 每一条用例分三段,每一段用这个<----------------------->分隔。
  • 其中前两段是用于做差异比较的文本,第3段是差异比较的预期输出结果。
  • 将这个测试用例加入到现有的测试用例中,并调整现有的算法以匹配这个预期结果。
  • 每行以<====//开头的是注释

expected diff 生成,再手动调整

$ git diff --no-index  5.txt 6.txt
# or
$ diff  5.txt 6.txt

差异视图可以将前面的加减号省略了,因为已经有颜色表示了。

codex://threads/01a0f9d3-9038-75e0-81ed-cfeba8031acf

状态记录与恢复:

  • codex://threads/01a0fcb4-931e-7d71-a67b-af3e071decaa
  • 编辑按钮的显示编辑差异的这个选项改成一个按钮。切换是否两种状态。
    • 这个状态还是同文章绑定,并且需要记录状态,重启后恢复。参考 PC 版本。
    • 预览界面也可以切换这个选项
  • 上次打开的仓库也需要重启后恢复

预览、差异视图也要语法高亮

  • 简单版本:只需要 h1 - h6 高亮,颜色同编辑界面
  • codex://threads/01a1063c-2b3a-7b40-a855-448a51e9c23f

迁移pc版语法高亮

布局优化调整

  • 左边这个。。。按钮,当有遮挡下方时,改变渐变透明背景色,以提示用户下方可以拖动
  • 剪贴板图片

mp3 player

  • codex://threads/01a10726-1525-7301-bb5f-2cf0b6ff3765
  • MP3 播放器
  • 迁移这个 web MP3 播放器项目的功能。
  • 项目地址:E:\projects\mp3player
  • 入口文件:mp3player.htm
  • 线上访问:http://mp3.uninote.com.cn/mp3player.htm?dir=2
  • 剪贴板图片
  • 菜单加一个入口,进入独立页面
  • 支持蓝牙耳机播放控制
  • 当开启"单击正文控制播放"时,双击/长按就不要选择文本;改为双指、多指长按可以选择文本。
  • 回退可以跨越当前 MP3,比如回退 5 秒,但当前处在第 2 秒,则回退到上一个 mp3 的倒数第 3 秒;类似的也可以前进到下个 mp3。

支持的手势:

手势 开启“单击正文控制播放” 关闭时
单指单击正文 播放/暂停;有选区时先清除选区 不控制播放
单指双击正文上半区 后退指定秒数,不选字 仍执行后退
单指双击正文下半区 前进指定秒数,不选字 仍执行前进
单指长按正文 不选字、不控制播放 原生文本选择
双指或多指长按 选择首个手指位置的词,显示复制菜单 未额外定义多指操作
上下滑动正文 滚动阅读,不控制播放 相同
拖动选区手柄 调整文本选区 相同
点击或拖动进度条 定位当前 MP3 的播放位置 相同

新增手势:左滑 上一首;右滑 下一首 -- 正文横滑切曲方案

快速甩动 https://chat.deepseek.com/a/chat/s/bb194887-d14b-4c3b-8f92-8cb5febf2821

建议采用“**正文横滑,松手切曲**”:

- **方向按你的设定**:左滑上一首,右滑下一首。
- **只在正文区域生效**:单指且没有文本选区时识别;多指、选区手柄和进度条不触发切曲。
- **先判断方向**:水平位移明显大于垂直位移(建议至少 1.5 倍)才识别,避免上下阅读时误切曲。
- **留出触发距离**:建议正文宽度的 20%,最小 60、最大 100 dp;不足距离松手就取消。第一版先不加“快速甩动”规则。
- **给轻量反馈**:达到阈值时显示小箭头和“上一首/下一首”,轻振一次;松手后切曲,不让整段正文跟着移动。
- **一次滑动只切一首**:加载期间不再接收切曲,切换后保持原来的播放或暂停状态。

到列表边界时,列表循环模式首尾相接;其他模式提示“已经是第一首/最后一首”,避免重新加载当前曲目。

录音

  • codex://threads/01a107cf-92f3-7303-86ce-164d699f4423
  • 录音支持,添加一个录音按钮(相机左边),点击后录入用户的语音,就像微信的语音聊天一样,录音以附件的形式存储,同样支持云同步。
  • 显示完整语音条,要包括倍速设置、可拖进度,倍速设置全局设定,重启恢复
  • 可以暂停,点击暂停就暂停录音。

进度、多音频播放、共享播放

  • codex://threads/01a11134-ad5f-7fb1-9c57-9db9292c3164
  • 切换播放进度接续

根因是分段 M4A 缺少跳转索引,导致时长错误、无法续播。现在生成带索引的临时播放副本,原附件不变。模拟器验证 A→B→A 后,A 从之前的 1.706 秒续播。

语音识别、豆包语音转文字

  • codex://threads/01a107e2-bc3b-79d0-b44c-567d2cb25622
  • 在操作菜单加一个语音转文字的批量转换功能,点击后将当前文件的所有语音批量调用语音转文字功能。
    • 批量转换期间禁止编辑,加一个进度提示界面
  • 命名规则换成日期、时间、时分秒。如果文件已经存在,则后面再加-2/3...
    • 格式:20260909-170901
  • appid:6154746676
  • Access Token:l6bpYPpHBtFEwfwfkXhQkZ5YhTc4eTN_
  • 重复插入 codex://threads/01a110b4-9a3b-7300-a55d-6db27975ae7e

实时语音转录

拍照插入图片优化

  • codex://threads/01a10a21-e5ca-7d62-b1ca-40e9ecaa37ab
  • 编辑器拍照插入图片 相机 camera
  • 照片的命名规则是什么?是用的哈希值吗?
  • 命名规则换成日期、时间、时分秒。如果文件已经存在,则后面再加-2/3...
    • 格式:20260909-170901
  • 文件名在插入时就确定下来,这样就不用等待后台图片转换完成也不用锁定笔记,可以继续编辑。
  • 取消图片转换完成后的提示。改为在插入界面提示文案追加: 未完成格式转换的将在后台转换

======================= 上面的是已完成的

less todo

悬浮菜单,拖动识别手势

  • 添加一个悬浮菜单,平时折叠起来,点击后垂直展开,可以拖动。

迁移pc功能:错别字修改

misc todo

写死的修改:

  final _endpoint = TextEditingController(text: 'https://192.168.0.223:8787');
  final _email = TextEditingController(text: '28488238@qq.com');
  final _password = TextEditingController(text: 'qwer0987qw');

搜索优化

规范差异:两种。

详细差异视图 差异高亮选项 统一代码注释,变量命名,文档等各个环节。

优化

关闭全部文件 新建按钮放下方菜单,“移动或重命名”前

自查代码

。一、根据最近的修改,看看有没有什么可以进行的关联修改。二、根据最新的规范检查。三,先把检查范围限定在首页的编辑、预览、差异三种视图核心功能。 先给方案,记录到新文档中

msic

  • 招聘爬虫。
  • 各种demo全集。
  • 各种自动化测试。
  • MP 3player移植。
  • 编辑预览的缩放比例没有重启后恢复。
  • 自查代码根据文档。
  • 编辑页开启只读模式则点击不会弹出软键盘,双击才进入编辑模式。
  • 微信聊天机器人总结聊天记录。

misc

标签列表展开后的关闭按钮需要点击两次才能关闭一个标签。

点击查看大图支持双指缩放

移动端。设置中心。图片设置语音识别设置放一起。 退出登录也放设置里面。

预览,fenced code 文件路径含有空格时展示不全:X:\project\Visual Studio Projects\FindHelper\FindHelper\SelForm.cs 剪贴板图片

同步效率优化,参考 pc 版本

tmptest

录音插入后播放:6秒长的语音,进度条只有1秒 剪贴板图片

现在左侧文件树的刷新,有时候会自动刷,有时候又不会。这个机制是怎样的?描述一下。更新到文档中

  • codex://threads/01a111bc-5124-7191-85bf-a97d88676994

mynote-client

mynote-mobile-log

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