简介
结合实际的开发过程,记录下来!
由问题引发解决方法以及项目种感觉应该用到的库!
一、遇到的问题
1、问题:新搭建了一个页面,但是点击进去发现卡顿:
解决过程
(1)由于页面布局整体是ScrollView,所以先从ScrollView入手,将ScrollView的 android:scrollbars="none"
感觉有点效果,但还是有些卡顿!
(2)该界面用了不少本地的图片。想想会不会图片占用内存过大,打开AS自带的Profiler,发现该界面打开内存瞬间暴增了好几十M,所以确定 了问题所在
(3)由于项目使用的Glide,所以将这些在xml中配置的ImageView的图片,使用Glide代码动态加载,经过一番的修改,内存降下来了,页面流畅了!
思考
我放到项目中图片不大啊,那个界面最大的才200k,为何多占用40多M内存,建议看下面文章
Android中一张图片占多大内存
建议
开发新的界面,尤其是本地图片比较多(网络图片一般用框架加载,框架一般都会处理这个图片占内存问题),建议打卡Profiler查看内存情况,另外也建议项目中配置leakcanary,最好是不要嫌麻烦,可以用图片框架
进行加载处理、
二、建议
1、
在项目线上之后,经常出现bug解决问题,建议建立自己的bug记录表,可以方便以后查阅!
2、文件路径
项目中一般涉及到文件的保存功能,建议配置文件工具类,方便统一管理路径以及进行文件的相关操作
三框架类
1、图片压缩库
2、内存检测类
3、图片裁剪类
该文章也分析了另外几个裁剪框架的使用情况作为参照
uCrop
如果想使用手机自带的裁剪程序可以参考
使用安卓自带裁剪功能