1.项目首页集成vlayout框架动态加载5种布局模式;
2.页面适配采用Autolayout方案,基本满足适配要求;
3.除去常用的微信支付宝,还集成了招行一网通支付方式;
4.网络请求采用目前主流方案:retrofit + Rxjava;
5.由于是电商平台,图片较耗流量,图片加载采用Glide,二级缓存,提高加载效率,并节流;
遇到的问题及解决方案:
1.适配: Autolayout方案对自定义view适配较差,所以适配改换为限定符适配,效果更好.
2.首页加载慢:由于以前首页采用tablayou+众多fragment展示商品,进入首页瞬间发起多个网络请求.优化为懒加载模式.页面显示出来后再发起请求.
3.首页滑动卡顿:未开启硬件加速及页面布局较为复杂,在低端手机上更为明显. 优化页面布局嵌套,尽量减少布局层级,采用帧或线性等简单布局,并尽量控制布局重绘次数,防止过度重绘.
4.滑动冲突:SwipeRefresh和ScrollView/RecyclerView在垂直方向上的滑动冲突. 解决:添加监听方法,滑到顶端时再放开SwipeRefresh的滑动. NestScrollView和RecylerView滑动冲突可使用系统提供的方法解决.
5.网络请求引发的内存泄露问题,两种解决方法:一种是继承RxLifecycle提供的方法绑定Activity的生命周期.另一种是当页面销毁时及时手动解除订阅unSubscribe.
6.由于项目中集成的许多sdk需要在MyApplication中初始化,项目中的直播和推送会开启多进程,所以在初始化时需要根据进程名称初始化相应sdk,否则一方面可能会使app启动较慢,另一方面多次初始化一些三方sdk导致在logcat中打印一些报错日志.