1卡顿优化工具
CPU profiler
![](https://img.haomeiwen.com/i14355128/3bb85499e70844c1.png)
![](https://img.haomeiwen.com/i14355128/9cddd1ecac5c2274.png)
Systrace
![](https://img.haomeiwen.com/i14355128/cdd13234cb8480e6.png)
![](https://img.haomeiwen.com/i14355128/5b94c1f8155ff750.png)
![](https://img.haomeiwen.com/i14355128/26fccd4853e6db92.png)
StrictMode
![](https://img.haomeiwen.com/i14355128/60f8c4bc9131d3f0.png)
![](https://img.haomeiwen.com/i14355128/51d0eda8543f7f80.png)
![](https://img.haomeiwen.com/i14355128/f7e72f10d2e604de.png)
![](https://img.haomeiwen.com/i14355128/21096211f528b8bb.png)
![](https://img.haomeiwen.com/i14355128/e4fc595519979284.png)
2自动化卡顿方案及优化
自动化卡顿检测方案原理
系统工具适合线下针对性分析;
线上及测试环节需要自动化监测方案。
原理:
1消息处理机制,一个线程只有一个Looper
2mLogging对象在每个message处理前后被调用
3主线程卡顿,实在dispatchMessage执行耗时操作
就可以通过mLogging对象对dispatchMessage进行监控
![](https://img.haomeiwen.com/i14355128/d10549436779d044.png)
![](https://img.haomeiwen.com/i14355128/090b66b2ee6b3db1.png)
具体实现:
Looper.getMainLooper().setMessageLogging();
匹配--Dispatching 阈值时间后执行任务(获取堆栈)
匹配--Finished,任务启动之前取消掉
AndroidPreformanceMonitor实战
非侵入式的性能检测组件,通知形式弹出卡顿信息。
原理就是上面的原理
![](https://img.haomeiwen.com/i14355128/72f77df3e52bbd82.png)
![](https://img.haomeiwen.com/i14355128/185bc83d92954b57.png)
问题及优化
![](https://img.haomeiwen.com/i14355128/e25481034912a6d3.png)
![](https://img.haomeiwen.com/i14355128/3bebec0f8519da78.png)
![](https://img.haomeiwen.com/i14355128/edb868726251168e.png)
3ANR分析与实战
ANR介绍与实战
KeyDispatchTimeout ,5s
BroadcastTimeout ,前台10s,后台60s
ServiceTimeout 前台20s,后台200s
![](https://img.haomeiwen.com/i14355128/ce1822b853d02341.png)
![](https://img.haomeiwen.com/i14355128/7d39813d6f225eac.png)
模拟演示:
![](https://img.haomeiwen.com/i14355128/4748ada768bcc115.png)
主线程中也申请这把锁。
![](https://img.haomeiwen.com/i14355128/f5820eaf5a4af9a7.png)
导出文件:
![](https://img.haomeiwen.com/i14355128/54caa2fe7eb0a284.png)
![](https://img.haomeiwen.com/i14355128/2e856bca7baed615.png)
![](https://img.haomeiwen.com/i14355128/df832952128ea365.png)
ANR-watchDog原理及实战
![](https://img.haomeiwen.com/i14355128/b44568078ef9058c.png)
![](https://img.haomeiwen.com/i14355128/d0ab87da34f01370.png)
它继承自线程类,进行+1操作,如果没有执行,说明卡住了。他会封装一个ANRError:通过主线程返回堆栈信息。直接将Error throw出去,程序崩溃。
![](https://img.haomeiwen.com/i14355128/85c4923e504819dd.png)
![](https://img.haomeiwen.com/i14355128/d09916e4b0bc3f26.png)
![](https://img.haomeiwen.com/i14355128/68c4686ad12d3a59.png)
需要复写listener避免崩溃
![](https://img.haomeiwen.com/i14355128/a24059f66f22cefe.png)
4卡顿单点问题监测方案
背景介绍
自动化卡顿监测方案并不够:比如很多message,但每个时间并不够阈值时间。
体系化的解决方案务必尽早暴露问题。
单点问题:主线程IPC、DB
IPC问题检测
![](https://img.haomeiwen.com/i14355128/d99ffce86fb230bf.png)
![](https://img.haomeiwen.com/i14355128/a8bfb4b42cf269c6.png)
![](https://img.haomeiwen.com/i14355128/48cd8658525b62c0.png)
![](https://img.haomeiwen.com/i14355128/93153f1e8b9d13a2.png)
埋点“android.os,BinderProxy” 的transact
![](https://img.haomeiwen.com/i14355128/37d11779d1f46ad8.png)
![](https://img.haomeiwen.com/i14355128/655b5db1780c01be.png)
5如何实现界面秒开
实现界面秒开
![](https://img.haomeiwen.com/i14355128/6bdf8c7c5e3fd10b.png)
![](https://img.haomeiwen.com/i14355128/aa038c7e81f722f2.png)
界面秒开率统计
![](https://img.haomeiwen.com/i14355128/e007706abc22991e.png)
![](https://img.haomeiwen.com/i14355128/f75e1f60076317b5.png)
![](https://img.haomeiwen.com/i14355128/d410ac9691095547.png)
比如想hook一下log方法
![](https://img.haomeiwen.com/i14355128/cc4e8511e6619881.png)
![](https://img.haomeiwen.com/i14355128/3730bbaf82c80539.png)
统计一下秒开率
![](https://img.haomeiwen.com/i14355128/df15e948fbc890b5.png)
![](https://img.haomeiwen.com/i14355128/a106fe0637c0a971.png)
![](https://img.haomeiwen.com/i14355128/f30aba2595b3d145.png)
6优雅监控耗时盲区
耗时盲区监控背景
![](https://img.haomeiwen.com/i14355128/0fffe8594e9dc330.png)
具体演示:
![](https://img.haomeiwen.com/i14355128/4a79835ab60ce435.png)
adapter里也打个log
![](https://img.haomeiwen.com/i14355128/dcbf4d2c47297252.png)
![](https://img.haomeiwen.com/i14355128/d00761faa0d825fb.png)
出现耗时盲区
![](https://img.haomeiwen.com/i14355128/e9e6450083d2c093.png)
耗时盲区监控方案
![](https://img.haomeiwen.com/i14355128/b2191a3d0e3ba2af.png)
![](https://img.haomeiwen.com/i14355128/af027295eccf4756.png)
![](https://img.haomeiwen.com/i14355128/4cf9adbfbc7c3a08.png)
![](https://img.haomeiwen.com/i14355128/935dc83032832fef.png)
![](https://img.haomeiwen.com/i14355128/4859569b276746e0.png)
![](https://img.haomeiwen.com/i14355128/5d0710a43abd9fb5.png)
网友评论