覆蓋4.6億+設(shè)備量!微信正式開源Hardcoder框架
近日,微信開源能優(yōu)化框架Hardcoder,該框架目前已接收OPPO,vivo,華為,小米,三星,魅族等主流手機(jī)廠商,覆蓋4.6億+設(shè)備量。
如果你是一名Android開發(fā)者,想必已經(jīng)無比好奇Hardcoder到底有什么威力了吧,往下看就知道了
什么是 Hardcoder?
Hardcoder 是微信研發(fā)的一款性能優(yōu)化框架,是一套Android APP與系統(tǒng)間的通信解決方案。
Hardcoder突破了APP只能調(diào)用系統(tǒng)標(biāo)準(zhǔn)API,無法直接調(diào)用系統(tǒng)而直接利用硬件資源的問題,讓Android突破了APP只能調(diào)用系統(tǒng)標(biāo)準(zhǔn)API,無法直接調(diào)用系統(tǒng)而直接利用硬件資源的問題,讓Android APP和系統(tǒng)能實(shí)時(shí)通信。
APP能夠充分調(diào)度系統(tǒng)資源如CPU頻率,大小核,GPU頻率等來提升APP性能,系統(tǒng)能夠從APP側(cè)獲取更多信息盔甲更合理地提供系統(tǒng)資源。同時(shí),對于Android缺乏標(biāo)準(zhǔn)接口實(shí)現(xiàn)的功能,APP和系統(tǒng)也可以通過該框架實(shí)現(xiàn)規(guī)范適應(yīng)和功能擴(kuò)展。
Hardcoder 框架
Hardcoder 框架分為 Server 端和 Client 端。其中 Server 端在廠商系統(tǒng)側(cè)實(shí)現(xiàn),Client 端以 aar 形式合入到 APP中。
APP 在需要資源的時(shí)候,向 Hardcoder 的 Client 端發(fā)出請求。Hardcoder Client 端接收到請求后向 Hardcoder Server 端發(fā)出請求。Server 端接受到請求后會(huì)根據(jù)請求參數(shù)向硬件申請不同的資源,比如調(diào)整 CPU 頻率,把線程綁定到大核運(yùn)行等,實(shí)現(xiàn)了 APP 到系統(tǒng)的通信。
同時(shí)系統(tǒng)也可把當(dāng)前系統(tǒng)的狀態(tài)通過 Hardcoder Client 在 Server 端注冊的接口回調(diào)通知到 Client 端,從而 APP 可以獲取到系統(tǒng)狀態(tài),實(shí)現(xiàn)系統(tǒng)到 APP 的通信。
Hardcoder Client 端與 Server 端采用的是 LocalSocket 的通信方式,由于 Hardcoder 采用 Native 實(shí)現(xiàn),因而在 C 層使用 Linux 的 socket 接口實(shí)現(xiàn)了一套 LocalSocket 機(jī)制作為 Client 端與 Server 端之間的通信方式。
Hardcoder 適用場景
Hardcoder 框架有效提升了微信啟動(dòng)、發(fā)送視頻、小程序啟動(dòng)等重度場景的速度,朋友圈的滑動(dòng)流暢性也明顯提升,平均優(yōu)化效果達(dá) 10%-30%。
此外,由于微信作為主動(dòng)請求方可以在場景資源把控上做得更精細(xì)和準(zhǔn)確,Hardcoder 在性能得到提升的同時(shí)僅增加了 2% 的電量消耗,相當(dāng)于用 2% 的功耗換取平均 20% 的性能提升。
Hardcoder 框架目前已接入 OPPO、vivo、華為、小米、三星、魅族等主流手機(jī)廠商,覆蓋 4.6億+ 設(shè)備量。
目前,Hardcoder 已經(jīng)在Github上標(biāo)星981個(gè),77個(gè)Fork(Github地址:https://github.com/Tencent/Hardcoder)