Android卡顿分析之手把手教会你

2020-03-04  本文已影响0人  _水蓝

第一步:

既然我们要解决UI卡顿问题,那么第一步就是写一个很卡的APP.
我自己是写了一个DEMO,listview去展示大图片,快速滑动的时候会很卡。

图片.png

第二步:

打开DDMS

然后选中调试APP进程,然后点击“Start Method profilling”


图片.png

第三步:

操作APP,复现卡顿过程

第四步:

点击“Stop Method profilling”,与第二步是同一个位置

至此trace文件已经生成,并由IDE自动打开

第五步:

最后来分析生成的trace文件.

重点来了:点击Excl Cpu Time %, 重新排序,这个排序不包含子函数占用的CPU时间,所以可以立刻找到哪个函数消耗CPU资源最多。

图片.png

可以看到最消耗CPU的函数是BitmapFactory.nativeDecodeStream()

很显然这个函数是framework层的API,我们接着往上找。

选中这个函数,然后点击Parent,再点击Parent,直到找到我们App的调用处。

图片.png

最终我们找到那个耗时函数,也就是造成卡顿的症结!!!

第六步:

最终解决:用子线程异步加载 or 用开源库来载入!!

欢迎大家一起交流 ^^

上一篇下一篇

猜你喜欢

热点阅读