微信“简洁版”来了,开启后有点刺激啊

众所周知,小雷是微信野生产品经理,江湖人称微信挖掘机(www.shuishua.cn)。

无论是微信推出的新功能,还是那些早被用户遗忘的隐藏功能,小雷基本都为小伙伴们详细解析过。

当然啦,做功能深挖这件事儿并非徒劳。

把微信难以发现的实用功能找出来,用户也能获得更好的使用体验。

之前小雷找出来的隐藏功能都是浮于表面。

大多数情况下,只是对某个功能做个体验,并告诉大伙这能搞出什么新玩法。

而今天小雷打算来点硬货,整点深入的微信隐藏功能解析。

这个功能涉及到微信底层,也许不是每个人都愿意折腾。

但看完这篇文章,大家也会对微信有更深的了解。

未曾见过的微信Hardcoder框架

微信更新到现在,安装包早已突破200MB,内存占用和性能消耗都在不断提高。

除了新功能的加入,更重要的原因是底层代码和框架也在不断增加。

而对微信,甚至是系统流畅度影响最大的,还得看这个叫做Hardcoder的通信框架。

估计大家用了那么多年微信,还是第一次见这玩意儿吧。

So,小雷先和大家聊聊,这个Hardcoder通信框架到底是啥玩意、是用来干嘛的。

Hardcoder框架由腾讯开发,并在2019年全面开源。

实际上也是在几年前就被应用到微信底层了,只是日常使用中很难被发现。

按开源文档的说法嘛,它是为了优化微信性能而诞生的。

其实很好理解,各大手机厂商都对系统有自己的一套性能调度。

比如MIUI是出了名的调度激进,玩游戏时发热明显,OV则相对保守,限制帧率来控制温度。

而厂商对于微信的性能调度也很简单粗暴。

系统识别到微信启动或切换页面时,就会瞬间提高CPU频率,从而提高微信的流畅度。

在早期微信功能不多的时候,确实可以这么做嗷。

但随着微信不断迭代,功能也越来越复杂,小程序、聊天、公众号、相册等都是单独的界面。

腾讯觉得,只靠系统那一套调度,已经不能满足微信对流畅度的需求了。

于是就有了小雷正在讨论的Hardcoder框架。

大家可以看下图,传统的系统调度方案是先由App发出获取性能的需求。

这个需求被安卓系统框架接收后,就会给予这个App合适的性能调度。

但有了Hardcoder框架后,微信就不用再看系统调度的脸色了,它为所欲为,可以随意调用系统性能资源。

比如从主界面进入聊天界面时,拉高CPU频率,甚至把微信某些线程挪到CPU超大核里面运行,

一切都为了让微信用起来更加流畅。

既然能做到绕过系统调度,Hardcoder肯定也需要手机厂商配合的。

喏,就是把服务端放进国内的系统定制UI(MIUI、Flyme等)。

再把客户端放进微信里,这样微信就可以绕过系统那套调度。

用“私人搭建”的Hardcoder框架来调用CPU和GPU的性能资源。

说人话就是微信跟国内某些定制ROM搞了合作,让系统给微信开了调度白名单。

目前Hadrcoder框架已经接入了OPPO、vivo、华为、小米、三星和魅族等主流手机厂商。

不得不说,鹅厂的影响力还是不容小觑。

那么问题来了,Hardcoder对我们,到底是好还是坏呢?

以开源文档来看,肯定是好处多多了,既能提高微信各种场景的流畅度,又不会导致功耗大幅提升。

官方甚至表示,相当于只用2%的功耗换取平均20%的性能提升,效率高得离谱。

但说实话,大家平时也是24小时挂着微信的用户了。

微信流畅是流畅,但到底省不省电,相信各位心里都有数的,只能说中规中矩。

即使Hardcoder已经专门对不同的机型做调度适配,但总会有适配得不够到位的地方。

比如小雷明明用的是旗舰手机,几个中核就可以带起来微信,Hardcoder硬是要把微信放在大核上运行,徒增功耗。

Hardcoder虽然可以让微信的流畅度得到保证,但毫无疑问是提升牺牲发热和功耗。

另一方面,Hardcoder框架只能实现微信与系统之间的沟通。

它不知道整个手机目前处于啥状态,在某些场景下会导致手机耗电更加严重。

比如手机电量不足时,基本上都会自动开启省电模式,此时手机CPU会以低功耗模式运行。

但由于微信不知道整个系统的情况,它只会不断给系统提要求:

“我要打开朋友圈了,给我提频!”

“我要发送文件给好友了,再提一下CPU频率!”

带来的问题就是省电模式一点都不省电,用户甚至会以为是系统出了问题。

好比小雷的手机CPU还在躺着睡觉,突然被Hardcoder半夜敲门,你说CPU气不气,累不累?

像骁龙888这种发热严重点的,一生气就得飙到四五十度,这谁顶得住啊。

手动调教Hardcoder,还你流畅省电的微信

既然发现了问题,我们就得着手去解决。

Hardcoder为每台配置了服务端的机子都进行了统一适配,但默认的配置并不一定适合自己的手机。

如果大家想让微信变得更省电流畅,不妨跟着小雷一起调教Hardcoder。

支持的机型列表就放在这儿了,基本覆盖了主流厂商,大伙自己看着来。

首先,我们需要一个App -- 创建快捷方式。

毕竟Hardcoder是底层框架,无法直接打开,我们得靠这个App来创建快捷方式使用。

创建快捷方式App里找到微信,进入微信的【活动列表】搜索“hard”,就能看到Hardcoder框架的快捷方式。

此时我们点击右上角的【创建】按钮,Hardcoder的快捷方式会在系统桌面上出现。

注意喽,如果点击【创建】后没发现桌面有动静,很有可能是没有给【创建快捷方式】权限。

小雷建议大家在使用前先检查一波权限。

创建好快捷方式后,我们就可以在桌面打开微信Hardcoder框架啦。

没有意外,Hardcoder果然是一大串英文,让人看得头痛欲裂。

但大家无须担心,凡是能用上的选项,小雷都会帮大家做个注释。

先看顶部部分,第一个选项是Hardcoder的总开关。

个人觉得,手机处理器性能不低于骁龙855的机型都可以关掉,让系统调度接管Hardcoder就好。

而DEBUG_LOG是日志功能,不关闭会经常产生日志,有可能影响系统流畅。

如果不是开发者,建议小伙伴们关闭。

图源:酷安@hana_shirosaki

OK,继续往下看。

开头打勾的是提频的触发条件,而CPU和IO则是提频的幅度。

CPU提频有四个等级,分别是0、1、2、3。

等级越高说明频率越小,0表示提频幅度最大,3表示提频幅度最小,与我们的认知刚好相反。

至于Bind THR,如果勾选了,微信对应的线程就会优先以大核心运行以提高流畅度。

手握888机型的机友们,要是没特别需求,最好不要勾选Bind THR。

毕竟骁龙888的X1超大核功耗很高,对性能提升还不大,能不用就不用。

图源:酷安@hana_shirosaki

再往下看,就是每个选项对应的微信线程了。

比如小雷勾选了BOOT,微信就会在启动时提高频,加快微信启动。

勾选了SEND_PIC_MSG,微信就会在发送图片时提频,保证发送图片不卡顿。

其实在小雷看来,除了涉及解码/编码的线程,其他线程都可以按需调低提频幅度,甚至彻底关闭提频。

图源:酷安@hana_shirosaki

以上的图像注释都表达得很明确,懂点搞机知识的小伙伴可以自行调教。

要是实在懒得研究,又让手机省电一点,直接把Hardcoder关掉即可。

让系统来接管微信调度,绝对不会出问题(前提是处理器性能够强)

但手机性能实在太弱的,小雷不建议大家自行调整。

毕竟Hardcoder还是能让微信变得更流畅的。

提醒一下小伙伴们,修改前最好截个图,不然你想改回去也没有备份作为参照了。

至于Hardcoder框架是好是坏,小雷作为普通用户不太好评价。

倒是很多开发者对Hardcoder并不看好。

原因很简单,万一Hardcoder被滥用了,后果将十分严重。

当所有App都接入Hardcoder并抢着占用CPU大核线程时,手机将会持续发热,长期处于高负载状态。

虽然它有自己的优势,可以直接根据App的需要进行资源调度,提高App流畅度。

但小雷依然不希望Hardcoder接入到其他App,从目前的安卓生态来看,被滥用的可能性还是挺高的。

一旦被大规模滥用,就算把地表最强A14芯片挪到安卓上,也喂不饱那些流氓App。

图片&资料来源:酷安@hana_shirosaki

《无需Root,合理把控微信的鸡血——微信Hardcoder组件选项调教入门》

主营产品:绝缘带、绝缘胶带,包装胶带,工业胶带,双面胶带,文具胶带, 示胶带,轻工日用品,捆扎机