华为Pura 80 Ultra:影像革新,重新定义手机多功能应用标准
|
亲历现场。那个大版本封版前四十八小时,我盯着Pura 80 Ultra的logcat滚了整整三轮——不是看影像模块,是看它调用相机SDK时怎么把一个普通扫码界面拖成灰屏卡死,还顺手把后台的邮件同步服务给掐了呼吸。我原以为是预加载策略冲突,结果扒到底层发现是HAL层把ISP的pipeline状态机给“优胜劣汰”掉了:老状态没释放,新状态直接覆盖,中间那十七帧全靠系统自己硬扛着凑数。这个我敢打包票,因为第三轮复现时我连trace点都插到vendor分区里了,日志里清清楚楚写着“state transition forced, previous context lost”。 桌上三杯没喝的咖啡,最左那杯奶泡结了膜,中间那杯沉底的糖浆拉出细丝,右边那杯连杯壁都凉透了。组长蹲在隔壁工位拿热风枪吹主板散热片,说是怀疑VC均热板焊接虚焊——结果吹了四十分钟,问题还在。开发跑来递了个热补丁,我接过来二话没说直接刷进userdebug环境,刚敲完adb reboot,手机就在我手里震了两下,主屏弹出“应用服务意外终止”,底下小字写着“com.huawei.camera.service”,而我刚才根本没开相机。这个我说不准,因为日志里没报错,只有一行“[CAM] session dropped w/o error code”。
外观展示图,仅供参考 测试间的灯管闪,不是整排,就正对我工位头顶那根,隔十九秒闪一次,像心跳。我数过,从凌晨一点十三分开始,一直闪到四点零七分,中间断过一次,是物业上来换镇流器。工位隔板上贴的便利贴,蓝边的,写着“再验一次GFX fallback路径”,字是产品经理写的,他昨儿下午三点冲进来拍我桌子说“你们测的不是真用户场景”,然后把一份Excel扔我键盘上,里头三百七十二个“高优兼容项”,其中两百零九个跟影像无关——比如微信转发图片时触发NFC震动反馈延迟,比如双击电源键唤醒语音助手后切回桌面时状态栏图标错位。我没动那张便利贴,但今天早上它被风吹歪了四十五度。 先扔结论后补细节。它所谓“重新定义多功能应用标准”,其实就是在干一件事:把所有能砍的旧链路全砍了,不问依赖,不看回退,就留一条最短路径,美其名曰“影像优先调度”。好?好。但这条路径要是突然断了呢?我们测出三个地方会直接崩:一是锁屏状态下连续调用五次AI构图,第六次会触发SurfaceFlinger的BufferQueue异常拒绝,UI线程卡死十七秒;二是第三方相册App用MediaStore API批量读取HEIF缩略图时,Pura 80 Ultra的ImageDecoder会静默跳过其中三十一个文件,不抛异常、不回调onError,就默默返回null——这事儿开发改了三版,最后一版是加了“if (isPura80Ultra && isHeifThumbnail) { return fakeBitmap(); }”,假图是纯灰色的,RGBA值全填0xFF4D4D4D。你敢信? 还有第三个,更邪门:夜间模式下开启超级微距,然后切到微信拍一拍,这时候如果恰好收到一条5G VoNR来电,通话建立瞬间,前后摄会同时黑屏并输出一段十六秒静音视频——这段视频文件真实存在,metadata里写着codec=hevc,duration=16.032,但所有帧的PTS全为0。我原以为是时间戳同步错乱,结果抓了三天波形,发现是AudioFlinger往MediaCodec里灌PCM数据时,偷偷把VideoCodec的venc接口指针重映射了。这个我没法打包票,但我在两台真机上都复现了,且仅限那个大版本。上一版没有,再上一版也没有。 凌晨打车回家的司机在听评书,《隋唐演义》单田芳那段“罗成叫关”,我听见他说“枪尖挑起灯笼火,照见半截铁罗衣”……就这句,反复听了四遍。车窗外路灯一格一格扫过,我忽然想起昨天下午产品经理坐我对面,指甲敲着桌子说:“你们别老盯着崩溃率,要看‘用户感知流畅度’。”我点头,心里想的是——感知个屁,他连自己埋的ServiceConnection leak都还没修,上周三的CRASH_REPORT还是我帮他从systrace里扒出来贴进Jira的。 冷眼。说“优胜劣汰”没问题,可淘汰的不该是稳定性基线。它把旧调度模型判为“冗余”,就把sync barrier的timeout阈值从八百毫秒砍到一百二十毫秒;它嫌HDR合成慢,就把tone mapping线程从SCHED_FIFO改成SCHED_OTHER;它觉得内存紧张,就让CameraService在低内存状态下自动杀掉PreviewBufferPool……每一步都“合理”,每一步都精准踩在临界点上,合起来就是一套脆得像蛋壳的影像流水线。崩一次?不崩。崩三次?也不崩。但崩到第七次的时候,系统会突然把整个SurfaceFlinger进程重置,这时候连Settings里的蓝牙开关都会变成灰色,得重启。这个我没写进日报,因为没人认领——HAL组说这是framework的事,framework说这是HAL没守spec,最后甩锅给“三方驱动适配不足”。 现在我要去重刷一遍那个热补丁,但这次不刷system分区,刷vendor_boot。昨天开发塞给我一个未签名的init.rc片段,说“可能有用”。我不信,但得试。另外,得找组长借热风枪——我怀疑VC板子真有点问题,毕竟灯管闪的节奏和GPU温度曲线的抖动频率几乎一致。反正,先烧再说。 (编辑:171手机网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

