华为Pura 80 Pro+深度解析:影像与性能双突破
|
亲历现场。那晚十一点半,华为Pura 80 Pro+深度解析:影像与性能双突破——这标题是市场部发来时就带波浪号的,连标点都在抖。我盯着它看了三遍,不是琢磨“双突破”怎么落地,是看那个加号是不是真加在Pro和80中间。结果测试妹子小陈拿支红笔往文档上一划:“你信这个?先信它不崩帧再说。”她刚说完,桌上机械键盘“咔哒”一声脆响,清脆得像主板焊点爆了。 我原以为这次就是调个GPU频率阈值、修两处HAL层超时,结果一进系统,CameraService进程每启三次就挂一次,日志里全是“Failed to bind to service”,可service明明活着。我盯着logcat,手悬在键盘上没敲下去——因为窗外洒水车正经过,喇叭声是“注意喷洒,请勿靠近”,节奏刚好卡在log刷屏间隙。第二遍播完,我顺手切了个adb shell,查Binder线程池状态……然后发现vendor camera hal用了新注册机制,但bootloader没清老节点缓存。我说不准这算不算那版系统的通病,但Pura 80 Pro+的sensor_list节点硬生生多出两个重复alias,一个叫“main2”,另一个叫“main2_dup”。我敢打包票,这个dup是OTA升级包打漏了,不是代码逻辑问题。
产品概念图,仅供参考 楼下便利店关东煮的蒸汽糊住了我左手边那台Mate 50的屏幕。我把它擦干净,想投屏复现问题,结果发现ScreenRecord API被强制降级成30fps且不报warning——这事儿没文档,就靠试。我试到第三轮,用的是同一个MediaProjection接口,同一套Surface参数,只是把targetSdkVersion从34改回33,它就吐出60fps。你说魔幻不魔幻?可我顾不上记,因为厂商对接人老张发来微信语音,三十秒,全程只有一句:“明天早十点要demo机,三台,全亮着,放展厅玻璃柜里。”他没说哪三台,我就去窗台摸——五台Pura 80 Pro+堆在那儿,后壳被夕阳晒得发烫,最上面那台指纹模组边缘微微翘起,像被热胀了。小陈递给我一杯速溶咖啡,杯底沉着三粒没化的糖渣。“他们说‘优胜劣汰’是影像策略?”她问。我没接话,因为我正把一段CameraCaptureSession.CaptureCallback的onClosed()回调日志拷进剪贴板——这玩意儿在Pura 80 Pro+上触发时机比标准快四百一十七毫秒,快得像抢跑。但没人告诉我它快是好事还是坏事。后来我们改了一行:把onClosed()里的release()挪到主线程Handler.post()里延后执行。崩得更欢了。再后来,外包同事阿磊说他直接砍掉了整个回调链,用stateCallback替代。我看着他提交记录,git log -p 显示只改了十二行,其中七行是注释“// temp bypass per ZJ-1983”。ZJ是老张工号前缀。这名字我见过十七次,每次出现,后面都跟着“不验证,不回归,上线即生效”。 编译等待的时候我盯着进度条,37%卡住,持续十八秒。窗外又过洒水车,这次是“前方施工,请绕行”,声调低了八度。我顺手打开冰箱,里面只剩半盒凉掉的关东煮,萝卜浮在汤上,像泡软的电路板。我把萝卜夹出来扔了,汤没动——反正喝下去也解决不了hal层service注册失败时返回EPERM却假装EAGAIN的事。 其实有次我真想问老张:你们到底要不要camera HAL重载时触发SELinux avc denail自动恢复?但这问题太蠢,蠢到我连输入法都没切过去。倒是在测试妹子小陈的工位旁看见张便签,她字迹斜着写:“主摄ISO上限锁死在28320?为什么?”底下一行铅笔小字:“查过驱动源码,不是锁,是溢出截断。”我没告诉她我查过了,她查的驱动源码版本比我手里这份新三天。我也没说,这截断值在另一台Pura 70 Ultra上压根不生效,因为它的sensor vendor_id多传了一个bit,让内核提前截了两次。 机械键盘声又来了,这次是空格键,特别重,像砸进去一颗铆钉。阿磊在隔壁喊:“你那边录屏的音频能透出来吗?”我说不能,他说他那边能——原来他把mic混进了MediaProjection音频轨道,纯属手误。结果演示那天,客户听见了我们的呼吸声,还听见了老张咳了两声。没人在意。他们只在意“双突破”的PPT第一页有没有动效,有没有同步滑入。 我今天删了三版相机配置表,全没提交。不是不想交,是交了也白交。Pura 80 Pro+的ISP pipeline在低光场景会悄悄插入一个bypass node,只在预览流走,录制流绕开——这个node没有API暴露,没有dump工具,连kernel log都不打。你只能靠eye-balling yuv frame数据差异反推。我推了两天,最后是用示波器测摄像头mipi信号时长,对比了十四次才确认。这东西不写文档,但会吃掉三帧缓冲。我不敢说它是“优胜劣汰”,我只敢说它淘汰了我们所有人。 现在我桌面上开着两个terminal,左边编译,右边watch -n 1 'adb shell dumpsys media.camera | grep -A5 "service"'。中间夹着一杯冷掉的速溶咖啡,糖渣还在杯底。我打算今晚把CameraProvider HAL的init流程再跟一遍,不一定为了修,就是看看它在哪一步开始撒谎。如果明早十点前还没理出头绪……就用阿磊那版临时方案,把回调全阉了,只留startPreview()和takePicture()两路裸调。至于“双突破”?让市场部自己突破去吧。 (编辑:52刷机网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

