Skipped 60 frames! The applicati

作者: 我是一座离岛 | 来源:发表于2017-04-16 13:50 被阅读1672次

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

    相关文章

      网友评论

        本文标题:Skipped 60 frames! The applicati

        本文链接:https://www.haomeiwen.com/subject/dmjaattx.html