vivo Y37c深度评测:高性价比新晋爆款
|
亲历现场。那版系统交付前四十八小时,vivo Y37c评测样机刚塞进我工位底下第三层抽屉——没拆封,就一盒灰蓝色硬纸板,边角压得有点翘。我原以为是测试组自己写的稿子,结果凌晨两点接厂商对接人老周电话,语音里他嚼着关东煮海带结,“你快看看这个标题:‘vivo Y37c深度评测:高性价比新晋爆款’,我们运营今天上午全渠道上线,但系统里‘优胜劣汰’那块逻辑根本没过测。” 我抓起桌上机械键盘,连按三下空格键——不是敲代码,就是听那“咔哒、咔哒、咔哒”声。太熟了,像心电图平直前最后一串室早。然后点开IDE,编译跑起来,光标在构建窗口里卡在“merge dex”那一行,不动。窗外洒水车准时拐过十字口,喷头“嘶——”一声压过树梢,水雾糊了半扇玻璃,我盯着它看了二十七秒,直到老周微信弹出一张截图:系统设置里“电池健康度”模块点击后闪退,堆栈指向一个叫`BatterySweepService`的类,而这个类在Y37c上压根没注册receiver。 那个功能失灵,真的就只是没注册。不是多线程冲突,不是Binder泄漏,不是Vendor HAL兼容性问题,就是Manifest里少了一行intent-filter。我当场把键盘推远,手悬在半空,又收回来,摸了摸后颈——烫。楼下便利店灯还亮着,关东煮锅咕嘟咕嘟冒泡的声音从通风管里钻上来,混着一点葱油味。测试妹子小林当时正蹲在窗台边擦三台Y37c的屏幕,那几台机器堆在铝窗台上,晒了一下午,后壳发烫,指纹油印子擦掉又立刻泛出来,她袖口沾了点白灰,可能是墙皮掉的。 “优胜劣汰”这个点,他们文案里写的是“智能调度底层资源,让高负载服务存活,低频服务自然沉降”。可实际上呢?我扒了那版系统的AMS调度策略补丁,发现所谓“沉降”只是把Activity进程优先级调成`THREAD_PRIORITY_LESS_FAVORABLE`再杀一遍,根本不等GC,也不走`onTrimMemory()`——这就等于让快递员把包裹塞进电梯后直接砍断缆绳。上周OPPO A12s实测同策略,五台机器全在连续启动七次相机后OOM;小米Note13上跑过一轮,杀后台时连微信通知栏都断三秒;但我们给vivo交的方案里,连个`isLowRamDevice()`判断都没加——因为那版系统自己返回false,无论真伪。 我敢打包票:Y37c在冷启动状态下第一次打开相册,预加载图库缩略图的线程池会创建十七个Worker,但其中八个根本没分配到CPU时间片——它们卡在`Blocked on Binder`状态,等一个永远不会响应的`IQuickSwitchService`。这个我查了三次dumpsys,两次看trace,一次用Systrace截帧——帧里能看到那八个线程排在队列最尾,前面堵着两个`system_server`的Binder线程,一个在等GPU同步栅栏,另一个……等一个已经被kill掉的vendor进程的死亡回调。这种事没法修,只能绕。我们绕了——在启动相册前先发一条无感广播,强制唤醒那个vendor进程。但这玩意儿不能写进文档,写了就是承认设计缺陷。所以最后提交的patch里,那条广播叫`ACTION_LAUNCH_PREWARM_MAGIC_V1`。 老周说运营要“爆款”,我就得让“优胜劣汰”看起来像真的在淘汰。于是我们在`ActivityManagerService.java`里埋了个假钩子:当检测到前台Activity是`com.vivo.gallery/.activity.AlbumViewActivity`,就偷偷把当前进程oom_adj值临时设成-17,比systemui还低两档。这操作本身不违法,也不崩溃,就是纯粹骗Linux内核。但问题来了——有台Y37c样机的`/proc/[pid]/oom_score_adj`读出来始终是0,查了才知道是vivo定制内核里把`proc_oom_score_adj_write()`函数删了重写,新版本返回值只认-12到+15。这个我说不准,到底是不是他们故意留的坑,还是上游内核分支合错了,反正测试组没人去问。我就照旧打patch,发版,等上线。 昨天小林抱着三台Y37c来我工位,说其中一台录屏时WiFi图标会间歇性消失。我拿过来试了十五分钟,没复现。她说:“就在我拍视频教程那会儿,特别准,一录就丢。”我把手机扣桌上,转身开了台Nexus 5X装老版AOSP跑同样的录屏逻辑——它WiFi图标也没丢。我顿了一下,又翻出Y37c的kernel log,grep `wlan`,发现`wlan: wiphy_unregister`在录屏启停瞬间被调用了两次,第二次是空指针。这不是我们的模块,是WiFi driver vendor的bug。但这时候改driver?不可能。所以最终方案是:在录屏service里加个`postDelayed`,三秒后重新setWifiIconVisibility(true)。这个操作本身很糙,但有效。我写完,敲回车,机械键盘声音特别响,隔壁工位的外包同事老陈抬头看了我一眼,低头继续焊他那块没用的USB-C转接板。 其实最烦的不是改bug,是改完还得写一句“本优化已通过vivo Y37c深度适配验证”。验证?谁验的?小林昨天用那台WiFi丢图标的机器跑了十轮基准测试,全是绿的。她把报告甩给我时头发上有股关东煮汤底的咸鲜气,我没闻错。测试机还在窗台晒着,壳子越来越烫,像一块刚出炉的烙铁。
产品概念图,仅供参考 现在我得去仓库领新的Y37c样机——老周说这次换了批次,屏蔽罩物料不一样,蓝牙扫描延迟波动大了三点二毫秒。我不确定是焊点热胀冷缩导致的射频耦合变化,还是他们BSP团队悄悄动了`bt_vendor_qcom.c`里的`BTM_SEC_MAX_RMT_NAME_REQS`宏定义。反正得重测。我先把桌上这杯冷透的咖啡泼进绿植盆里,土面浮起一层油膜。再开机。 (编辑:52刷机网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

