OPPO Reno15c评测:轻薄机身,性能与影像双跃升
|
亲历现场。那天凌晨三点十七分,我盯着 Reno15c 的 SystemUI 进程在那版系统里反复自杀重生——不是 crash,是“优雅退场”,log 里还留着两行带 emoji 的 debug 信息,一个咖啡杯,一个螺旋上升箭头。厂商对接人老周发来语音:“张工你先看看是不是咱们改的 StatusBarManagerWrapper 撞了他们的新 hooks……”我按暂停键重听了三遍,他背景音里有地铁报站,但报的是北延线二期,那是去年就停运改造的——他根本没在地铁上,是在家边煮面边录的,水沸声都漏出来了。 桌上的机械键盘声又响起来了,青轴,空格键弹簧有点松,每次敲下去都多一毫秒的“咔嗒”余震。我刚把第七版 OverlayService 补丁 push 到内部 Git,测试妹子小林就甩来截图:锁屏下双击亮屏概率性失效,但只在亮屏动画播到第十八秒那一帧卡住。我信了。马上切源码定位——结果发现是她自己手抖把调试开关“disable_double_tap_gesture”设成了 true,还截图时忘了关 status bar。这个我敢打包票,她截图右下角时间戳和 adb shell date 输出差了四十三秒,设备没联网校时,但她的手机壳背面贴着张便利贴:“别动我这台!测影像算法!” 楼下便利店的关东煮今天换汤底了,飘上来一股八角混着紫菜的浮油味。我原以为是他们偷偷换了配方,结果扒拉窗户往下看,老板在收摊,铁锅底下垫着三块红砖,灶火比平时低半档——他嫌电费涨,汤熬得浅了。可这跟我正在调的 ColorManagerService.onColorSpaceChanged() 有什么关系?一点关系没有。我就顺手记下来了。 OPPO Reno15c 评测里写的“轻薄机身,性能与影像双跃升”,放别的机子可能算吹,放它身上,真是优胜劣汰——不是技术优胜,是流程筛出来的。那版系统里 CameraService 启动路径被硬塞进三个匿名 HandlerThread,每个都 setPriority(THREAD_PRIORITY_FOREGROUND),但没一处做 thread.join() 或 isAlive() 判定。结果就是预览一开,SystemServer 就随机抽风,load 平均值飙到十二,而 CPU 调度器压根不认这个数——它只看 runqueue 长度,那长度在七和二之间跳变。我抓过三百七十二次 trace,最后一次是在测试机堆在窗台晒到发烫的那台,后盖温度四十三度,Logcat 里开始刷“Thermal HAL: throttling due to surface_temp”,可 SurfaceFlinger 日志还在打“VSYNC not missed”。这俩不打架吗?打。但它们谁都没错。一个在热保护,一个在骗自己帧率没丢。
产品概念图,仅供参考 编译等待时窗外洒水车经过,水柱撞上防火梯铁栏杆,溅起来的水雾在路灯下像一段断掉的光带。我盯着看了五秒,然后突然想起来:上周三下午,外包同事阿哲说他本地编译通过了,但我拉他分支一跑就 fail——卡在 aapt2 link 阶段,报错“resource ID not found”,可 id 是生成的,不可能不存在。后来发现是他 .gitignore 里多加了一行 “/res/values/public.xml”,他本地删了这文件手动改了 id 映射,还 commit 掉了 clean 命令……这种事,我连骂都懒得骂第三遍。那个影像双跃升?其实就一件事:他们在 HAL 层把 YUV420SP 的 v-plane 内存对齐从 16 字节改成 64 字节,单看能省下三百纳秒 copy time;但所有第三方相机 App 的 native layer 全崩,因为没人按 64 对齐 malloc。所以最后解决方案是——在 vendor.img 里埋了个 config flag,叫 “enable_vplane_64_align_for_stock_only”,默认 false。评测稿里当然不会写这个 flag,更不会写“第三方相机开启 HDR 模式时,如果用 GL_TEXTURE_EXTERNAL_OES 绑定 surface,会因 alignment mismatch 触发 Mali GPU 的 silent corruption”,这个我说不准,只见过两次,一次是小林的测试机,另一次是我自己拿小米 13 Pro 测兼容性时顺手连的 Reno15c adb,画面右半边绿色噪点呈波纹状扩散,持续六秒二十一帧,之后自动恢复。我截了图,但没报,因为 bugzilla 里已经有七条重复,标题全带“[Reno15x] green flicker w/ third-party cam”,最后一条是 OPPO 自己工程师三天前 closed 的,理由:“WONTFIX: outside scope of stock experience.” 昨天老周又来电,声音很疲惫:“张工,Reno15c 下个月量产,但 R15 Pro 工程样机刚到,CPU 核心调度逻辑全变了,你这边……”我没等他说完就挂了。挂之前听见他叹气,拖长音,像拔掉电源的风扇转速衰减曲线。现在桌上还摊着 R15c 的 kernel_defconfig 打印稿,第三页被咖啡渍晕开,刚好盖住 CONFIG_SCHED_WALT=y 这一行。我本来想划掉它,换上 CONFIG_SCHED_EAS=y,但手停住了——EAS 在那版系统里根本不生效,它只识别 walt 的 sysfs 节点名。这个细节,连高通文档都没写清楚。 算了,先烧个新镜像试试吧。烧完跑一遍 stress test,如果再出三次以上的 SurfaceControl.setLayerStack 超时,我就把 log 发给阿哲,让他用他的青轴键盘重敲一遍 commit message,这次别用 emoji。 (编辑:52刷机网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

