所有 1.x 版本的代码已经归档到 Git 的 v1 Tag。 App 本身可以覆盖安装并更新,由于一些文件结构发生改变,2.0 无法直接继承所有以前的数据。
- 历史记录索引需要重新手动构建。
- 工作区以外的上次打开的网页会全部丢失。
- EasyList 可能需要删掉重新添加,也可能不需要。
功能增修:
- 自定义界面里的按钮!
- 可以自定义页面的侧边栏!
- 更好的整体交互!
功能缺失:
- HarmonyOS 特有的互联(接续、抓起来分享……)目前还没有补全。
- 部分应用内功能(无关紧要的)目前还没有补全。
基于一切的历史遗产,我们决定基于现代的 HarmonyOS 环境重构冲浪喵!
这项工程(将)结合 Liny 三年来陆续掌握的 ArkUI 和 ArkTS 新技术(比如状态管理 V2) 重构冲浪喵的用户界面(UI)基础系统(管理喵)们:
-
历史管理(meowHistorian): a. 索引重构用时 - 24.7%; b. 索引文件占地 - 22.0%; c. 用了分块索引,载入用时 - 99.9%(其实是不用提前载入了,因为使用 fastbuffer 保证了效率,可以在查询时按需加载)
-
设置管理(MeowManagedSettings): a. 使用 @ObservedV2 装饰,可以直接感知设置项变化,不需要中间层状态变量来沟通 UI 了,提高开发效率和性能(轻微);
-
书签管理(meowBookmarkStash): a. 在 ChatGLM 等一众高手的协助下,重新构建了更快速、更安全的 HTML 解析器。 b. 配合优化的数据结构,载入用时 - 86.0%; c. 书签的读写使用 TaskPool,不会阻塞主线程(会稍微慢几毫秒 :P)。
以及,由于 TaskPool 的运用,应用从 onCreate 到 Index 加载完成的用时 - 17.4%(尽管感知不强),几乎追平空项目。
测试数据由 Liny 自己近一年的冲浪喵高强度使用产生,比较对象为 1.8.1 版本和全新重构版。 仅供参考,不能作为绝对的性能基准预期
这个项目的诞生起初的目的是为 Liny 自己升级 HarmonyOS NEXT 之后创造一个容身之处, 但是发现似乎大家都需要这么一个玩意,于是就开源出来给大家用了。
但是由于 Liny 自己事务安排的缘故,查看 Issue、更新可能都不太及时, 很多事情有时候都比较滞后,还请各位见谅。
如果你见到上一个 Commit 是在好几个星期、甚至几个月前, 也请不要轻易地认为这个项目死掉了, 因为 Liny 可能正好在这段时间潜心研究某些 新东西。
然后,解决拖更问题的最好办法其实是给这个项目 交一个 Issue, 这样 Liny 就会感到十分焦虑,就会决定先来更新了。
让我们一起说:谢谢 Issue!
:3

