荣耀WIN RT全面评测:实力与颜值双优的手机之选
|
亲历现场。那版系统交付前四十八小时,我在荣耀B座三楼测试间蹲着,手边是刚刷完的WIN RT样机——就是那个“荣耀WIN RT全面评测:实力与颜值双优的手机之选”标题底下吹得最狠的那台。我原以为只是个常规UI适配,结果进SystemUI一看,StatusBarPolicy里加了段空指针判空逻辑,判的居然是个null的IBinder…这东西在旧机型上跑得贼欢,到了WIN RT上一开深色模式就崩。我敢打包票,那个Binder对象在onBind()里压根没new出来,连trace都懒得打——它就躺在那里,等你点开通知栏的那一刻,咔,ProcessRecord null。 桌上机械键盘声一直在响,青轴,嗒、嗒、嗒,像倒计时。隔壁外包同事老周蹲在窗台边抠APK包,用七z解压完又手敲签名验证脚本,他右手小指头缠着创可贴——前天撕MTK联调日志时划的。楼下便利店的关东煮摊子凌晨一点还没收,咕嘟咕嘟,海带结浮上来又沉下去,我闻见味儿了,但没动。窗台堆着十六台测试机,WIN RT占八台,全朝南晒着,摸上去烫手,后盖有点软化迹象,有台的Home键反馈延迟从十八秒飘到二十三秒,我拿记号笔在机身背面写了“热飘移?”,没截图,也没提bug单。这个我说不准。 厂商对接人王工进来第三趟,西装领带松了,端着保温杯,说“张哥你看这个状态栏图标圆角能不能再收两像素”。我说行,我改,顺手把status_bar_icon_padding_left从48dp调成46dp——然后整个system_server里NotificationShadeController重绘链就卡死三帧。不是ANR,是卡死,三帧不走,手指划屏肉眼可见粘滞。我当场把logcat拉到Filter:“NotificationShadeController.onDraw”,空的。啥都没打。它不报错,只沉默。我翻了两遍ViewRootImpl.java,又翻了一遍PhoneWindowManager.java,最后发现是他们新加了个叫“DynamicCornerRounder”的服务,注册时机在WindowManagerService初始化之前……但没做NullCheck。我敢打包票,那服务在WIN RT启动阶段根本没起来,却硬被StatusBarManagerService调了三次getRoundInfo()。 编译等待时窗外洒水车经过,水柱斜劈在玻璃上,哗一下,整面窗变成毛玻璃。我盯着那道水痕看了十一秒,突然想起上周五测试妹子小陈发我截图,说WIN RT的负一屏下拉刷新图标会随机翻转180度——她录了三次视频,第一次翻,第二次正,第三次翻,时间间隔分别是三百七十二毫秒、五百一十九毫秒、二百零三毫秒。我没回,直接扔进待排期。现在想想,那翻转大概率是SurfaceFlinger层BufferQueue里一个flag位没对齐,和StatusIcon的drawableLevel绑定错了。但谁管呢?王工说发布会PPT已经锁版,文案写的是“优胜劣汰”。
产品概念图,仅供参考 优胜劣汰。哈。他们把旧机型里跑得最烂的三套自定义Animation抽出来,硬塞进WIN RT的TransitionManager里,就因为“历史兼容”。其中一套缩放动画,在PixelFormat.RGBA_8888的Surface上跑着跑着自己切到RGBX_8888,GPU纹理采样器懵了,吐出个绿闪块。我修完那个bufferFormat匹配逻辑,发现SystemUIService的startForeground()被他们改成了startForeground(1, new Notification())——ID填的1。结果整机所有NotificationChannel优先级乱套,连微信红点都收不到广播。我删掉那行,换回原来的startForeground(Service.START_NOT_STICKY, null),小陈在测试群里说“负一屏终于不抖了”。但没人提那绿闪块,也没人问为啥抖。我原以为只要把Launcher3里的quickstep适配绕过就行了,结果WIN RT偷偷启用了全新的ActivityTaskManager策略——不是基于TaskRecord排序,而是按LaunchTime戳取模,模数为7。所以你切后台十次,第七次必然冷启动,不管是不是recent。这个我试了三十七轮,每次都是第七次,铁律。但文档里只写“优化多任务调度”,没写模7。我就坐在那儿,看着时间走到凌晨两点十七分,泡面汤凉了,桌角还留着半块没拆封的咖啡糖,硬得像石头。 前两天跟某OEM的人吃饭,他说他们新机型把InputManagerService的injectInputEvent()钩子砍了三成,说是“省功耗”。我就笑,没接话。其实我心里清楚,WIN RT的悬浮球响应延迟,问题不在手势识别算法,就在那个被砍掉的inputEvent queue缓冲区——他们给设成了64字节,而实际事件体平均要九十二字节。但测不出,Log里全是DEBUG级别的“Input event dispatched”,没warning,没error,只有用户手指悬停时那一丁点不可描述的迟滞感。这东西怎么提单?写“手感差”?还是“触控哲学未对齐”? 现在我把WIN RT样机全锁进防静电柜了,钥匙在左手抽屉第二格。王工明天早上九点要验收,说只要能进桌面、亮屏、弹通知就行。别的?他说“后面v2.1补”。我点头,转身去打印机旁撕了张A4纸,随手画了个圆角矩形,边长比例2.3:1,标了“图标参考”,贴在柜门上。至于StatusIcon的DrawableState同步问题?我留了个TODO注释:“等他们哪天想通‘优胜’到底胜谁、‘劣汰’又淘汰啥再说”。 (编辑:52刷机网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

