pengchujin:Aerial 未编译会使帧时间翻倍,1.72 起安装时编译

在 Aerial-TV issue #876 的回复中,pengchujin 说明多数电视上的 Aerial 因安装器不读取编译描述、后台编译需等待空闲而长期解释执行,升级还会清掉编译结果;同一台小米 MFTR0 实测主线程每帧约从 31 ms 降至 15 ms。Aerial 1.72 起 Android 9+ 控制中心升级会在安装时编译,Android 7 仍需 ADB 或覆盖安装后手动编译,斐讯 T1 不支持前者。

作者原文

查到「卡」的一个主要原因了,不是界面越做越重:1.50 到 1.71 在同一台电视上编译好以后,各操作的帧时间几乎一样。问题是大多数电视上的 Aerial 没有被编译成机器码,一直在解释执行(大家贴的诊断里约七成是这样,Compiled 一行写着 odex 48 KB / profile waiting=true)。原因是系统安装器不读 APK 里自带的编译描述,系统的后台编译又要等电视「空闲」才运行,电视开着时基本等不到;每次升级还会把编译结果清掉,所以越常升级越容易卡。小米 MFTR0 上实测,未编译时主线程每帧慢一倍,按住方向键连续移动的帧时间约 31 ms,编译后约 15 ms。

1.72 起,从控制中心升级时系统会在安装时就编译好 Aerial,但这要安卓 9 及以上,斐讯 T1 的安卓 7.1 不支持。安卓 7 上只能用 ADB 编译一次:打开 Aerial 等 5 秒,运行 adb shell cmd package compile -m speed -f app.orchard.tv(要几十秒);或者用官网的一行命令再装一次(覆盖安装,不丢设置),装完会自动编译。以后每次升级后都要再编译一次。

{ASK}