互聯(lián)網(wǎng)信息投訴平臺入口seo排名優(yōu)化哪家好
本文主要是對 Systrace 中的 Binder 和鎖信息進(jìn)行簡單介紹,簡單介紹了 Binder 的情況,介紹了 Systrace 中 Binder 通信的表現(xiàn)形式,以及 Binder 信息查看,SystemServer 鎖競爭分析等。
Binder 概述
Android 的大部分進(jìn)程間通信都使用 Binder,這里對 Binder 不做過多的解釋,想對 Binder 的實(shí)現(xiàn)有一個比較深入的了解的話,推薦你閱讀下面三篇文章
- 理解Android Binder機(jī)制1/3:驅(qū)動篇
- 理解Android Binder機(jī)制2/3:C++層
- 理解Android Binder機(jī)制3/3:Java層
之所以要單獨(dú)講 Systrace 中的 Binder 和鎖,是因?yàn)楹芏嗫D問題和響應(yīng)速度的問題,是因?yàn)榭邕M(jìn)程 binder 通信的時候,鎖競爭導(dǎo)致 binder 通信事件變長,影響了調(diào)用端。最常見的就是應(yīng)用渲染線程 dequeueBuffer 的時候 SurfaceFlinger 主線程阻塞導(dǎo)致 dequeueBuffer 耗時,從而導(dǎo)致應(yīng)用渲染出現(xiàn)卡頓; 或者 SystemServer 中的 AMS 或