Add Android animation library browsing

This commit is contained in:
2026-10-10 14:51:16 +08:00
parent 5db283c05a
commit c9dd03c23b
39 changed files with 1015 additions and 46 deletions
@@ -0,0 +1,32 @@
# Android 动画与全屏浏览交付
App 0.3.1 / versionCode 7(debug),设备正式版本保持 1.1.3,协议 1.3。设备功能时间 2026-10-10T14:17+08:00。两端已部署;登记手机已核对版本、启动产品 App,并卸载本轮测试 APK,未清除用户数据。交付 APK 见 ../../构建与发布/交付包/0.3.1-7/。
## 变更与选测
新增帧清单和4 KiB PNG分块、低清动画→高清动画、修订隔离及128 MiB缓存、部分下载恢复、全屏与1–8倍缩放、当前项优先、关闭300 ms撤销优先级和后台停止新图片请求。读取不改变设备播放。动画按可见性播放并扣除解码耗时,完整高清缓存优先直接恢复。
直接影响手机缓存、Controller队列、内容/设备画面浏览、BLE/WiFi只读方法集合及设备图库读取。选择共享JVM、设备Python契约、独立模拟器content / animationViewer、登记真机cache-storage / animation-library;不执行切网、无关设置页面、驱动时序、ADC、摄像头或实屏图案验收。
## 验证结果
- 本机设备契约:20 passed,包括分页、尺寸、分块摘要、非法参数、修订冲突及只读帧修订不变。
- 隔离Android构建:产品debug APK、instrumentation APK、独立uiTest APK构建成功;共享JVM 27 tests,0 failures/errors/skipped。包含完整消息边界抢占、后台暂停、已缓存图片提示、分块恢复、原时长和动画读取WiFi回退。
- 独立模拟器:content通过;最终animationViewer通过。实际解码标记覆盖两帧推进、全屏图片、关闭、设备画面浏览及后台暂停;未使用截图/摄像头。
- 登记真机:cache-storage通过(动画PNG摘要、损坏部分记录、修订保留/清理);animation-library通过,16.67秒,生产Controller当前项优先下载完成、暖缓存零动画RPC、BLE与现有WiFi分块一致。未切换网络或写入显示内容。
- 核桃派原子更新:510 passed / 7 skipped / 397 warnings,419.08秒;7项按既有source-only更新边界跳过,不代表完整离线发布材料验收。更新及再次重启健康检查通过。
- 部署摘要与本机源码一致;驱动运行、无最后错误、刷新97.432 Hz、截止丢失0。设备正式版本未推进。
- 当前持久资源严格校验通过:9个用户静态模板、6个用户动图,共220个用户源/配置文件。隔离副本执行启动整理后源文件摘要不变,见animation-data-audit.json。
- 测试运行器选测检查9项通过;仓库卫生与diff空白检查通过。
## 失败、修复与边界
首轮指向中文路径的ASCII联接构建重现已有JVM类加载失败;真实ASCII临时源码副本构建通过。测试代码初次缺少thumbnailKey导入,补齐后编译通过。模拟器发现已完成缓存仍保留下载提示;修复打开时完成判定后重测通过。复查补齐动画WiFi只读回退集合和高清暖缓存直接恢复。
首次部署全持久目录摘要记录191项差异,但脚本未落盘保存逐项旧摘要,不能追溯各项变化归属,也不能将其写成“用户源文件部署前后逐项不变”通过。已核验现有源文件严格有效、隔离启动整理不会修改220个源文件;源目录既有.playback和缩略图等可再生清理行为不能单凭源码证明本次191项差异全属缓存。后续部署须保存受保护逐项基线,再分类比较。
经验已更新:如何安卓测试/常见问题与排障.md、按影响选测.md、README.md,以及根测试流程和构建与发布README。新能力未引入板端或Android依赖,无OTA/IMG导出,无正式APK签名。
## 清理
原子更新脚本清理自身staging、迁移运行目录和旧版本回滚材料;本轮上传目录/tmp/qms-animation-24cddd10abc6已删除。隔离数据审计目录由受保护临时上下文删除。手机测试APK及root辅助文件已清理。模拟器恢复设置并关闭本次实例,模拟器上下文创建的ASCII联接已按原入口清理。额外构建目录和qms-animation联接的清理被工具安全策略以“blocked by policy”拦截,未改用其它删除方式。待用户手动删除:<受保护临时目录>/qms-animation-ascii/、qms-animation-emulator/、qms-animation(仅联接本身,目标为项目.local/work,不删除目标);以及项目测试环境.local/work/qms-build-46tzg_6q/、animation-device-source.tar.gz和animation_deploy.py。开发日志留在项目精确忽略的.local/work/下,交付APK、源码摘要和本报告长期保留。
@@ -0,0 +1,8 @@
{
"current_user_sources_valid": true,
"source_file_count": 220,
"copied_startup_preserves_sources": true,
"template_count": 9,
"animation_count": 6,
"remote_audit_temporary_removed_on_exit": true
}
@@ -0,0 +1,20 @@
{
"tests": [
{
"scenario": "animationViewer",
"configuration": "baseline",
"result": "passed"
}
],
"failure": null,
"cleanup_errors": [],
"not_selected": [
"connection",
"wifiTransport",
"status",
"content",
"settings",
"navigation",
"layout"
]
}
@@ -46,3 +46,6 @@
4. 逐项核对需求/实现/验收差异,整理最终报告、APK、签名与摘要;当前值写入/动画暂停恢复真机通过;完整内容选择、默认保存、权限各分支、旧 Android 版本和完整 OTA 未全部实测,不能冒充已验证。
详细历史见 `2026-09-25_重启与连接恢复.md`。未来设备更新只登记移动端影响,不自动发布 App。本轮仅 debug 签名,不导出 IMG/OTA,不推进设备发布版本。
2026-10-10:App 0.3.1 / code 7 动画与全屏浏览已实施并部署,协议1.3设备同时更新。JVM、模拟器、登记手机动画/缓存及设备原子更新验证通过;持久数据逐项旧基线未保存的追溯限制见 [本轮记录](2026-10-10_动画浏览/README.md)。