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