华为畅享70X:超长续航+卓越影像双跃升
|
亲历现场。那天凌晨三点十七分,我盯着Build Output窗口卡在“dexing com.huawei.camera2…”,光标一动不动,而桌上的机械键盘声还停在刚才按Alt+Tab切窗口那下——咔、咔、咔,三声,清脆得跟新换的Cherry MX Blue一样假。 厂商对接人老张发来第十七条钉钉语音,我按了播放,听他说“再扛两小时,产线等着签样”,然后他那边传来关东煮汤底沸腾的咕嘟声,是楼下那家“福满多”,我认得那个声——他总在那儿买萝卜块,边等边回消息,汤勺磕锅沿的声音比语音清晰。 我原以为只是Camera HAL层调用路径绕了三圈,结果扒完systrace发现:主进程压根没进HAL,它在ServiceManager里卡着注册,而注册失败日志被那版系统给吞了——不是静默,是直接没写,Logcat里干干净净,像有人拿棉签蘸酒精擦过。这个我敢打包票,我截了二十一次log,最后一次连logd都杀过重起,空白就是空白。 测试妹子小林把五台畅享70X堆在窗台晒着,说“散热快一点”。真晒,玻璃窗缝里渗进来的光打在机身背面反光,亮得晃眼,其中一台后盖烫得能煎蛋,我伸手碰了一下就缩回来,但摄像头模组那圈铝壳居然凉的——怪吧?凉得毫无道理。这台机子影像链路上的功耗调度表我还没看过,现在也不敢看,怕看到什么“夜间模式强制锁频341MHz”之类的东西。 超长续航+卓越影像双跃升?呵。上个版本还跑CameraX API时,Preview帧率从30掉到18,再掉到12,最后稳定在8.3帧——不是整数,是八点三,带小数点,logcat里print出来的,精确到小数点后一位,像故意嘲讽谁。但厂商验收文档写的是“满足30fps流畅预览”,连个“标称”都没加。我问过老张:“这个8.3你们测过没?”他回我一个笑脸表情,配字:“兄弟,你先把录屏功能过了。” 编译又卡住。这次卡在ResourceMerger,res/values-zh-rCN/strings.xml里一行字符串漏了转义符,夜神模式——缺了反斜杠,XML解析器没报错,但aapt2在merge时把整个dimens.xml也拖垮了。这种事儿不该出现在final build里。可它就在那儿,就在我眼皮底下,三百七十二次clean rebuild之后突然冒出来。你说气不气?不气。我早麻木了。隔壁工位外包同事阿哲昨天还在说:“咱写的不是代码,是考古报告。”他说完把保温杯拧开,水汽往上冲,糊了他眼镜片一层白雾,我看不清他眼神,但听见他嚼了两颗薄荷糖,嘎嘣、嘎嘣。 优胜劣汰。不是说这机型好,是说它把所有不能活的都剔出去了——跑不起来的API、接不住的回调、撑不住的内存峰值,全被系统底层一刀切掉,剩下来的,刚好够拍出张能发朋友圈的图。不是优化,是截肢。截完还给你装个金箍,叫“AI影像引擎”。我昨天抓包看了三次启动流程,那个引擎的.so文件加载顺序是乱的,第三次加载时才真正init,前两次全是空跑。这个我说不准是不是有意为之,但我知道它让冷启时间多了十八秒。 窗外洒水车又来了。每天四点零三分准时,喇叭循环放“为了您的健康,请及时收衣”,音调偏高,带点电流杂音。今天它拐进我们楼栋侧面小路,水柱打在消防栓铁皮壳上,砰、砰、砰,节奏比心跳还准。我抬头看窗台那堆机器,最右边那台屏幕突然自己亮了,弹出“系统更新已就绪”,进度条走了一格,停住,再没动。我没点它,也没动它,就看着它亮着,像在等谁承认它的存在。 小林刚端来一杯咖啡,纸杯沿上印着“福满多”logo,她搁桌上时碰倒了我半块饼干,碎渣掉进键盘缝隙,我懒得捡。她说“第七台测完了,录像十分钟后开始发热降频”,说完去拆新到的包装盒,胶带撕得哗啦响,声音尖利。她指甲剪得很短,指腹有茧,是常年按物理快门键磨出来的——但畅享70X没物理快门,她还在按,按空气,按习惯,按上一代机型留给她的神经反射。 我现在要把CameraProvider.cpp里一段registerAsProvider()逻辑临时打补丁,加个500ms延时。不是为了解决问题,是为了让注册动作不撞上那版系统ServiceManager的内部锁竞争窗口——这个窗口宽度我测过十一遍,平均二百零六毫秒,浮动范围在一百八十七到二百三十三之间。但我没告诉老张,也没提单,因为上周同样位置打过一次补丁,他们上线前夜回滚了,理由是“影响系统稳定性”。可他们不知道,回滚那天,我改了三行JNI桥接代码,其中一行把jint换成jlong,就为了绕过某个寄存器溢出导致的SIGSEGV——这事儿我提都没提,写了注释又删了,怕他们截图转发给上游说“外包乱改类型”。
产品概念图,仅供参考 先扔结论后补细节。这机型不是做出来的,是筛出来的;影像不是调出来的,是活下来的。至于续航?我试过让它连续录像四小时二十一分钟,第五小时刚开始就弹低电警告,接着黑屏重启。但它重启后第一件事,是自动续录——没丢帧,没断流,时间戳连着,像是从来就没停过。这事我记下来了,但没上报。毕竟验收只要求“支持连续录制四小时”,没说“必须撑过四小时二十二分钟”。 我打算明天早上九点,把那段500ms延时补丁提交,commit message写“fix race in provider registration”,不提锁竞争,不提那二百零六毫秒,就写“fix”。如果被拒,我就重命名函数,换个入口点,再交。反正这东西明天上午十点必须进beta包。别的,我不管了。 (编辑:52刷机网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

