华为nova 15 Ultra:影像与续航双突破,重新定义旗舰新标
|
亲历现场。那晚九点四十,我蹲在华为松山湖二期B栋三楼测试间改完第七版APK包,手抖着点构建,编译窗口卡在Dexing 83%,窗外洒水车正经过——那种老式蓝皮的,水柱甩在玻璃上哗啦一塌糊涂,声音是“嘶——嗤——”,像烧红的铁条蘸了凉水。
产品概念图,仅供参考 我原以为nova 15 Ultra这波只是影像堆料,结果跑完Camerax的PreviewSurface生命周期回调,发现它居然把HAL层onPreviewFrame的buffer复用逻辑整个重写了。不是加个flag,是真砍掉三段旧pipeline——连预分配buffer池的初始化时机都挪到vendor HAL启动前。这个我敢打包票,我扒过它那版系统的hal_vendor_imx989.so符号表,__hal_init_pool_ptr后面跟的不是init_pool_v2而是init_pool_spring_v2,spring这个词是硬塞进去的,没别的解释。楼下便利店关东煮的灯还亮着,红汤锅底咕嘟咕嘟冒泡的声音顺着通风管道飘上来。我掰着指头数:OPPO Find X7的sensor_sync模式在这台机子上直接黑屏;vivo X100的AF trigger延迟从十八秒崩成三百七十二毫秒;小米14的RAW capture连续闪三帧后自动降级成YUV。这不是兼容问题,是优胜劣汰——淘汰所有没按它新pipeline节奏呼吸的三方APP。厂商对接人老张坐我左边,嚼着最后一块萝卜,说“你们赶紧适配,下周一晨会演示”。他吐出的萝卜渣沾在口罩边缘,我没敢看他眼睛。 测试机堆在窗台,晒了一整天,背面烫得能煎蛋。五台nova 15 Ultra,三台Reno12,一台Magic6 Pro,一台Mate60 RS。最烫的是中间那台nova,银色背板摸起来像刚出炉的焊枪头。我拿红外测温枪扫了下——四十二度三,但这个我说不准,测温枪电池虚电,屏幕数字跳得乱,也可能是阳光反射干扰。 而就在刚才,外包同事阿哲用adb shell发了个dumpsys media.camera,想抓HAL的buffer stats,结果整台机子摄像头服务直接杀进程重启,连logcat都断了三秒。他骂了句脏话,低头抠机械键盘上的F12键帽,咔哒咔哒,键帽已经松了,底下露出青灰色底胶。这玩意儿我用了四年半,换过两次轴体,但每次换完三个月内,空格键一定先塌。 测试妹子小陈没说话,就坐那儿盯着Logcat窗口。她右耳戴一个耳机,左耳没戴,头发扎得特别紧,发根泛白,一看就是连熬两个通宵。她突然敲enter,执行了一句am force-stop com.android.camera,又立刻start。Camera app闪了一下,起来了,但取景框里有条竖纹,淡粉色,从顶部往下缓慢移动。我凑过去看,她说:“不是bug,是新算法,叫‘动态光晕抑制’。”我点点头,其实根本没听清,因为楼上空调外机开始嗡嗡震,低频声浪压得人后槽牙发酸。 这事儿吧,不是不能绕。比如你把CaptureRequest.Builder设成LEGACY模式,它就乖乖走老路;或者自己开个SurfaceTexture手动丢帧,假装没看见新pipeline。可问题是,一旦用了它的AI HDR+超级夜景合成,就必须挂进那个spring_v2池里——你拒绝,它不报错,它静默降级,给你一个看起来正常的Preview,但实际raw data全被它中间截走做私有增强,再吐给你时像素值早被map过三遍。这招比以前狠,以前至少留个error code让你catch,现在连Log都懒得打,干净得像没发生过。 我删了三次build.gradle里的camera2.enable_legacy_mode开关,最后一次加了个# TODO: 问张工能不能开放vendor API白名单。注释写完了,光标停在那里,没提交。隔壁工位有人在哼《孤勇者》,调子不对,唱成升key,听得我头皮发麻。 其实最难受的是,你知道它对,它确实快、确实稳、确实把sensor数据榨得比榨菜还干——但你没法抄。vivo那边同步出了个类似的HAL buffer调度器,结果自家S15上直接OOM;小米的HyperOS试了两周,最后回滚到旧版本,只因他们vendor blob不支持spring_v2的内存预锁粒度。所以什么叫“重新定义旗舰新标”?就是把旧船凿沉,扔下救生圈——但救生圈上刻着“仅限本厂认证设备”。 我起身去接水,路过茶水间看见墙上贴着打印纸,是上个月的OTA回滚率曲线图,nova系列折线在15号那天陡然拉升,峰值6.3%,原因栏写着“第三方相机崩溃引发连续闪退”。字是手写的,蓝墨水,笔画发虚,像是谁凌晨三点用签字笔匆匆补的。我没拍照,但记住了那个6.3%。现在想想,可能连这数字都是临时凑的,后台日志根本没分清楚是APP crash还是HAL异常kill。 哦对,刚才编译终于过了,Dexing结束时弹出一行绿色:[SUCCESS] Build finished in 3min 17s。我盯着那行字看了六秒,然后点开APK analyzer,查classes.dex里有没有留下任何imx989相关的硬编码字符串。没有。一个都没有。它把所有识别逻辑都压进了vendor driver的ioctl call里,连JNI层的symbol名都做了hash混淆。我叹了口气,打开微信,把截图发给厂商测试组的负责人,配文:“preview OK,raw pipeline需确认是否开放调试入口”。她回了个OK手势,没加标点。 我现在要去把机械键盘右边Shift键下面那颗螺丝拧紧。太松了,敲shift+tab切窗口时容易误触Alt+F4。这事儿我今晚必须做完——明早九点还得交第一版影像SDK对接文档初稿。文档里关于“spring_v2”的描述,我打算先空着,写个括号:(待厂商提供spec v1.2以上)。 (编辑:52刷机网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

