Skip to content

Releases: letmedothis/Legado_Max

阅读Max开发版 3.26.091617

Pre-release

Choose a tag to compare

版本说明

这是 my-changes 开发分支的自动构建版本,包含测试版、兼容版、共存版和调试版。

  • 版本号:3.26.091617
  • 提交:2d7637559d013c5c20dd63377e817f299cd3389c
  • 分支:my-changes

版本类型

类型 Gradle 变体 用途
测试版 appMaxRelease Max 主开发版本
共存版 appSRelease 与其他版本共存
兼容版 appLegacyRelease 兼容原版包名
调试版 appMaxDebug 无混淆,便于调试和收集日志

架构说明

Release 版本包含 arm64-v8a、armeabi-v7a 和 universal 三种 APK;调试版按项目默认配置生成 universal 通用包。若不确定设备架构,请选择 universal。

更新内容(本次推送的全部提交)

其他

  • perf(Markdown): 优化大型本地 Markdown 的目录解析与阅读分块 (2d76375)
    • 以偏移量引用原文,章节内容按需切片,避免按行副本
    • 超大章节按安全断点拆分为虚拟章节,单次排版不超过 512KB
    • 缓存章节渲染结果,翻页不再重复转换
    • 章节新增 markdownHeadingInContent 变量,兼容旧章节数据
      变更文件:
    • M app/src/main/assets/web/help/md/updateLog.md
    • M app/src/main/java/io/legado/app/model/localBook/MarkdownDocumentParser.kt
    • M app/src/main/java/io/legado/app/model/localBook/MarkdownFile.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/provider/TextChapterLayout.kt
    • M app/src/test/java/io/legado/app/model/localBook/MarkdownDocumentParserTest.kt

Assets

APK 文件名中的版本类型和 ABI 标识对应上面的说明。

阅读Max开发版 3.26.091616

Pre-release

Choose a tag to compare

版本说明

这是 my-changes 开发分支的自动构建版本,包含测试版、兼容版、共存版和调试版。

  • 版本号:3.26.091616
  • 提交:754cee8f6f2258028ddcca8bbf25330695ecb903
  • 分支:my-changes

版本类型

类型 Gradle 变体 用途
测试版 appMaxRelease Max 主开发版本
共存版 appSRelease 与其他版本共存
兼容版 appLegacyRelease 兼容原版包名
调试版 appMaxDebug 无混淆,便于调试和收集日志

架构说明

Release 版本包含 arm64-v8a、armeabi-v7a 和 universal 三种 APK;调试版按项目默认配置生成 universal 通用包。若不确定设备架构,请选择 universal。

更新内容(本次推送的全部提交)

功能更新

  • feat(Markdown): 支持本地文档阅读 (754cee8)
    Signed-off-by: letmedothis 1939436280@qq.com
    变更文件:
    • M app/src/main/assets/web/help/md/readMenuHelp.md
    • M app/src/main/assets/web/help/md/updateLog.md
    • M app/src/main/java/io/legado/app/model/ImageProvider.kt
    • M app/src/main/java/io/legado/app/model/localBook/LocalBook.kt
    • M app/src/main/java/io/legado/app/model/localBook/MarkdownDocumentParser.kt
    • M app/src/main/java/io/legado/app/model/localBook/MarkdownFile.kt
    • A app/src/main/java/io/legado/app/model/localBook/MarkdownPathResolver.kt
    • M app/src/main/java/io/legado/app/model/localBook/README.md
    • M app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt
    • M app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/provider/TextChapterLayout.kt
    • M app/src/main/java/io/legado/app/ui/book/toc/ChapterListAdapter.kt
    • M app/src/main/java/io/legado/app/ui/file/HandleFileActivity.kt
    • A app/src/test/java/io/legado/app/model/localBook/MarkdownBookRecognitionTest.kt
    • M app/src/test/java/io/legado/app/model/localBook/MarkdownDocumentParserTest.kt
    • A app/src/test/java/io/legado/app/model/localBook/MarkdownPathResolverTest.kt

Assets

APK 文件名中的版本类型和 ABI 标识对应上面的说明。

阅读Max开发版 3.26.091615

Pre-release

Choose a tag to compare

版本说明

这是 my-changes 开发分支的自动构建版本,包含测试版、兼容版、共存版和调试版。

  • 版本号:3.26.091615
  • 提交:6f0ce77e1cf39c87009b4d8586569af76e36ebf9
  • 分支:my-changes

版本类型

类型 Gradle 变体 用途
测试版 appMaxRelease Max 主开发版本
共存版 appSRelease 与其他版本共存
兼容版 appLegacyRelease 兼容原版包名
调试版 appMaxDebug 无混淆,便于调试和收集日志

架构说明

Release 版本包含 arm64-v8a、armeabi-v7a 和 universal 三种 APK;调试版按项目默认配置生成 universal 通用包。若不确定设备架构,请选择 universal。

更新内容(本次推送的全部提交)

问题修复

  • fix(EPUB): 修复部分本地 EPUB 注解无法显示并统一内链解析 (6f0ce77)
    变更文件:
    • M app/src/main/assets/web/help/md/updateLog.md
    • M app/src/main/java/io/legado/app/model/localBook/EpubContentCache.kt
    • M app/src/main/java/io/legado/app/model/localBook/EpubFile.kt
    • M app/src/main/java/io/legado/app/model/localBook/EpubFootnoteLink.kt
    • M app/src/main/java/io/legado/app/model/localBook/EpubFootnoteProcessor.kt
    • A app/src/main/java/io/legado/app/model/localBook/EpubHrefResolver.kt
    • M app/src/main/java/io/legado/app/model/localBook/README.md
    • M app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt
    • M app/src/test/java/io/legado/app/model/localBook/EpubContentCacheTest.kt
    • M app/src/test/java/io/legado/app/model/localBook/EpubFootnoteLinkTest.kt
    • M app/src/test/java/io/legado/app/model/localBook/EpubFootnoteProcessorTest.kt
    • A app/src/test/java/io/legado/app/model/localBook/EpubHrefResolverTest.kt

Assets

APK 文件名中的版本类型和 ABI 标识对应上面的说明。

阅读Max开发版 3.26.091610

Pre-release

Choose a tag to compare

版本说明

这是 my-changes 开发分支的自动构建版本,包含测试版、兼容版、共存版和调试版。

  • 版本号:3.26.091610
  • 提交:781dae9fbe3120fce51038e17e59a1b552f56975
  • 分支:my-changes

版本类型

类型 Gradle 变体 用途
测试版 appMaxRelease Max 主开发版本
共存版 appSRelease 与其他版本共存
兼容版 appLegacyRelease 兼容原版包名
调试版 appMaxDebug 无混淆,便于调试和收集日志

架构说明

Release 版本包含 arm64-v8a、armeabi-v7a 和 universal 三种 APK;调试版按项目默认配置生成 universal 通用包。若不确定设备架构,请选择 universal。

更新内容(本次推送的全部提交)

构建与发布

  • ci(提交校验): 豁免历史非规范提交 (781dae9)
    变更文件:
    • M .commitlintrc.js

Assets

APK 文件名中的版本类型和 ABI 标识对应上面的说明。

legado_app_3.26.091608

Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Sep 00:35

⚠️ 重要提醒:安装前请务必备份您的数据!

📦 APK版本说明:

版本类型 文件名标识 说明
测试版 beta 测试版,包含新功能,专属于max版的安装包
兼容版 compact 可覆盖原版和lyc版
共存版 plus 独立安装,与主版本共存
调试包 debug 独立安装,与其他共存,适用于调试用,无代码混淆,函数名完整,方便抓取崩溃、报错日志定位问题。此版本能正常抓包

四个包名都不同,在安卓系统中不同包名视为不同软件,都可以独立存在。

📱 ABI架构说明:

ABI标识 说明
arm64-v8a 64位ARM设备(推荐,绝大多数现代手机)
armeabi-v7a 32位ARM设备(老款手机)
universal 包含所有ABI的通用包(体积较大,兼容所有设备)

请根据您的设备架构选择对应的APK安装。如果不确定设备架构,请选择 universal 版本。

更新内容

  • fix(书架): 修正删除分组后遗留的孤儿标签
  • fix(书架): 改分组后标签命中数量立即刷新
  • style(书架): 标签菱形前缀字号调小
  • fix(书架): 重命名标签改为全局生效
  • fix(首页): 恢复模块标题行右侧的进入箭头
  • 更新日志

阅读Max开发版 3.26.091509

Pre-release

Choose a tag to compare

版本说明

这是 my-changes 开发分支的自动构建版本,包含测试版、兼容版、共存版和调试版。

  • 版本号:3.26.091509
  • 提交:07ee243dbf07cdee7d36ddaa6575f7a92688bbe7
  • 分支:my-changes

版本类型

类型 Gradle 变体 用途
测试版 appMaxRelease Max 主开发版本
共存版 appSRelease 与其他版本共存
兼容版 appLegacyRelease 兼容原版包名
调试版 appMaxDebug 无混淆,便于调试和收集日志

架构说明

Release 版本包含 arm64-v8a、armeabi-v7a 和 universal 三种 APK;调试版按项目默认配置生成 universal 通用包。若不确定设备架构,请选择 universal。

更新内容(本次推送的全部提交)

功能更新

  • feat(高亮规则): 九宫格间距左右与上下分别设定可调范围 (147ac7a)
    • 左右间距 -1.00 ~ +1.00em(水平有邻字可让位,可抵消"强制"的外扩)
    • 上下间距 -0.50 ~ +0.50em(垂直受行距限制,收太狠会把背景整个收没)
    • HighlightRuleStore 的间距合法区间拆成 _H / _V 两组,弹窗两个滑条同步
    • 同步 highlightRules.md(表格 + 数据结构注释)与 updateLog
      变更文件:
    • M app/src/main/assets/web/help/md/highlightRules.md
    • M app/src/main/assets/web/help/md/updateLog.md
    • M app/src/main/java/io/legado/app/ui/book/read/config/highlight/HighlightRuleEditDialog.kt
    • M app/src/main/java/io/legado/app/ui/book/read/config/highlight/HighlightRuleStore.kt
  • feat(书架): 新增智能标签管理 (1783fd5)
    • 管理标签页右上角新增三点菜单,内含「智能标签管理」,可总开关智能标签,并按子标签逐条开关(总开关关闭时子标签置灰不可用)
    • 新增 SmartTag 引擎:按书籍类型、阅读进度、章节数量、更新状态自动匹配标签,规则名与说明走字符串资源(四语言同步)
    • 新增 SmartTagConfig:总开关 + 关闭规则黑名单(新增内置规则默认开启,不会被老配置静默隐藏)
    • 新增 BookTagMatcher 统一判定入口,书架标签栏自动追加命中的智能标签,筛选同时匹配自定义标签与智能标签
    • BookTagInfo 补充智能判定所需字段,新增 SmartTagTest 单元测试,并在更新日志记录本次改动
      变更文件:
    • A .commitmsg.tmp
    • M app/src/main/assets/web/help/md/updateLog.md
    • M app/src/main/java/io/legado/app/constant/PreferKey.kt
    • M app/src/main/java/io/legado/app/data/dao/BookDao.kt
    • A app/src/main/java/io/legado/app/help/book/BookTagMatcher.kt
    • A app/src/main/java/io/legado/app/help/book/SmartTag.kt
    • A app/src/main/java/io/legado/app/help/book/SmartTagConfig.kt
    • M app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfTagManageActivity.kt
    • M app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfTagManageScreen.kt
    • M app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfTagManageUiState.kt
    • M app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfTagManageViewModel.kt
    • M app/src/main/java/io/legado/app/ui/main/bookshelf/style1/BookshelfFragment1.kt
    • M app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt
    • M app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BookshelfFragment2.kt
    • M app/src/main/res/values-zh-rHK/strings.xml
    • M app/src/main/res/values-zh-rTW/strings.xml
    • M app/src/main/res/values-zh/strings.xml
    • M app/src/main/res/values/strings.xml
    • A app/src/test/java/io/legado/app/help/book/SmartTagTest.kt
  • feat(书架): 标签栏标签显示命中数量 (8c45082)
    • 标签栏标签统一显示为「标签名·数量」,自定义标签与智能标签都按命中书籍数统计,"全部"显示分组总书籍数
    • 新增 BookTagMatcher.countMatches 单趟遍历统计:每本书只解析一次标签、只判定名字出现在标签栏的智能规则,复杂度不随标签数量放大
    • BookTagHelper 新增 parseSet 供调用方复用解析结果,标签栏加载时每本书的标签只切分一次
    • 补充 countMatches / tagBarLabel 单元测试,并在更新日志记录该展示改动
      变更文件:
    • M app/src/main/assets/web/help/md/updateLog.md
    • M app/src/main/java/io/legado/app/help/book/BookTagHelper.kt
    • M app/src/main/java/io/legado/app/help/book/BookTagManagement.kt
    • M app/src/main/java/io/legado/app/help/book/BookTagMatcher.kt
    • M app/src/main/java/io/legado/app/ui/main/bookshelf/style1/BookshelfFragment1.kt
    • M app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BookshelfFragment2.kt
    • M app/src/test/java/io/legado/app/help/book/BookTagManagementTest.kt
    • M app/src/test/java/io/legado/app/help/book/SmartTagTest.kt
  • feat(书架): 列表视图书籍信息区显示标签 (7470b1d)
    • 开启「显示分类信息等」时,书籍信息区按「书籍标签 → 字数 → 分类」排列,标签优先显示且不影响其他信息的展示
    • 书籍标签 = 用户自定义标签 + 命中的智能标签,标签前加菱形符号与字数/分类区分,沿用同一标签外框样式
    • BookTagMatcher 新增 bookTagNames(自定义标签在前、大小写不敏感去重)与规则解析缓存(按配置修订号 + 语言失效,避免逐个书籍重复解析规则名)
    • SmartTagConfig 新增 revision 修订号供缓存失效;补充 bookTagNames 单元测试与更新日志
      变更文件:
    • M app/src/main/assets/web/help/md/updateLog.md
    • M app/src/main/java/io/legado/app/help/book/BookTagMatcher.kt
    • M app/src/main/java/io/legado/app/help/book/SmartTagConfig.kt
    • M app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksAdapterList.kt
    • M app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BooksAdapterList.kt
    • M app/src/test/java/io/legado/app/help/book/SmartTagTest.kt

问题修复

  • fix(高亮规则): 智能模式段末右侧背景不再缺少外扩 (50f1966)
    • 智能模式原本只在"邻接列是空白字符"时外扩,段末/行末后面没有下一列,
      blankNeighborWidth 直接返回 0,导致右侧不外扩、与左侧(段首缩进的全角空格)不对称
    • 新增 rightBlankSpace:邻字是空白时沿用原逻辑;匹配段排到本行最后一列时,
      改借"段尾到正文右边界"的剩余空白,上限一个字符宽(避免整行末段被拉出很长一段)
    • 新增 contentRightEdge:按列坐标口径(absStartX + 正文宽度)还原本行右边界,
      并与页面右边界取小以兼容双栏
    • 同步 highlightRules.md 智能策略说明与 updateLog
      变更文件:
    • M app/src/main/assets/web/help/md/highlightRules.md
    • M app/src/main/assets/web/help/md/updateLog.md
    • M app/src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt
  • fix(高亮规则): 智能模式保证背景能包住匹配文字 (5ebcac4)
    • 智能模式借不到空白时(中文密排、行末等)外扩量为 0,目标矩形正好等于匹配文字外框,
      四角/边条只能压在自己匹配到的字上,表现为"背景包不住文字";现补 0.1em 的最小外扩
    • 四角/边条粗细改为不超过该侧实际让出的空隙(自动外扩 + 间距),装饰不再落到匹配文字上;
      强制模式的空隙本来就等于四角自身(等价于不夹),严格模式维持原观感
    • 智能的上下外扩同样取"半格行距"与 0.1em 的较大者,紧行距时上下也能包住文字
    • 同步 highlightRules.md(智能行 + 新增"装饰粗细受空隙限制"说明)与 updateLog
      变更文件:
    • M app/src/main/assets/web/help/md/highlightRules.md
    • M app/src/main/assets/web/help/md/updateLog.md
    • M app/src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt

其他

  • revert(高亮规则): 回退九宫格四角按字号等比缩放的改动 (98936d3)
    This reverts commit 43d3d99.
    变更文件:
    • M app/src/main/assets/web/help/md/highlightRules.md
    • M app/src/main/assets/web/help/md/updateLog.md
    • M app/src/main/java/io/legado/app/ui/book/read/config/highlight/BgImageSpan.kt
    • M app/src/main/java/io/legado/app/ui/book/read/config/highlight/HighlightRuleEditDialog.kt
    • M app/src/main/java/io/legado/app/ui/book/read/config/highlight/HighlightRuleStore.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt
  • chore: 移除误提交的临时提交信息文件 (df87749)
    • 删除 .commitmsg.tmp,该文件仅用于向 git 传递提交信息,不应纳入仓库
      变更文件:
    • D .commitmsg.tmp

Assets

APK 文件名中的版本类型和 ABI 标识对应上面的说明。

legado_app_3.26.091508

Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Sep 01:08

⚠️ 重要提醒:安装前请务必备份您的数据!

📦 APK版本说明:

版本类型 文件名标识 说明
测试版 beta 测试版,包含新功能,专属于max版的安装包
兼容版 compact 可覆盖原版和lyc版
共存版 plus 独立安装,与主版本共存
调试包 debug 独立安装,与其他共存,适用于调试用,无代码混淆,函数名完整,方便抓取崩溃、报错日志定位问题。此版本能正常抓包

四个包名都不同,在安卓系统中不同包名视为不同软件,都可以独立存在。

📱 ABI架构说明:

ABI标识 说明
arm64-v8a 64位ARM设备(推荐,绝大多数现代手机)
armeabi-v7a 32位ARM设备(老款手机)
universal 包含所有ABI的通用包(体积较大,兼容所有设备)

请根据您的设备架构选择对应的APK安装。如果不确定设备架构,请选择 universal 版本。

更新内容

  • revert(高亮规则): 回退九宫格四角按字号等比缩放的改动
  • feat(高亮规则): 九宫格间距左右与上下分别设定可调范围
  • fix(高亮规则): 智能模式段末右侧背景不再缺少外扩
  • fix(高亮规则): 智能模式保证背景能包住匹配文字
  • feat(书架): 新增智能标签管理
  • chore: 移除误提交的临时提交信息文件
  • feat(书架): 标签栏标签显示命中数量
  • feat(书架): 列表视图书籍信息区显示标签

阅读Max开发版 3.26.091411

Pre-release

Choose a tag to compare

版本说明

这是 my-changes 开发分支的自动构建版本,包含测试版、兼容版、共存版和调试版。

  • 版本号:3.26.091411
  • 提交:5a23852b54033d5c7ce07cd4980d8442f4822ddc
  • 分支:my-changes

版本类型

类型 Gradle 变体 用途
测试版 appMaxRelease Max 主开发版本
共存版 appSRelease 与其他版本共存
兼容版 appLegacyRelease 兼容原版包名
调试版 appMaxDebug 无混淆,便于调试和收集日志

架构说明

Release 版本包含 arm64-v8a、armeabi-v7a 和 universal 三种 APK;调试版按项目默认配置生成 universal 通用包。若不确定设备架构,请选择 universal。

更新内容(本次推送的全部提交)

问题修复

  • fix(阅读记录): 修复听书时长记录 (5a23852)
    Signed-off-by: letmedothis 1939436280@qq.com
    变更文件:
    • M app/src/main/assets/web/help/md/readMenuHelp.md
    • M app/src/main/assets/web/help/md/updateLog.md
    • M app/src/main/java/io/legado/app/model/AudioPlay.kt
    • A app/src/main/java/io/legado/app/model/PlaybackReadSessionTracker.kt
    • M app/src/main/java/io/legado/app/model/ReadBook.kt
    • M app/src/main/java/io/legado/app/service/AudioPlayService.kt
    • M app/src/main/java/io/legado/app/service/BaseReadAloudService.kt
    • A app/src/test/java/io/legado/app/model/PlaybackReadSessionTrackerTest.kt

Assets

APK 文件名中的版本类型和 ABI 标识对应上面的说明。

阅读Max开发版 3.26.091408

Pre-release

Choose a tag to compare

版本说明

这是 my-changes 开发分支的自动构建版本,包含测试版、兼容版、共存版和调试版。

  • 版本号:3.26.091408
  • 提交:844f01b45286f0eea91de596ebe2eb6e9ed18ed0
  • 分支:my-changes

版本类型

类型 Gradle 变体 用途
测试版 appMaxRelease Max 主开发版本
共存版 appSRelease 与其他版本共存
兼容版 appLegacyRelease 兼容原版包名
调试版 appMaxDebug 无混淆,便于调试和收集日志

架构说明

Release 版本包含 arm64-v8a、armeabi-v7a 和 universal 三种 APK;调试版按项目默认配置生成 universal 通用包。若不确定设备架构,请选择 universal。

更新内容(本次推送的全部提交)

功能更新

  • feat(高亮规则): 背景图适配方式新增九宫格并支持手动调整四边分割比例 (e97ceb2)
    变更文件:

    • M app/src/main/assets/web/help/md/highlightRules.md
    • M app/src/main/assets/web/help/md/updateLog.md
    • M app/src/main/java/io/legado/app/ui/book/read/config/highlight/BgImageSpan.kt
    • M app/src/main/java/io/legado/app/ui/book/read/config/highlight/HighlightRule.kt
    • M app/src/main/java/io/legado/app/ui/book/read/config/highlight/HighlightRuleBackgroundManager.kt
    • M app/src/main/java/io/legado/app/ui/book/read/config/highlight/HighlightRuleEditDialog.kt
    • M app/src/main/java/io/legado/app/ui/book/read/config/highlight/HighlightRulePreview.kt
    • M app/src/main/java/io/legado/app/ui/book/read/config/highlight/HighlightRuleStore.kt
    • M app/src/main/java/io/legado/app/ui/book/read/config/highlight/HighlightRuleStyle.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/entities/column/TextBaseColumn.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/entities/column/TextColumn.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/entities/column/TextHtmlColumn.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/provider/CharStyle.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/provider/HighlightStyleSpan.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/provider/TextChapterLayout.kt
    • M app/src/main/res/layout/dialog_highlight_rule_edit.xml
    • A app/src/test/java/io/legado/app/ui/book/read/config/highlight/HighlightRuleStoreSanitizeTest.kt
  • feat(高亮规则): 九宫格改用严格/智能/强制外扩策略并修正间距方向 (9a90393)

    • 九宫格"压字"布尔开关改为 bgBleedMode 三档策略,默认智能;可空以区分"用户选严格"与"老规则缺字段"
    • 自动外扩量:严格 0;智能只占用邻接空白(左右借空格宽度 80%,上下吃一半行距);强制按四角厚度(即原行为)
    • 间距方向统一并修正:正数把背景向外撑大、负数向内收,此前"压字"模式下符号是反的
    • 上下范围统一以字体 ascent/descent 为基准,不再按行盒内缩,避免切掉字身上下
    • drawBgImageSegments 改为按列下标记录段边界,供智能策略判断邻字是否空白
    • 九宫格调整弹窗的开关改为三档策略切换并配一行说明,间距滑条改为 -0.35em~+0.35em 居中
    • 同步 highlightRules.md 与更新日志

    feat(高亮规则): 九宫格新增压字开关与左右/上下间距调整

    • HighlightRule 新增 bgOverlapChar/bgSpacingH/bgSpacingV,贯通样式、Span、列到绘制链路
    • drawNineSlice 新增 overlapChar 与 spacing 参数:压字时保持四角画在匹配区外侧的原行为,
      不压字时四角改画在匹配区内部,背景只覆盖匹配到的文字
    • 不压字模式上下范围改用字体 ascent/descent 为基准,避免从行盒内缩切掉字身上下
    • 间距以 em 为单位、可正可负:正数向内收、负数向外扩,可补偿图片自带的透明留白
    • 九宫格调整弹窗新增「压字」开关与「左右间距」「上下间距」滑条,并套滚动容器
    • 配置页预览 BgImageSpan 复用同一套规则
    • 同步 highlightRules.md 与更新日志
      变更文件:
    • M app/src/main/assets/web/help/md/highlightRules.md
    • M app/src/main/assets/web/help/md/updateLog.md
    • M app/src/main/java/io/legado/app/ui/book/read/config/highlight/BgImageSpan.kt
    • M app/src/main/java/io/legado/app/ui/book/read/config/highlight/HighlightRule.kt
    • M app/src/main/java/io/legado/app/ui/book/read/config/highlight/HighlightRuleEditDialog.kt
    • M app/src/main/java/io/legado/app/ui/book/read/config/highlight/HighlightRulePreview.kt
    • M app/src/main/java/io/legado/app/ui/book/read/config/highlight/HighlightRuleStore.kt
    • M app/src/main/java/io/legado/app/ui/book/read/config/highlight/HighlightRuleStyle.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/entities/column/TextBaseColumn.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/entities/column/TextColumn.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/entities/column/TextHtmlColumn.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/provider/CharStyle.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/provider/HighlightStyleSpan.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/provider/TextChapterLayout.kt
  • feat(阅读页): 九宫格强制策略把邻字推开一个正文字距 (0f6131d)

    • 移除上一版的"邻字间距"参数(改为自动用阅读设置的字间距)及绘制期外扩上限
    • 新增 computeNeighborPush:按强制段的四角厚度与间距算出左右邻字各自要让出的宽度
    • 推开的距离作为真实排版宽度参与断行与两端对齐(纯文本走 widthsArray、HTML 走
      HighlightSpacingSpan),剩余文字仍保持整齐,不会溢出右边距
    • 新增 NeighborPush.trimEnd:从匹配区最后一个字的列末尾扣回该宽度,避免背景跟着变宽
    • 新增 TextLine.nineSliceSideWidth,与 drawNineSlice 的切分口径保持一致
    • 单侧最多让出 1em;HTML 路径的 ReplacementSpan 自定义标签判断排除新 Span
    • 同步 highlightRules.md 与更新日志

    feat(高亮规则): 九宫格新增邻字间距,强制模式外扩时不再压字

    • HighlightRule 新增 bgNeighborGap(em,默认 0=不限制),贯通样式、Span、列到绘制链路
    • TextLine 新增 neighborBleedLimit:按邻字字形墨迹(getTextBounds)算可用外扩空间再减掉该间距
    • drawNineSlice 增加 leftMaxBleed/rightMaxBleed,外扩量取"策略外扩量"与上限的较小值
    • 邻字是空白时按整段宽度计算;行首行尾不做限制
    • 配置页预览 BgImageSpan 用同一口径计算上限,间距滑条抽成通用 emSliderRow
    • 九宫格调整弹窗新增"邻字间距"滑条(0~0.5em)并补说明
    • 同步 highlightRules.md 与更新日志
      变更文件:
    • M app/src/main/assets/web/help/md/highlightRules.md
    • M app/src/main/assets/web/help/md/updateLog.md
    • M app/src/main/java/io/legado/app/ui/book/read/config/highlight/HighlightRuleEditDialog.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/entities/TextLine.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/provider/HighlightStyleSpan.kt
    • M app/src/main/java/io/legado/app/ui/book/read/page/provider/TextChapterLayout.kt

问题修复

  • fix(气泡管理): 返回处理迁移至 OnBackPressedDispatcher,适配预测性返回 (850da71)
    • 移除 override fun onBackPressed(),改用 dispatcher 注册的 OnBackPressedCallback
    • 多选模式下返回退出多选,其余情况转发给 BaseActivity 已注册的 finish 回调
    • Android 13+/16+ 手势返回不再回调 onBackPressed,此修复消除返回键失灵风险
      变更文件:
    • M app/src/main/java/io/legado/app/ui/config/BubbleManageActivity.kt
  • fix(本地化): 预下载提示字符串占位符类型修正为 %d (002b5d7)
    • pre_download_m 四个语言资源 %s 改为 %d,与调用方传入的 Int 类型匹配(MangaQuickSettingDialog / ReadMangaActivity)
    • backward_pre_download_s 的 values-zh-rTW / values-zh-rHK 补齐缺失的 %d 占位符,修复 StringFormatInvalid 报错
    • en / zh 同步 %s 改 %d,消除 lint StringFormatMatches 错误
      变更文件:
    • M app/src/main/res/values-zh-rHK/strings.xml
    • M app/src/main/res/values-zh-rTW/strings.xml
    • M app/src/main/res/values-zh/strings.xml
    • M app/src/main/res/values/strings.xml
  • fix(兼容): 消除 20 处 NewApi 违规,低版本设备不再有崩溃风险 (8a55e24)
    • BaseReadBookActivity / ReadMangaActivity:Dialog.requireViewById 改用 findViewById + 空安全兜底
    • DownloadManageActivity:MediaStore.Downloads EXTERNAL_CONTENT_URI 加 SDK_INT>=29 分支,低版本走下载管理器降级
    • ImageCropActivity:为 ImageDecoder 解码函数标注 @RequiresApi(28)(调用处已有 SDK 分流)
    • HomepageViewModel:Html.fromHtml 抽 htmlToPlainText 函数,SDK_INT 分流新旧接口
    • TitleBarConfig:GradientDrawable.getColor 改为函数级 SDK 守卫,消除 lint 误报
      变更文件:
    • M app/src/main/java/io/legado/app/ui/book/manga/ReadMangaActivity.kt
    • M app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt
    • M app/src/main/java/io/legado/app/ui/download/DownloadManageActivity.kt
    • M app/src/main/java/io/legado/app/ui/image/ImageCropActivity.kt
    • M app/src/main/java/io/legado/app/ui/main/homepage/HomepageViewModel.kt
    • M app/src/main/java/io/legado/app/ui/widget/TitleBarConfig.kt
  • fix(本地化): 预下载提示字符串占位符类型修正 (bd0361e)
    • pre_download_m 四语言资源 %s 改为 %d:调用方传入 Int(MangaQuickSettingDialog / ReadMangaActivity),消除 StringFormatMatches 错误
    • backward_pre_download_s 的 values-zh-rTW / values-zh-rHK 补齐缺失的占位符(%s,调用方传 String),en / zh 保持原 %s 不变,消除 StringFormatInvalid
    • 附带说明:en 资源 %d 触发 PluralsCandidate 提示(warning 级,不阻塞),复数化重构留待后续
      变更文件:
    • M CLAUDE.md
    • M app/src/main/res/values-zh-rHK/strings.xml
    • M app/src/main/res/values-zh-rTW/strings.xml
    • M app/src/main/res/values-zh/strings.xml
    • M app/src/main/res/values/strings.xml
    • M docs/project-rules/api-compat-rules.md
  • fix(web服务): 修复网页传书与快速备份不可用的问题 (9b3cd85)
    • 传书失败不再被网页误报为成功:上传页解析响应体真实结果,失败显示红叉与原因
    • 传书成败在App端弹Toast提示,未设置书籍保存位置时给出明确错误信息
    • 备份ZIP改为文件流式下载,不再整体读入内存,避免大书库内存溢出
    • 备份请求并发共享同一次打包,等待上限由120秒放宽到600秒
    • 备份页展示服务端真实失败原因并增加耗时提示,Vue产物重新构建
    • 修复书架页数据备份按钮 /backup/ 尾斜杠路由失配,并纳入鉴权白名单
    • .prettierignore 排除Web前端构建产物、遗留脚本与 modules/web 源码,避免提交混入全量重排
    • 同步更新 updateLog.md
      变更文件:
    • M .prettierignore
    • M app/src/main/assets/web/help/md/updateLog.md
    • M app/src/main/assets/web/uploadBook/js/html5_fun.js
    • D app/src/main/assets/web/vue/assets/BackupManager-BptWbkEQ.js
    • A app/src/main/assets/web/vue/assets/BackupManager-CzJkKGjm.js
    • A app/src/main/assets/web/vue/assets/BackupManager-DkSzdkUu.css
    • D app/src/main/assets/web/vue/assets/BackupManager-X5uO_YzP.css
    • D app/src/main/assets/web/vue/assets/BookChapter-BCaSBgbo.js
    • A app/src/main/assets/web/vue/assets/BookChapter-C8VPxkul.js
    • D app/src/main/assets/web/vue/assets/BookShelf-B7EKvyEu.js
    • A app/src/main/assets/web/vue/assets/BookShelf-BWoSCYYm.js
    • A app/src/main/assets/web/vue/assets/index-B8MST9KK.css
    • D app/src/main/assets/web/vue/assets/index-Cj2x241m.css
    • D app/src/main/assets/web/vue/assets/index-DJiNYgL2.js
    • A app/src/main/assets/web/vue/assets/index-Dl2zbEGb.js
    • D app/src/main/assets/web/vue/assets/loading-DNK6Vvlt.js
    • A app/src/main/assets/web/vue/assets/loading-to5go6_O.js
    • A app/src/main/assets/web/vue/assets/vendor-CW8oAoO3.js
    • D app/src/main/assets/web/vue/assets/vendor-DDq6Rt0g.js
    • M app/src/main/assets/web/vue/index.html
    • M app/src/main/java/io/legado/app/api/controller/BackupController.kt
    • M app/src/main/java/io/legado/app/api/controller/BookController.kt
    • M app/src/main/java/io/legado/app/web/HttpServer.kt
    • M modules/web/src/views/BackupManager.vue
  • fix(主题): 修复无法设置纯色背景的问题 (ea3420d)
    • 占位机制误伤纯色场景:清空背景图后签名变为空/文件缺失,但旧占位图仍被应用且保留,导致无法回到纯色底
    • getBackgroundSignature 改为可空:未配置背景图或图片文件不存在(含绝对路径失效)时返回 null,绝对路径补充 isFile 校验
    • BaseActivity 仅在签名非空(确实配置了背景图)时才使用占位图;无图时回调 null
    • onBackgroundDrawableLoaded 改为无条件设置 decorView 背景,null 时清除旧背景图回到纯色底
      变更文件:
    • M app/src/main/java/io/legado/app/base/BaseActivity.kt
    • M app/src/main/java/io/legado/app/help/config/ThemeConfig.kt
    • M app/src...
Read more

legado_app_3.26.091408

Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Sep 00:57

⚠️ 重要提醒:安装前请务必备份您的数据!

📦 APK版本说明:

版本类型 文件名标识 说明
测试版 beta 测试版,包含新功能,专属于max版的安装包
兼容版 compact 可覆盖原版和lyc版
共存版 plus 独立安装,与主版本共存
调试包 debug 独立安装,与其他共存,适用于调试用,无代码混淆,函数名完整,方便抓取崩溃、报错日志定位问题。此版本能正常抓包

四个包名都不同,在安卓系统中不同包名视为不同软件,都可以独立存在。

📱 ABI架构说明:

ABI标识 说明
arm64-v8a 64位ARM设备(推荐,绝大多数现代手机)
armeabi-v7a 32位ARM设备(老款手机)
universal 包含所有ABI的通用包(体积较大,兼容所有设备)

请根据您的设备架构选择对应的APK安装。如果不确定设备架构,请选择 universal 版本。

更新内容

fix(高亮规则): 九宫格四角改为按字号等比缩放,间距范围定为 ±0.5em

  • 四角尺寸原为位图原始像素,被"按方向各自夹一次"限幅后会压成扁横条、样式完全看不清;
    改为按"分割比例 × 字号"(水平再乘图片宽高比)等比缩放,形状不变形,且与图片分辨率无关
  • 四角放不下时改为按同一比例整体收缩,不再只缩一个方向
  • 强制模式外扩量随之受四角尺寸约束,不再铺满整行、压住上下行
  • 间距范围由 -1.00~+0.50em 收敛为 -0.50~+0.50em(-1.00 会把背景整个收没)
  • 同步 highlightRules.md 表格与说明、updateLog