Skipped 60 frames! The application may be doing too much work on its main thread

最近发现app界面跳转时界面很是卡顿,非常的明显,看看日志打印了如下

Skipped 60 frames! The application may be doing too much work on its main thread

很简单也很直白的提示了,跳过了60帧,有可能在主线程做了较为耗时的操作,但是这些操作又不至于到使程序达到ANR的地步。
既然原因找到了咱们就动手了,于是开始查找activity的耗时的操作并进行相关的优化,本以为大功告成可以撸一把了,可是问题依旧。这就尴尬了,明明已经该优化的优化了呀,真是百思不得其解。于是Google了一下,发现了其中的奥秘,原来很多人也是一样优化后并没有太大的效果,其原因在于并不是activity中的代码初始化工作造成的,而是布局界面的layout造成的,无疑的是大家都在界面中使用了很多图片或者大图片,进而造成界面的绘制花费了很长的时间。

//imagview比如引用了一张大图
<ImageView
    android:id="@+id/iv_play_dist"
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:layout_centerInParent="true"
     />

既然问题找到了,那解决的办法就简单了,如下给出一种办法:

playDistImageView= (ImageView) findViewById(R.id.iv_play_dist);
Glide.with(this).load(R.drawable.play_disc).into(playDistImageView);

思路很简单,就是不在layout文件中直接设置这张图,而是将其放到代码中进行设置,同时还可以使用图片加载框架进一步的优化。
等你做完这些,再次打开app,你会发现界面跳转时那么的如丝般顺滑。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,658评论 25 709
  • ViewPager图片切换卡顿 闲暇时想到实现一个无限轮播Banner效果,这里是通过ViewPager直接怼出来...
    紫豪阅读 10,608评论 4 6
  • 面试题总结 通用 安卓学习途径, 寻找资料学习的博客网站 AndroidStudio使用, 插件使用 安卓和苹果的...
    JingBeibei阅读 5,672评论 2 21
  • 有时候面对喧嚣的环境,就想一个人呆会。 好久没有运动了,所以下班后就直接去大蜀山啦。 穿的衣服少,风吹的很冷。 因...
    他说他的不说阅读 5,065评论 0 0
  • “如果有什么真是你梦寐以求的,那就没有任何人或事能阻拦你。” 如果真心想要拥有一件东西的话,我们真的是可以去拼命的...
    阿俊xi阅读 1,787评论 0 0