文章目录
- 1.布局中Pag不显示的问题
- 2.数据库降级问题
- 3.RecycleView 列表滑动卡顿
1.布局中Pag不显示的问题
在调查一个pag不显示的问题,整体逻辑没有问题,但是就是不显示
pag不显示的根本原因大概有文件找不到,一个是路径问题,一个是配置文件的问题
PAGFile.Load(context.getAssets(),"abc.png")
这个一般不会是路径问题,因为,context,getAssets()就是assets目录下去找了,除非你的代码是这样写的
PAGFile.Load(context.getAssets(),"../abc.pag")
这样应该就找不到了
我这个问题是多渠道包的问题,我有2个渠道一个是A渠道,一个是B渠道,我的资源放在了A
渠道的assets下面,但是如果多渠道没有配置的话,他默认是找main/assets的
但是main/assets里面并没有我的abc.pag,所以就不能显示
最终重新配置渠道就解决了,如下:
sourceSets {A {assets.srcDirs "src/main/assets", "src/A/assets"}
}
2.数据库降级问题
android.database.sqlite.SQLiteException,Can't downgrade database from version 25 to 24
数据库问题,不能降级,要升级,否则直接崩溃。
3.RecycleView 列表滑动卡顿
背景是这样的,我使用的这个列表主要是加载图片,一开始几张图片并没有卡顿,当我添加了几个上百张之后滑动出现卡顿。通过trace分析,发现一帧干了300多ms,正常60HZ的屏幕一帧也就是 1000ms ÷ 60 ≈ 16.67 毫秒(ms)。所以还是APP自身的问题。
从代码上看没有任何问题,Glide.with加载图片,其余Glide之外的操作也没有耗时,没有任何头绪。
紧接着我通过top命令查看CPU占用率发现当我滑动的时候,当前应用的CPU占用率非常高,手指停止之后,CPU占用率就恢复正常了,这证明滑动的过程中一直吃在系统资源,所以我再次开始分析,只有Glide这里有对bitmap加载图片的处理,代码如下:
Glide.with(imageView.getContext()).load(url).override(targetWidth, targetHeight).centerCrop().error(R.drawable.logd_err).into(imageView);
上面这串代码是在ListAdapter中的onBinderViewHolder()当我们滑动列表的时候,onBinderViewHolder会不断的加载图片,导致频繁的执行压缩Bitmap导致占用内存。所以直接将 override(targetWidth, targetHeight) 删掉就可以了。