Skip to content

Android / Windows 功能与 Compose 共享对照 ​

更新日期:2026-10-14。以 app、core-ui、desktop-app 当前代码为依据;Android 是迁移基准,存在实现不等于本轮已逐项做真机验收。

判定方式 ​

  • 共享:Android 和 Windows 实际调用同一份 core-ui/commonMain Compose。
  • 部分共享:已有共同组件,但页面仍包含独立 Windows 布局。
  • 独立:Windows 页面另有实现;共享业务规则不算共享 UI。
  • 可用 / 部分 / 未接入:描述功能范围,与 UI 共享情况分别记录。
  • 平台适配允许保留:数据源、文件访问、窗口、Android 资源/触觉/TV 焦点、图片加载、Media3/libmpv/WebView2 等。迁移优先提取 Android 已有 Compose,平台适配层不复制布局。

对照表 ​

功能Android 基准Windows 代码现状Compose 共享后续缺口 / 顺序
导航、宽窄窗口、主题自适应导航、Material/iOS 风格可用;桌面外壳已全部改用 Material 3(原 M2 桥接已删除),与共享组件同一套颜色/字体/圆角令牌部分共享随页面迁移统一;避免另起主题系统
作品卡片、来源卡片、浮动预览封面、状态、详情预览可用共享基础组件各页面组装仍待统一
主页框架与 Hero自适应布局、多个 Hero 样式、栏目共享外层布局和标准 Hero;栏目组装仍单独实现部分共享P1:提取栏目;对齐其余 Hero 样式
鼠标、触控与横向拖拽触控滚动、Pager历史/推荐/Hero/更新/筛选支持鼠标拖动、惯性与吸附共享手势已完成本轮前置修复;新页面继续接入
来源浏览、搜索、动态筛选来源分组、搜索、筛选基础浏览、搜索、分页、标准筛选可用;打开某个源时来源栏本身也带内容类型与来源类型筛选,并沿用同一范围过滤作品部分共享P2:迁移整个浏览与筛选页面(含共享筛选控件)
界面文案全部取自 app/src/main/res(Weblate)共享界面经 UiStrings/LocalUiStrings 按 Android 资源名取词,Windows 用同一份目录导出,无重复翻译共享文案层(core-ui text 包、contentTypeTitle)Android 界面仍用 stringResource;逐屏迁移时切换到 uiString
订阅更新与推荐更新记录、推荐、追踪设置可用;后台执行与平台调度仍不同部分共享对齐页面组装及剩余设置
书架与历史查询、筛选、分类、批量操作查询、分类、来源/阅读状态筛选及排序可用;分类可新建/重命名/调序/删除(删除连带该分类的收藏记录,与 Android 一致)页面独立,卡片共享;分类增删改查在 core-libraryP3:提取页面与筛选;接入批量操作
详情页信息简介、标签、操作、章节分栏可用;浮动预览及自适应分栏共享;收藏按钮按 Android 语义双向切换(加入/取消收藏);简介下方的信息区(状态/评分/别名/标签)取自同一次详情应答,缺项省略,复制链接按钮把 Android 分享的链接写入系统剪贴板部分共享P1:信息正文与操作区仍待提取;标签暂无检索跳转
漫画阅读器章节目录列表/网格、分支、卷/组、当前章、已读/下载/书签状态已接共享主体;搜索标题/编号/卷号、倒序、网格、分支、分组、定位当前章和鼠标拖动可用目录主体、卡片、筛选轨道及面板共享;控制栏组装留在宿主P0 基础目录完成;多选、可折叠组、新章状态和额外来源标签仍待对齐
详情章节目录与阅读器复用章节布局和卡片已接共享目录主体:分支/分卷/搜索/倒序/网格/定位/批量模式,元数据作为列表首项共享 ChapterDirectoryLayout、卡片与筛选轨道目录控件组装留在宿主;阅读器面板与详情面板共用同一批量命令
漫画章节批量管理多选、下载、书签、标为当前、删除本地章节详情目录的批量模式:切换选中、按当前筛选全选/清除,批量下载、标为已读(历史落最后一章)、添加/删除章节书签(全部选中章节已书签时按钮翻转为删除)、删除本地下载;单章另有溢出菜单部分共享(SourceLibrary.addChapterBookmark、removeBookmark)“标为当前”与标为已读在桌面是同一历史写入
漫画单页/双页/连续阅读翻页、方向、连续滚动、恢复可用;页组、缩放、平移、滚轮、点击区、进度恢复已接入场景/控件大量共享长章节内存预算、剩余格式区域解码、部分 Android 设置待补
漫画阅读设置布局、显示、颜色、手势、性能共享布局/显示面板;仅暴露引擎已支持的选项部分共享性能与更多设置仍独立;不展示空实现开关
漫画跨章与预取下一章、自动跨章、失败恢复已有同分支跨章、邻页和下一章预取;失败保留进度规则与场景共享持续做边界回归
漫画书签缩略图、跳转、管理保存、移除当前书签、跨章及像素位置恢复可用;详情页书签标签以页面缩略图网格展示,可点击跳转、单条删除或全部删除(图片经阅读器图片管线与磁盘索引,400k 像素/1024px 解码上限);章节级书签显示为“章节书签”卡片,缩略图取该章第一页;书签标签可进入多选(“选择书签”,对应 Android 长按),勾选后“删除所选”或全选删除列表与删除经共同 SourceLibrary.removeBookmark,章节书签经共同 addChapterBookmark书签多选删除已接
小说目录、控件、设置分组、搜索、定位、设置可用共享继续复用,不另建 Windows 面板
小说书签摘要、搜索、删除、正文定位已接入共同面板和定位规则;详情页书签标签用文本卡片(章节、摘要、百分比)跳转与删除共享面板/规则正文变化后的定位仍受文本匹配限制
小说正文引擎滚动/分页/双页、选择与注释等段落连续滚动与分页阅读均可用:分页按窗口与字号实测段落高度切页,滚轮/PageUp/PageDown/空格/Home/End 翻页、滑条按段落定位、页码显示当前页/总页,模式切换保持当前段落分页切行复用 reader-novel 的 splitNovelPageLineRanges;正文样式与测量共用同一 TextStyle双页、分页动画、选择注释与朗读仍待;目录已复用
视频播放与投屏Media3、字幕/音轨/速度/全屏/续播/投屏libmpv 对应能力及 DLNA 已有实现播放 UI 仍独立后续共享控制布局;原生播放与硬件需单独实测
超分与视频增强Android 原生模型/渲染后端ncnn 图像超分、Anime4K 等已接入原生桥设置部分共享模型/硬件验收不能只用 UI 测试替代
下载与离线阅读批量下载、队列、存储管理单章暂停/继续/重试/取消、离线阅读及旧元数据回收可用;详情页批量下载(全部/未读/翻译分支/前 N 章)、下载页的章/页/图片占用与批量暂停/继续/重试/移除、已完成章节导出 CBZ(单章与整批)、空闲自动回收未引用块、图片总磁盘预算与手动清理已接页面独立P6:共享队列 UI、导出、自动回收与图片预算已完成
扩展安装/卸载/更新多生态扩展、仓库管理安装、卸载、检查/全部更新、启动自动更新、忘记仓库(只删索引条目、已装扩展保留)已有代码页面独立P7:共享管理 UI;仓库删除已接,生态完整性待补;不能沿用 README 旧的“卸载未实现”结论
源设置与网页验证标准/自定义设置、WebView 验证标准设置;WebView2 Cookie/UA/验证已接入,定制控件有限页面独立共享标准表单;真实网站与定制控件另验收
备份与恢复图书馆、设置、外部格式等图书馆 ZIP 预览/合并/回滚;部分节及格式未接入页面独立,数据规则部分共享对齐剩余备份节与外部格式
云同步WebDAV、Google Drive、系统同步WebDAV 已接:备份页可填服务器/目录/账号、测试连接、上传当前图书馆并按保留数量清理、列远端备份、下载并走本地相同的预览/合并,可设自动备份间隔(应用内计时,按距上次成功上传的间隔决定)协议、远端分类/选取/保留规则共享 core-net;XML/日期解析也已共享Google Drive 与系统同步仍待;计时仅在应用运行期间有效
OCR、翻译、TTS已有 Android 功能与设置尚未完整接入 Windows未对齐复用已有 Compose 面板,平台引擎另适配
空间、界面插件及更多设置已有 Android 页面/导航能力尚未完整接入未对齐分项提取,避免复制整套导航
应用内更新检查更新、下载、安装更多页可检查发布频道、下载并校验、重启后覆盖安装;自动检查/自动下载/退出时安装可开关;--check-update 供打包脚本与 CI 在镜像内自查版本/频道/布局/发布结果规则独立(desktop-runtime 版本语义/清单/脚本),UI 独立已接 release/nightly 两个仓库与 SHA-256 校验;Authenticode 签名校验、增量更新与镜像/代理仍待
Windows 分发不适用EXE/JVM/原生桥便携包可构建平台能力实际 MSI 安装/升级/卸载、签名与发布验收待做

当前实施项:P0 漫画阅读器基础目录 ​

已迁移 app/.../details/ui/pager/chapters/compose/ChapterItemCard.kt 和 ChaptersScreen.kt 的 Compose 布局。Android 详情和阅读器继续调用原入口,内部改为共同组件;保留资源解析、触觉、TV 焦点、详情嵌套滚动和滚动条适配。Windows 阅读器移除独立列表,使用同一列表/网格、卡片和筛选轨道,接入既有分支/卷分组规则,补定位当前章、网格切换以及鼠标拖动。面板、标题、标签栏与搜索框也复用共同组件。

定位清除搜索并恢复当前章的分支,默认 null 分支不会被其他选择覆盖。当前章点击仅关闭目录,原阅读场景、页码和历史不变;其他章仍走原控制器加载。目录进度显示当前阅读分支内的序号/总章数。下载标记复用下载存储的章节身份判断,避免标题更新使已下载状态消失。

未命名且编号为 0/未知的章节在空查询时仍完整显示;未知编号不伪装成“第 0 章”。数字格式复用 parser-api 的 formatSimple,标题回退使用 Android 现有资源。标题、编号、小数编号与卷号搜索沿用共同规则。

已满足的门槛:两端调用共同组件;Android 编译通过;共同布局的列表/网格、定位、分组、重复 ID、卡片状态及输入行为有回归;真实 Windows 阅读器入口验证保持原加载、进度、返回和搜索快捷键语义。目标验证覆盖 520/1260 的完整阅读器和 340/960 的共同布局。

本项不代表“整个章节管理已完成”:可折叠组、新章标记和额外来源标签仍待对齐。单章的标为已读/未读与删除本地下载已通过卡片溢出菜单接入(对应 Android 长按菜单);批量模式复用同一批命令,只对当前筛选内的章节生效,章节级书签经 SourceLibrary.addChapterBookmark 写入(pageId 复用章节 id,无阅读位置),删除沿用逐条 removeBookmark。“标为当前”仍与标为已读共用历史写入。未接入的能力不伪装成可用控件。

代码与验证证据 ​

  • 主页共享入口:core-ui/.../home/HomeScreenLayout.kt、HomeHeroPager.kt、HomeHeroCard.kt;Android HomeScreen.kt / HomeHeroSection.kt 与 Windows DesktopHomePanel.kt 调用。
  • 鼠标拖动:core-ui/.../gestures/MouseDragScroll.kt;MouseDragScrollUiTest、DesktopHomeMouseGesturesTest、SharedHomeScreenTest 及真实桌面探针。
  • 章节:Android ChaptersScreenRoot.kt、ChaptersScreen.kt、ChapterItemCard.kt;Windows DesktopReaderPanels.kt、DesktopTabletChrome.kt;共同规则 ChapterGrouping.kt。
  • 新共同实现:ChapterDirectoryLayout.kt、共同 ChapterItemCard.kt、ChapterFilterChips;Windows 数据适配 DesktopReaderChaptersPanel.kt。SharedChapterDirectoryTest 与 DesktopMangaDirectoryProbe 覆盖真实输入与阅读器入口。
  • 小说:共同 NovelChapterDirectoryContent.kt、SharedNovelReaderSearchField 和书签面板;Windows DesktopNovelChaptersPanel.kt 为数据/颜色适配。
  • 扩展实际状态:DesktopController.setAutoUpdateExtensions/checkExtensionUpdates/applyUpdates/uninstall、ExtensionsPanel 以及 DesktopSession.uninstall。
  • 下载、备份、视频与其他能力以各自控制器/运行时实现为证据;“已有代码”不自动等于真实网站、硬件或安装验收通过。
  • 本轮最终验证:47 个不重复的目标测试通过,0 失败、0 跳过(共同规则 26、桌面 UI/适配 20、Windows 分发 1);Android 编译通过。漫画真实入口的重复运行按 1 个测试计数,宽窄窗口、主题和输入组合在这些测试内部覆盖。这是目标回归集合,不是全仓测试或所有功能均完成。
  • DesktopChapterPresentationTest 覆盖未命名/未知编号、小数编号、卷号、标题搜索与元数据变化后的章节身份;原主页历史拖拽、Hero、小说目录、漫画翻页与宽窄窗口进度回归继续通过。
  • 新版便携包已构建,并通过移到独立目录后、不依赖开发机运行时的真实原生窗口启动/关闭验证;Windows 实际安装/升级/卸载验收仍是表中独立待办。

迁移原则 ​

按可独立验证的功能逐项推进,优先 Android → core-ui → Windows 的真实复用。共享组件只处理布局、显示及输入;平台控制器继续负责数据和副作用。保留必要插槽而不增加第二套 Windows 布局或通用框架。每项完成后更新本表,注明测试和仍未对齐的范围。

Documentation for Kototoro