Skip to content

Avoid invisible background draws and validate packaged GIF libraries - #127

Merged
chenBingX merged 1 commit into
masterfrom
fix/remaining-issues-20261022
Oct 22, 2026
Merged

chenBingX merged 1 commit into
masterfrom
fix/remaining-issues-20261022

Conversation

@chenBingX

Copy link
Copy Markdown
Owner

修改内容

  • 过度绘制问题 #89:不再提交完全透明的描边、纯色填充;保留 solidPath、圆角和共享 Paint 的 FILL 初始化,避免影响图片背景与按压态。可见/半透明颜色、渐变及原有零端点回退行为不变。
  • so库大小为0 #107:补上源码打包前和最终 AAR 的原生库校验,检查四 ABI、空/截断 ELF、架构、16KB/RELRO、重复条目及 ZIP CRC,并接入版本 tag CI。已确认旧 3.2.5 AAR 有零字节 ARMv7 so,但当前下载的 3.2.3 AAR 正常,不能把原报告的 3.2.3 直接判为同一问题。
  • 补充字体继承、两张本地图片、圆角背景和日志的回归/设备测试;未为了消掉 Issue 盲改 Typeface 或吞掉异常。

验证

  • 原 master 上 14 项新 Java 用例中,7 项透明绘制反例失败;修复后完整 Java 回归 57/57 通过。
  • Python 校验工具 26/26 通过;实际 debug/release AAR 四 ABI 校验通过,内嵌 so 与仓库产物逐字节一致。
  • 独立 Gradle fixture:正常包通过,损坏最终 AAR 失败,空源码 so 在 bundle 之前失败。实际 LocalLintAar 也通过,未误拦内部任务。
  • 官方 API 35 / ARM64 / 真 16KB 内核虚拟设备:15/15 通过,包括 PNG/JPEG/vector/shape/selector/GIF 双图片槽 XML 加载、圆角像素、4 种字体绘制模式、透明路径提交及 100 次绘制无旧 canvas.h 日志。应用 sysconf=16384、smaps=16kB,crash buffer 为空。

逐 Issue 调查与原始测试记录

边界

#93 的截图已精确对上旧版 onDraw 第 342 行,早期提交已删除该日志;不是今天 DEBUG 默认值能否复现的问题。

#91、#113、#77 以及 #107 原始 3.2.3 的根因仍未复现,保留待补原字体/布局/最内层 Caused by 或实际包,不把样例通过当作原问题已修复。API 35 虚拟设备不是原 API 31/OEM 覆盖,也没有量化 GPU overdraw 或帧耗时。

源码构建新增 Python 3 要求,可用 -PstvPython 指定;消费已发布 AAR 不受此构建依赖影响。旧 AGP 3.3/JCenter 构建链与真实 JitPack 发版未在这里执行。没有改旧 tag,没有发布新版。

Fixes #89
Refs #107
Refs #93
Refs #91
Refs #113
Refs #77

@chenBingX
chenBingX merged commit cf96da0 into master Oct 22, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

过度绘制问题

1 participant