卡顿解决方案

1.Recyclerview 滑动卡顿

a.滑动的时候不要加载图片,虽然不是在主线程,但是线程池爆掉,同时加载也会占据很多资源

recycler.setOnScrollListener(object : RecyclerView.OnScrollListener() {
            override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
                MLog.i(TAG, "onScrollStateChanged newState = $newState")
                if (newState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE){
                    Glide.with(recyclerView).pauseRequests()
                    MLog.i(TAG, "onScrollStateChanged idle Glide.with(recyclerView).pauseRequests()")
                }
            }

            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
                Glide.with(recyclerView).resumeRequests()
                MLog.i(TAG, "onScrolled Glide.with(recyclerView).resumeRequests()")
            }
        })
    }

b.图片加载可以使用缓存

Glide.with(binding.getRoot().getContext()).load(getCover(t))
                .diskCacheStrategy(DiskCacheStrategy.ALL);

c.item层级布局要简单一点

d.打印一下 滑动的时候是不是每一项都重绘了,避免每一项都重绘

e.recyclerview自己的缓存设置

2.其他的卡顿 

看cpu和内存 搜

cpu usage  和 memory usage  看看这个时间干了什么

你可能感兴趣的:(android)