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
@@ -137,3 +137,8 @@ ANDROID-TEST-STATE:共享逻辑验证自动/手动连接后关联、重新
顶栏保留完整文字语义,菜单位于固定区域;长文本循环参数由共享实现及编译核验,语义边界不证明文字实际运动,不记为目视验收。未取得本次视觉指示时不截图、不启动摄像头。纯手机界面调整的实屏视觉检查不适用,不需切网、显示内容切换或驱动测试。
短视口连接列表验收使用 connection_list 的实时可见边界,以 root 滑动定位扫描条目,按当前条目容器内的资源标签选连接/断开,不能假设设备名称始终在首屏。布局恢复须同时回读密度覆盖、字体与旋转;运行器输出恢复核验结果。
## 2026-10-10 动画浏览
动画浏览专项:先sharedCore JVM,再独立模拟器content / animationViewer;实际链路使用run_ble_test.py --scenario animation-library,存储回归使用--scenario cache-storage。所有真实测试仍执行登记、ADB/root和设备凭据门禁。检查点:可见动图帧推进、源时长、未完成时优先下载、完成缓存直接浏览、关闭/后台停止新请求、暖缓存无重复动画读取,BLE/WiFi块一致。只读验证,不调用content.play。
@@ -168,7 +168,7 @@ def main(argv=None):
'-e', 'reapply_current_wifi', str(args.reapply_current_wifi).lower(),
'-e', 'verify_current_controls', str(args.verify_current_controls).lower(),
'-e', 'toggle_bluetooth', str(args.toggle_bluetooth).lower(),
'-e', 'class', 'org.qimiaoscreen.controller.' + ('WifiTransportTest' if args.scenario.startswith('wifi-transport') else 'LibraryCacheTest' if args.scenario == 'cache-storage' else
'-e', 'class', 'org.qimiaoscreen.controller.' + ('AnimationLibraryTest' if args.scenario == 'animation-library' else 'WifiTransportTest' if args.scenario.startswith('wifi-transport') else 'LibraryCacheTest' if args.scenario == 'cache-storage' else
'LibraryBleCacheTest' if args.scenario == 'library-cache' else
{'ble': 'BleIntegrationTest', 'activity': 'AppLifecycleTest', 'layout': 'LayoutTest'}[args.test]),
'org.qimiaoscreen.controller.test/androidx.test.runner.AndroidJUnitRunner', timeout=360)
@@ -5,6 +5,7 @@ from pathlib import Path
# name: (instrumentation family, board required, side effect)
SCENARIOS = {
'animation-library': ('ble', True, 'focused animation download, warm cache, read-only BLE/WiFi chunk equality; no network switches'),
'wifi-transport': ('ble', True, 'encrypted WiFi upgrade, identical image transfer comparison; no mutations'),
'wifi-transport-network': ('ble', True, 'reapply currently active board WiFi with password retained; verify hybrid routing recovery'),
'wifi-transport-restart': ('ble', True, 'restart board main service only after authenticated WiFi readiness; verify new BLE/WiFi session'),
@@ -6,7 +6,7 @@ import re
import subprocess
import time
SCENARIOS = ('connection', 'wifiTransport', 'status', 'content', 'settings', 'navigation', 'layout')
SCENARIOS = ('connection', 'wifiTransport', 'status', 'content', 'animationViewer', 'settings', 'navigation', 'layout')
CONFIGS = {'baseline': (None, '1.0', '0'), 'narrow': (340, '1.0', '0'),
'large-font': (340, '1.3', '0'), 'landscape': (None, '1.3', '1')}
PACKAGE = 'org.qimiaoscreen.uitest'
@@ -105,3 +105,11 @@ Compose 的禁用语义可能位于父节点,文字节点自身仍 enabled。
- Windows Python 控制台在诊断输出包含替换字符时可能触发 GBK 编码错误;仅对本次 Python 进程使用 `-X utf8`,不全局调整系统设置。
单次启动失败与复测结果记录在 `各种归档/2026-10-01_本机环境迁移/README.md`;模拟器结果不代表任何真机或板端验收。
## 2026-10-10 动画浏览
动画预览仅有首帧时,先核对设备是否声明library_animation及是否实际读取动画帧,不能只替换静态解码器。已缓存完整图片点开浏览器时应立即判定完成,不能等待队列再清除下载提示(完成项不会重新入队)。暖动画缓存应先校验完整高清清单并直接恢复播放,避免重新下载低清。动画两类读取必须加入HybridRpc只读集合,WiFi故障才可安全回退BLE。
JVM构建如使用指向中文项目的ASCII联接,Gradle可能解析回中文真实路径并重现已登记的类加载失败;本次已用独立真实ASCII临时构建目录验证通过。临时构建属于本轮中间产物,验证并交付后清理;持续SDK/AVD/项目环境仍保留项目内。
部署数据检查:必须在更新前将逐项文件摘要保存到受保护材料,区分用户源/配置与已登记可再生缓存;不能只保留进程内字典和总差异数。更新后逐项核验,报告仅输出脱敏分类与统计。原始受保护基线不进入普通日志或Git。缺少基线时明确标记追溯验证不足,不能用启动成功替代源文件不变证据。
@@ -92,3 +92,8 @@ python "移动端相关内容/安卓app/如何安卓测试/run_wifi_switch_test.
- [模拟器网络能力](https://developer.android.com/studio/run/emulator-networking):新版本支持部分 Bluetooth 模拟,不能笼统写“模拟器完全不支持 BLE”;本项目 fake 测试仍不等于物理射频、实际核桃派或厂商兼容验证。
以上是制定项目选测规则的依据,具体场景划分是本项目的工程选择,不是官方强制清单。
## 2026-10-10 动画浏览
ANDROID-TEST-ANIMATION:共享JVM验证部分下载恢复、修订拒绝、当前项在完整消息边界抢占、后台暂停、暖缓存及WiFi只读回退。独立模拟器选择content / animationViewer,检查帧解码标记推进、全屏、返回及后台状态。登记真机定向选择animation-library,验证实际Controller优先补传、缓存复用及现有BLE/WiFi分块一致;cache-storage覆盖动画PNG校验、损坏记录、修订清理。上述读取不改变核桃派内容,不切网、不启用摄像头,不扩展到无关页面。