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,你会发现界面跳转时那么的如丝般顺滑。

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值