记录一次卡顿分析

Posted by on November 14, 2019
  • 最近这个版本在打开详情页明显要卡顿1-2秒甚至黑屏

  • 一个使用systrace来dum出卡顿文件查看原因

  • 一个是使用Android Studio 分析工具数据dum出具体界面每个方法耗时

  • 两种方法都试下,dum出systrace文件一个是使用Android9以上手机自带track可以dum出来,一个是使用sdk tool 下进行dum出来,这里使用第一种手机自带官方文档地址 https://developer.android.com/studio/profile/systrace/on-device

微信截图_20191114142933.png

具体步骤在文档中按照一步一步来就可以生成了,我们看下生成的文件用chrom打开

微信截图_20191114143325.png

  • 这里我们只看UIthread和renderthread两个渲染进程,卡断是发生在UIthread,我么查看里面红色的黄色F帧

微信图片_20191114143559.png

我们点击一个可以看到提示是我们不要在UI线程直接进行网络请求和耗时操作,但是具体的并没有看到于是,我们使用profiler来track出具体耗时的方法,具体的使用教程可以看这里 https://mp.weixin.qq.com/s?__biz=MzAwODY4OTk2Mg==&mid=2652051337&idx=2&sn=5093d7657cbb9cf05407de00b81dd692&chksm=808cb7ccb7fb3eda656543e96d870d31752abae4c2fba9a9ec29eb315b0aa55ed4d1d5f8442f&mpshare=1&scene=1&srcid=&sharer_sharetime=1573612298739&sharer_shareid=e2169435acf8a8661d9604ee79e531d4&key=e4392a9f794f9be24b61f934eed3fa597a636ad0e8faf858bd4b4a50c4eee3b0c44bf9a4d860df9715d888026af1591d4e1aae2cd06a68f496f37cddfb1b28ae76c60bbf574a64716dcfa6b1aa3003d4&ascene=1&uin=MjE3NTYwMTEwMA%3D%3D&devicetype=Windows+10&version=62070152&lang=zh_CN&pass_ticket=7ng1wIGueFPS4467Pw1Jo2oVAH0MkSgEGurbrkdbOKSOdD3AzzMrYfn056uz%2FzH2

TIM图片20191114141415.png

可以看到时在BaseActivity的init方法中getUriBitmap方法耗时1秒6将近2秒,查看此方法逻辑方法这里是回去请求网络图片并且转换成bitmap而且这里都是在主线程操作的,整个onCreate耗时才1秒7所以具体问题就是他,把这里进行异步操作,解决了卡顿问题