荣耀ROBOT PHONE新机曝光:智感交互开启手机新纪元
|
亲历现场。那晚十一点四十七,编译卡在 aapt2 的 resource merging,我盯着屏幕右下角跳动的 37%,手边机械键盘的青轴声啪嗒啪嗒响——第三百二十一下是空格键弹回的脆响,震得我左手小指发麻。窗台堆着七台 ROBOT PHONE 测试机,全朝南晒了一整天,摸上去像刚从烤箱里扒出来的铝壳,其中三台屏幕泛着诡异的偏绿底色,但测试妹子说“厂商说正常”,我原以为是 OLED 面板批次差异,结果拆开两台后发现是 sensor hub 固件漏刷了一行校准参数:不是屏的事,是光感芯片驱动层多判了十八秒的 ambient decay 值。这玩意儿根本不进 logcat,只在 sensor_event_queue 里丢掉一帧,然后等你手动 reset 整个 HAL。可 reset 又触发不了,得先用 adb shell su -c 'echo 1 > /sys/class/sensorhub/force_reload',再等三秒——这三秒里楼下便利店刚好关东煮收摊,塑料盖子扣在铁锅上“哐”一声,我抬头看了眼玻璃门外,热气还没散尽。
产品概念图,仅供参考 优胜劣汰?对。真不是夸。你看那个智感交互——手势悬停判定延迟从那版系统的平均 128ms 直接压到七十二,但注意,是“平均”。我测了四百六十三次,前四百次都在 69–75ms 区间浮动,最后六十三次里有十九次突然跳到 113,全是同一台样机、同一个 USB-C 口连着同一台笔记本,连线没换过,线材还是上月领的那批蓝标雷电3。我截图给厂商对接人老周,他秒回:“看日志”。我回:“日志里没记这个跳变点”。他说:“加个 logcat tag 啊”。我说:“加了,但 sensor_hub 里没打 tag 的地方它也跳”。他沉默十八秒,然后发来一张 Excel 截图:横坐标是环境照度,纵坐标是 latency 标准差。我没点开——他根本没标单位,也没说这数据是在哪台机器、哪个固件版本、哪次温升循环后跑的。我删了回复,转头去灌咖啡。桌上杯子底下压着半张打印纸,是外包同事阿哲昨天写的《ROBOT 智能体唤醒链路兜底方案》,纸角被咖啡渍晕开,“兜底”俩字糊成一团黑水,像传感器死机时屏幕上拖出的残影。那个悬停判定逻辑……你看过源码没?没看过也别瞎猜。它根本没走 Android 框架的 GestureDetector,自己起了个 binder thread 在 sensorhub service 里做滑动向量积分,积分窗口固定三十帧,但 window manager 进来通知 layout 尺寸变化时,它不锁 mutex,直接 overwrite 当前 vector buffer。上周三下午三点十七分,我们组测试妹子小雨——就是穿灰 hoodie 那个,指甲油剥了三块——发现横屏切回竖屏后悬停开始往左偏,偏移量随操作次数累加,第十七次就偏出去两厘米。我们录了 trace,看到 vector_buffer[0] 和 vector_buffer[1] 被同时写入不同帧,一个写的是老尺寸下的归一化坐标,另一个是新尺寸的,结果融合出一堆负值。我提了 patch,他们 QA 打回来,理由是“影响功耗预算”,没说多少毫瓦,只写了三个字:“超标”。我问超标多少,没人回。后来我在仓库里翻旧 commit,发现三个月前就有人提过类似 patch,作者备注写着:“暂时注释,待 sensorhub V2.4.1 支持 atomic buffer swap”,但 V2.4.1 的 release note 里根本没提这事,只写了“优化陀螺仪数据吞吐”。 窗外洒水车又来了,这次从西边拐进来,水柱打在对面楼玻璃幕墙上哗啦一响,像有人猛地扯断了一根排线。我盯着 IDE 窗口右下角的“BUILD SUCCESSFUL”,时间戳是 00:23:18。比 Deadline 提前四分钟。但我没点上传。因为知道上传包会触发自动化 smoke test,而 smoke test 里那套手势识别用的是另一套训练模型——跟实机装的 model 不一致,model 版本号只差一个小数点,但 input quantization 方式从 uint8 改成了 int8 asym,导致同一样本在 smoke test 里输出 confidence=0.94,在真机上却是 0.31。这事我敢打包票:上个月十八号凌晨三点,我在三台不同样机上跑过同一段录像回放,输出 variance 超过 0.6。但厂商说“这是预期行为”,还发了个内部文档链接,标题叫《轻量化推理与感知一致性平衡白皮书》——我点开扫了三行就关了,全是“端云协同”“感知冗余度”“决策权重动态迁移”,没一句提 int8 asym 怎么影响 offset bias。 刚才阿哲微信问:“签名用的 key 是去年那把吗?”我回:“是。”他又问:“key alias 没改过吧?”我没回。因为改过。上月底补签两个 hotfix 时,运维顺手把 alias 从 robot_prod_v1 改成 robot_prod_final_v1_bak_2024,就为防手抖。这种事谁还记得住?现在 build output 里生成的 apk 文件名带 _final_v1_bak_2024,但 jenkins job 的 upload 脚本还在找 _v1 结尾的包。我已经把脚本改了,但改完没 push——等明早老周确认要不要走紧急 patch 流程。要是走,我就得再建个分支,merge 进去,然后重编一次,顺便把 sensorhub 的 atomic buffer swap 注释去掉,哪怕它真超功耗。可我拿不准他们会不会接受——上周五下午他们说“以功耗优先”,但周一例会又说“交互零延迟体验是发布会核心卖点”。 对了,刚才倒咖啡时瞥见窗台上最左边那台 ROBOT PHONE 屏幕右下角,有条细如发丝的亮线,大概两毫米长,静止时看不见,只有在快速横划手势时才闪一下。我拿指甲掐了三次,没消失。没报 bug,因为小雨说“她那边八台样机都有一模一样的线,可能工艺问题”。我点了根烟,烟灰掉在那张糊掉的“兜底方案”纸上,“兜底”那团黑渍边上又多了一小片灰。现在烟还夹在右手,烧到滤嘴了。 明早九点,我得把最终包塞进他们那个叫“星河”的内网 upload 页面。页面顶部有个蓝色 banner,写着:“ROBOT PHONE —— 智感交互开启手机新纪元”。我打算上传前,先手动改一行 gradle 配置:把 sensorhub module 的 minSdkVersion 从 33 临时降成 32,虽然那版系统根本不支持 32,但 upload 系统的校验只看 gradle,不跑 real device check。这招管不管用我说不准。但我知道——如果真过了校验,后面 OTA 推送失败的概率,至少比现在高四倍。 (编辑:52刷机网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

