來源:開源最前線綜合整理自:https://github.com/Tencent/Hardcoder、騰訊開源
如果你是一名Android開發者,想必已經無比好奇Hardcoder到底有什麼威力了吧,往下看就知道了
什麼是 Hardcoder?
Hardcoder突破了APP只能呼叫系統標準API,無法直接呼叫系統而直接利用硬體資源的問題,讓Android突破了APP只能呼叫系統標準API,無法直接呼叫系統而直接利用硬體資源的問題,讓Android APP和系統能實時通訊。
APP能夠充分排程系統資源如CPU頻率,大小核,GPU頻率等來提升APP效能,系統能夠從APP側獲取更多資訊盔甲更合理地提供系統資源。同時,對於Android缺乏標準介面實現的功能,APP和系統也可以通過該框架實現規範適應和功能擴充套件。
Hardcoder 框架
Hardcoder 框架分為 Server 端和 Client 端。其中 Server 端在廠商系統側實現,Client 端以 aar 形式合入到 APP中。
APP 在需要資源的時候,向 Hardcoder 的 Client 端發出請求。Hardcoder Client 端接收到請求後向 Hardcoder Server 端發出請求。Server 端接受到請求後會根據請求引數向硬體申請不同的資源,比如調整 CPU 頻率,把執行緒繫結到大核執行等,實現了 APP 到系統的通訊。
同時系統也可把當前系統的狀態通過 Hardcoder Client 在 Server 端註冊的介面回撥通知到 Client 端,從而 APP 可以獲取到系統狀態,實現系統到 APP 的通訊。
Hardcoder Client 端與 Server 端採用的是 LocalSocket 的通訊方式,由於 Hardcoder 採用 Native 實現,因而在 C 層使用 Linux 的 socket 介面實現了一套 LocalSocket 機制作為 Client 端與 Server 端之間的通訊方式。
Hardcoder 適用場景
此外,由於微信作為主動請求方可以在場景資源把控上做得更精細和準確,Hardcoder 在效能得到提升的同時僅增加了 2% 的電量消耗,相當於用 2% 的功耗換取平均 20% 的效能提升。
Hardcoder 框架目前已接入 OPPO、vivo、華為、小米、三星、魅族等主流手機廠商,覆蓋 4.6億+ 裝置量。
目前,Hardcoder 已經在Github上標星981個,77個Fork(Github地址:https://github.com/Tencent/Hardcoder)