微信“簡潔版”來了,開啟后有點刺激?。ㄎ⑿藕啙嵃嬗袉幔?/h1>
在閱讀此文之前,辛苦點擊右上角的“關(guān)注”,既方便您進(jìn)行討論與分享,又能給您帶來不一樣的參與感,感謝您的支持!
導(dǎo)語:
微信作為一款備受歡迎的社交應(yīng)用,每天都有數(shù)以億計的用戶在使用。然而,鮮為人知的是,在微信的底層存在一個名為Hardcoder的通信框架,它一直默默地影響著我們的使用體驗。今天,我們將深入研究這個Hardcoder框架,揭開它的神秘面紗,以及它如何影響微信的性能和電池壽命。
同時,我們還將教你如何調(diào)教Hardcoder,讓微信更省電、更流暢。
眾所周知,小雷是微信野生產(chǎn)品經(jīng)理,江湖人稱微信挖掘機。無論是微信推出的新功能,還是那些早被用戶遺忘的隱藏功能,小雷基本都為小伙伴們詳細(xì)解析過。當(dāng)然啦,做功能深挖這件事兒并非徒勞。把微信難以發(fā)現(xiàn)的實用功能找出來,用戶也能獲得更好的使用體驗。
之前小雷找出來的隱藏功能都是浮于表面。大多數(shù)情況下,只是對某個功能做個體驗,并告訴大伙這能搞出什么新玩法。
而今天小雷打算來點硬貨,整點深入的微信隱藏功能解析。這個功能涉及到微信底層,也許不是每個人都愿意折騰。但看完這篇文章,大家也會對微信有更深的了解。
未曾見過的微信Hardcoder框架,它是如何影響微信性能的呢?
微信更新到現(xiàn)在,安裝包早已突破200MB,內(nèi)存占用和性能消耗都在不斷提高。除了新功能的加入,更重要的原因是底層代碼和框架也在不斷增加。而對微信,甚至是系統(tǒng)流暢度影響最大的,還得看這個叫做Hardcoder的通信框架。
估計大家用了那么多年微信,還是第一次見這玩意兒吧。
So,小雷先和大家聊聊,這個Hardcoder通信框架到底是啥玩意、是用來干嘛的。Hardcoder框架由騰訊開發(fā),并在2019年全面開源。實際上也是在幾年前就被應(yīng)用到微信底層了,只是日常使用中很難被發(fā)現(xiàn)。按開源文檔的說法嘛,它是為了優(yōu)化微信性能而誕生的。
其實很好理解,各大手機廠商都對系統(tǒng)有自己的一套性能調(diào)度。
比如MIUI是出了名的調(diào)度激進(jìn),玩游戲時發(fā)熱明顯,OV則相對保守,限制幀率來控制溫度。而廠商對于微信的性能調(diào)度也很簡單粗暴。系統(tǒng)識別到微信啟動或切換頁面時,就會瞬間提高CPU頻率,從而提高微信的流暢度。在早期微信功能不多的時候,確實可以這么做嗷。但隨著微信不斷迭代,功能也越來越復(fù)雜,小程序、聊天、公眾號、相冊等都是單獨的界面。
騰訊覺得,只靠系統(tǒng)那一套調(diào)度,已經(jīng)不能滿足微信對流暢度的需求了。
于是就有了小雷正在討論的Hardcoder框架。大家可以看下圖,傳統(tǒng)的系統(tǒng)調(diào)度方案是先由App發(fā)出獲取性能的需求。這個需求被安卓系統(tǒng)框架接收后,就會給予這個App合適的性能調(diào)度。但有了Hardcoder框架后,微信就不用再看系統(tǒng)調(diào)度的臉色了,它為所欲為,可以隨意調(diào)用系統(tǒng)性能資源。
比如從主界面進(jìn)入聊天界面時,拉高CPU頻率,甚至把微信某些線程挪到CPU超大核里面運行,一切都為了讓微信用起來更加流暢。
既然能做到繞過系統(tǒng)調(diào)度,Hardcoder肯定也需要手機廠商配合的。喏,就是把服務(wù)端放進(jìn)國內(nèi)的系統(tǒng)定制UI。再把客戶端放進(jìn)微信里,這樣微信就可以繞過系統(tǒng)那套調(diào)度,用“私人搭建”的Hardcoder框架來調(diào)用CPU和GPU的性能資源。說人話就是微信跟國內(nèi)某些定制ROM搞了合作,讓系統(tǒng)給微信開了調(diào)度白名單。
目前Hadrcoder框架已經(jīng)接入了OPPO、vivo、華為、小米、三星和魅族等主流手機廠商。
不得不說,鵝廠的影響力還是不容小覷。
那么問題來了,Hardcoder對我們,到底是好還是壞呢?以開源文檔來看,肯定是好處多多了,既能提高微信各種場景的流暢度,又不會導(dǎo)致功耗大幅提升。官方甚至表示,相當(dāng)于只用2%的功耗換取平均20%的性能提升,效
率高得離譜。但說實話,大家平時也是24小時掛著微信的用戶了。微信流暢是流暢,但到底省不省電,相信各位心里都有數(shù)的,只能說中規(guī)中矩。
即使Hardcoder已經(jīng)專門對不同的機型做調(diào)度適配,但總會有適配得不夠到位的地方。比如小雷明明用的是旗艦手機,幾個中核就可以帶起來微信,Hardcoder硬是要把微信放在大核上運行,徒增功耗。Hardcoder雖然可以讓微信的流暢度得到保證,但毫無疑問是提升犧牲發(fā)熱和功耗。
另一方面,Hardcoder框架只能實現(xiàn)微信與系統(tǒng)之間的溝通。它不知道整個手機目前處于啥狀態(tài),在某些場景下會導(dǎo)致手機耗電更加嚴(yán)重。
比如手機電量不足時,基本上都會自動開啟省電模式,此時手機CPU會以低功耗模式運行。但由于微信不知道整個系統(tǒng)的情況,它只會不斷給系統(tǒng)提要求:“我要打開朋友圈了,給我提頻!”“我要發(fā)送文件給好友了,再提一下CPU頻率!”帶來的問題就是省電模式一點都不省電,用戶甚至?xí)詾槭窍到y(tǒng)出了問題。
好比小雷的手機CPU還在躺著睡覺,突然被Hardcoder半夜敲門,你說CPU氣不氣,累不累?
像驍龍888這種發(fā)熱嚴(yán)重點的,一生氣就得飆到四五十度,這誰頂?shù)米“ ?/p>
既然發(fā)現(xiàn)了問題,我們就得著手去解決。Hardcoder為每臺配置了服務(wù)端的機子都進(jìn)行了統(tǒng)一適配,但默認(rèn)的配置并不一定適合自己的手機。如果大家想讓微信變得更省電流暢,不妨跟著小雷一起調(diào)教Hardcoder。
支持的機型列表就放在這兒了,基本覆蓋了主流廠商,大伙自己看著來。
首先,我們需要一個App–創(chuàng)建快捷方式。
畢竟Hardcoder是底層框架,無法直接打開,我們得靠這個App來創(chuàng)建快捷方式使用。在創(chuàng)建快捷方式App里找到微信,進(jìn)入微信的【活動列表】搜索“hard”,就能看到Hardcoder框架的快捷方式。此時我們點擊右上角的【創(chuàng)建】按鈕,Hardcoder的快捷方式會在系統(tǒng)桌面上出現(xiàn)。注意嘍,如果點擊【創(chuàng)建】后沒發(fā)現(xiàn)桌面有動靜,很有可能是沒有給【創(chuàng)建快捷方式】權(quán)限。
小雷建議大家在使用前先檢查一波權(quán)限。
創(chuàng)建好快捷方式后,我們就可以在桌面打開微信Hardcoder框架啦。沒有意外,Hardcoder果然是一大串英文,讓人看得頭痛欲裂。但大家無須擔(dān)心,凡是能用上的選項,小雷都會幫大家做個注釋。
先看頂部部分,第一個選項是Hardcoder的總開關(guān)。個人覺得,手機處理器性能不低于驍龍855的機型都可以關(guān)掉,讓系統(tǒng)調(diào)度接管Hardcoder就好。
而DEBUG_LOG是日志功能,不關(guān)閉會經(jīng)常產(chǎn)生日志,有可能影響系統(tǒng)流暢。如果不是開發(fā)者,建議小伙伴們關(guān)閉。
OK,繼續(xù)往下看。開頭打勾的是提頻的觸發(fā)條件,而CPU和IO則是提頻的幅度。CPU提頻有四個等級,分別是0、1、2、3。等級越高說明頻率越小,0表示提頻幅度最大,3表示提頻幅度最小,與我們的認(rèn)知剛好相反。
至于BindTHR,如果勾選了,微信對應(yīng)的線程就會優(yōu)先以大核心運行以提高流暢度。
相關(guān)新聞
在閱讀此文之前,辛苦點擊右上角的“關(guān)注”,既方便您進(jìn)行討論與分享,又能給您帶來不一樣的參與感,感謝您的支持!
導(dǎo)語:
微信作為一款備受歡迎的社交應(yīng)用,每天都有數(shù)以億計的用戶在使用。然而,鮮為人知的是,在微信的底層存在一個名為Hardcoder的通信框架,它一直默默地影響著我們的使用體驗。今天,我們將深入研究這個Hardcoder框架,揭開它的神秘面紗,以及它如何影響微信的性能和電池壽命。
同時,我們還將教你如何調(diào)教Hardcoder,讓微信更省電、更流暢。
眾所周知,小雷是微信野生產(chǎn)品經(jīng)理,江湖人稱微信挖掘機。無論是微信推出的新功能,還是那些早被用戶遺忘的隱藏功能,小雷基本都為小伙伴們詳細(xì)解析過。當(dāng)然啦,做功能深挖這件事兒并非徒勞。把微信難以發(fā)現(xiàn)的實用功能找出來,用戶也能獲得更好的使用體驗。
之前小雷找出來的隱藏功能都是浮于表面。大多數(shù)情況下,只是對某個功能做個體驗,并告訴大伙這能搞出什么新玩法。
而今天小雷打算來點硬貨,整點深入的微信隱藏功能解析。這個功能涉及到微信底層,也許不是每個人都愿意折騰。但看完這篇文章,大家也會對微信有更深的了解。
未曾見過的微信Hardcoder框架,它是如何影響微信性能的呢?
微信更新到現(xiàn)在,安裝包早已突破200MB,內(nèi)存占用和性能消耗都在不斷提高。除了新功能的加入,更重要的原因是底層代碼和框架也在不斷增加。而對微信,甚至是系統(tǒng)流暢度影響最大的,還得看這個叫做Hardcoder的通信框架。
估計大家用了那么多年微信,還是第一次見這玩意兒吧。
So,小雷先和大家聊聊,這個Hardcoder通信框架到底是啥玩意、是用來干嘛的。Hardcoder框架由騰訊開發(fā),并在2019年全面開源。實際上也是在幾年前就被應(yīng)用到微信底層了,只是日常使用中很難被發(fā)現(xiàn)。按開源文檔的說法嘛,它是為了優(yōu)化微信性能而誕生的。
其實很好理解,各大手機廠商都對系統(tǒng)有自己的一套性能調(diào)度。
比如MIUI是出了名的調(diào)度激進(jìn),玩游戲時發(fā)熱明顯,OV則相對保守,限制幀率來控制溫度。而廠商對于微信的性能調(diào)度也很簡單粗暴。系統(tǒng)識別到微信啟動或切換頁面時,就會瞬間提高CPU頻率,從而提高微信的流暢度。在早期微信功能不多的時候,確實可以這么做嗷。但隨著微信不斷迭代,功能也越來越復(fù)雜,小程序、聊天、公眾號、相冊等都是單獨的界面。
騰訊覺得,只靠系統(tǒng)那一套調(diào)度,已經(jīng)不能滿足微信對流暢度的需求了。
于是就有了小雷正在討論的Hardcoder框架。大家可以看下圖,傳統(tǒng)的系統(tǒng)調(diào)度方案是先由App發(fā)出獲取性能的需求。這個需求被安卓系統(tǒng)框架接收后,就會給予這個App合適的性能調(diào)度。但有了Hardcoder框架后,微信就不用再看系統(tǒng)調(diào)度的臉色了,它為所欲為,可以隨意調(diào)用系統(tǒng)性能資源。
比如從主界面進(jìn)入聊天界面時,拉高CPU頻率,甚至把微信某些線程挪到CPU超大核里面運行,一切都為了讓微信用起來更加流暢。
既然能做到繞過系統(tǒng)調(diào)度,Hardcoder肯定也需要手機廠商配合的。喏,就是把服務(wù)端放進(jìn)國內(nèi)的系統(tǒng)定制UI。再把客戶端放進(jìn)微信里,這樣微信就可以繞過系統(tǒng)那套調(diào)度,用“私人搭建”的Hardcoder框架來調(diào)用CPU和GPU的性能資源。說人話就是微信跟國內(nèi)某些定制ROM搞了合作,讓系統(tǒng)給微信開了調(diào)度白名單。
目前Hadrcoder框架已經(jīng)接入了OPPO、vivo、華為、小米、三星和魅族等主流手機廠商。
不得不說,鵝廠的影響力還是不容小覷。
那么問題來了,Hardcoder對我們,到底是好還是壞呢?以開源文檔來看,肯定是好處多多了,既能提高微信各種場景的流暢度,又不會導(dǎo)致功耗大幅提升。官方甚至表示,相當(dāng)于只用2%的功耗換取平均20%的性能提升,效
率高得離譜。但說實話,大家平時也是24小時掛著微信的用戶了。微信流暢是流暢,但到底省不省電,相信各位心里都有數(shù)的,只能說中規(guī)中矩。
即使Hardcoder已經(jīng)專門對不同的機型做調(diào)度適配,但總會有適配得不夠到位的地方。比如小雷明明用的是旗艦手機,幾個中核就可以帶起來微信,Hardcoder硬是要把微信放在大核上運行,徒增功耗。Hardcoder雖然可以讓微信的流暢度得到保證,但毫無疑問是提升犧牲發(fā)熱和功耗。
另一方面,Hardcoder框架只能實現(xiàn)微信與系統(tǒng)之間的溝通。它不知道整個手機目前處于啥狀態(tài),在某些場景下會導(dǎo)致手機耗電更加嚴(yán)重。
比如手機電量不足時,基本上都會自動開啟省電模式,此時手機CPU會以低功耗模式運行。但由于微信不知道整個系統(tǒng)的情況,它只會不斷給系統(tǒng)提要求:“我要打開朋友圈了,給我提頻!”“我要發(fā)送文件給好友了,再提一下CPU頻率!”帶來的問題就是省電模式一點都不省電,用戶甚至?xí)詾槭窍到y(tǒng)出了問題。
好比小雷的手機CPU還在躺著睡覺,突然被Hardcoder半夜敲門,你說CPU氣不氣,累不累?
像驍龍888這種發(fā)熱嚴(yán)重點的,一生氣就得飆到四五十度,這誰頂?shù)米“ ?/p>
既然發(fā)現(xiàn)了問題,我們就得著手去解決。Hardcoder為每臺配置了服務(wù)端的機子都進(jìn)行了統(tǒng)一適配,但默認(rèn)的配置并不一定適合自己的手機。如果大家想讓微信變得更省電流暢,不妨跟著小雷一起調(diào)教Hardcoder。
支持的機型列表就放在這兒了,基本覆蓋了主流廠商,大伙自己看著來。
首先,我們需要一個App–創(chuàng)建快捷方式。
畢竟Hardcoder是底層框架,無法直接打開,我們得靠這個App來創(chuàng)建快捷方式使用。在創(chuàng)建快捷方式App里找到微信,進(jìn)入微信的【活動列表】搜索“hard”,就能看到Hardcoder框架的快捷方式。此時我們點擊右上角的【創(chuàng)建】按鈕,Hardcoder的快捷方式會在系統(tǒng)桌面上出現(xiàn)。注意嘍,如果點擊【創(chuàng)建】后沒發(fā)現(xiàn)桌面有動靜,很有可能是沒有給【創(chuàng)建快捷方式】權(quán)限。
小雷建議大家在使用前先檢查一波權(quán)限。
創(chuàng)建好快捷方式后,我們就可以在桌面打開微信Hardcoder框架啦。沒有意外,Hardcoder果然是一大串英文,讓人看得頭痛欲裂。但大家無須擔(dān)心,凡是能用上的選項,小雷都會幫大家做個注釋。
先看頂部部分,第一個選項是Hardcoder的總開關(guān)。個人覺得,手機處理器性能不低于驍龍855的機型都可以關(guān)掉,讓系統(tǒng)調(diào)度接管Hardcoder就好。
而DEBUG_LOG是日志功能,不關(guān)閉會經(jīng)常產(chǎn)生日志,有可能影響系統(tǒng)流暢。如果不是開發(fā)者,建議小伙伴們關(guān)閉。
OK,繼續(xù)往下看。開頭打勾的是提頻的觸發(fā)條件,而CPU和IO則是提頻的幅度。CPU提頻有四個等級,分別是0、1、2、3。等級越高說明頻率越小,0表示提頻幅度最大,3表示提頻幅度最小,與我們的認(rèn)知剛好相反。
至于BindTHR,如果勾選了,微信對應(yīng)的線程就會優(yōu)先以大核心運行以提高流暢度。