0
Fork 0
mirror of https://github.com/Silent1566/webhtv.git synced 2026-10-13 18:27:10 +00:00

merge: 合并 origin/beta 最新代码(PR#440 已把 dev2 并入 beta)并复评 dev2 已提交未推送的 TV 横幅高清化改动

合并:git merge --no-commit --no-ff origin/beta(37bca767373804c381ffbe3e8f565ebf33b4b281,
Merge pull request #440 from Silent1566/dev2),0 冲突;MERGE_HEAD 即 beta tip。
合并基点为上一轮的合并提交 8b5f8e9026。

本轮结构性特点:beta 相对合并基点未新增任何内容,合并是内容中性的。
- git diff --name-status 8b5f8e9026 origin/beta => 空
- 合并后索引树 git write-tree = a186f1c817
- dev2 tip 树 c0ba017885^{tree}  = a186f1c817
两者哈希相同,即本次合并只把 beta tip 记入 dev2 历史(消除 1 behind),不改变任何一个文件。
原因是上一轮 PR #440 已把 dev2(8b5f8e9026)并入 beta,beta 侧唯一增量就是那个合并提交本身。

零复活 / 零丢失(三层证据;用户明确要求远端已移除/回退的提交不得顺带提交上去):
1. 净差异:git diff --name-status origin/beta dev2 仅 c0ba017885 自身的 7 个路径。
2. beta 侧改动:git diff --name-status 8b5f8e9026 origin/beta 为空 => beta 未删除、未修改任何
   内容,结构上不可能复活。
3. 路径状态:上述 7 个路径在 beta 树中全部为 M(既有文件)、无 A => 不存在「把已删文件加回来」
   的形态。另回溯 beta 历史上触及这 7 个路径的 23 个单亲提交,逐条 numstat 均为前向新增/改写,
   无删除交集。

复评(1 轮通过,未发现缺陷):对象为 dev2 已提交未推送的 c0ba017885
「fix(tv): TV 横幅按 320x180dp 出图,消除启动器放大导致的字标锯齿」,改动集 7 路径
(5 档 mipmap-*/ic_banner.png + AppBrandingContractTest.java + scripts/gen_app_icon.py),
实质是把 BANNER_SIZES 由 160x90/240x135/320x180/480x270/640x360 px(=160x90 dp)
上调为 320x180/480x270/640x360/960x540/1280x720 px(=320x180 dp)。核查结论:
1. dp 尺寸与同族入口自洽:AndroidManifest 的 history 别名用矢量 @drawable/ic_banner_history,
   声明为 320dp x 180dp;改动前同一 App 两个启动器入口的横幅 dp 尺寸并不一致(矢量 320x180 dp、
   位图 160x90 dp),位图侧才是异类。仓库自身即为佐证,不必只依赖外部文档。
2. 机理与用户症状吻合:位图按 160x90 dp 出图时,每一档密度交给启动器的位图都只有磁贴 dp 尺寸的
   一半,启动器只能统一放大 2 倍,字标必然出锯齿——正是用户报的「分辨率不够、锯齿很严重」。
   改为 320x180 dp 后每档 1:1。
3. 生成器确在目标分辨率绘制:render_banner(w,h) 的布局求解全部发生在最终像素尺寸上
   (_render_mark 按目标 O 直径直接绘制、_render_text 先探针量墨迹再定字号),无图层被放大。
4. 补测关闭一处验证缺口:提交记录的「5 档实测」只列了像素尺寸,放大后的档位从未实测过
   (C35 原始评审只测过 160x90 dp 那一版)。本次用生成器自身的
   make_gradient(max(w,h)).resize((w,h), LANCZOS) 复现背景并与已提交 PNG 逐像素求差,
   掩膜即真实墨迹:5 档全部完全不透明、含真实墨迹、落在四边各 6.1% 安全区内、宽高比精确 16:9。
   xhdpi 墨迹宽/宽 0.8781 相对安全区 0.8780 仅溢出 0.04 px,在求解器自身 total<=safe_w+0.5
   余量内,属亚像素舍入而非越界。
5. 放大档位是独立渲染而非放大:墨迹像素数随档位按面积增长但始终略低于纯面积倍率
   (0.9950 / 0.9770 / 0.9821 / 0.9893);若为插值放大应≈1.0 甚至更高。
6. 字节级确定性:新 mdpi/hdpi/xhdpi 与旧 xhdpi/xxhdpi/xxxhdpi 逐字节一致
   (9639 / 16295 / 24216 B),净新增 xxhdpi 960x540 与 xxxhdpi 1280x720 两档。
7. 无残留引用:本次真正淘汰的 160x90/240x135 在 app/src 与 scripts 零命中。
8. 代价:5 档横幅合计 60930 -> 155319 B(+92 KiB);运行期只解码匹配密度的那一档,
   xhdpi 单张 ARGB_8888 约 0.23 -> 0.92 MB,对启动器磁贴可接受。

非阻塞观察(记录不修):do_preview() 仍以 320x180 出预览,改动后它已是最小档而非代表档;
脚本注释把 xhdpi 320x180 px 描述为「API<=25 旧式兜底最小尺寸」属规范转述,本环境无法复核
(文档页为 JS 渲染壳、Web 检索不可用),记为未复核表述,改动正确性不依赖它。

Verification: 合并 0 冲突且内容中性(合并后索引树 = dev2 tip 树 = a186f1c817b656c213c17b87da2111b3e3c86efa;git diff --name-status 8b5f8e9026 origin/beta 为空,零复活/零丢失三层证据通过);./gradlew :app:testLeanbackArm64_v8aDebugUnitTest --tests com.fongmi.android.tv.setting.AppBrandingContractTest => BUILD SUCCESSFUL (7m41s),报告 tests=13 failures=0 errors=0 skipped=0;横幅补测(复现背景逐像素求差)5 档全部不透明/含真实墨迹/在 6.1% 安全区内/精确 16:9,墨迹面积倍率 0.9950/0.9770/0.9821/0.9893 均 <1.0 证独立渲染;新 mdpi/hdpi/xhdpi 与旧 xhdpi/xxhdpi/xxxhdpi 逐字节一致

Task-Guard: C65-beta-merge-review-dev2-20261012
This commit is contained in:
Silent1566 2026-10-13 00:07:29 +08:00
commit b6c36bdf1a