项目简介:粉丝生活是一个可以提供附近小区范围内商店购物、邻里帮忙、发布闲置、活动等周边的泛电商类社区服务平台。包含商品下单、支付、购物车、订单、小区绑定切换、搜索、快递收发等功能
技术描述:
1. 在项目架构方面, 基于Jectpack MVVM构建项目框架,实现业务逻辑和视图UI的解耦
2. 在网络请求方面, 封装 OkHttp、 RxJava 管理网络请求, 实现基于流式构建事件响应式异步操作,提高代码可读性、易于维护;基于 Glide 实现图片加载,通过弱引用增强图片的使用效率,复用bitmap内存,避免频繁回收导致的内存抖动问题
3. 地图拖动过程中,需要刷新地理位置,使用享元模式复用坐标对象,避免频繁创建
4. 自定义View实现列表横向弹性滑动切换效果,解决嵌套RecyclerView导致的滑动冲突
5. kotlin协程+Glide同步加载,减少大量图片加载引起的线程并发,使图片加载效率得到明显提升
6. 使用 InpsectCode、learkcanary、profiler等辅助工具优化代码,对可能存在ANR、OOM、过度绘制情况进行定位排查,提高稳定性,调优性能,使页面加载速度提升了10%,内存利用率节约30%,CPU性能、电量消耗大幅减少
7. loop消息循环中message printer计算消息耗时和相关堆栈,检测定位卡顿问题,解决并加以优化。使用户交互体验流畅度得到明显提升,用户活跃驻留时间增长2倍以上
8. 采用布局标签、扩充CacheViews容量、复用RecycerPool 、减少requestLayout、滑动停止图片加载、分页等方式优化RecyclerView,节约不必要内存和流量开销,列表更加丝滑,提升了用户交互体验
9. 封装、管理第三方库引入,减少依赖,对重度依赖库阅读源码理解原理进行重写拓展,提升代码可维护性、减少耦合
10. 采用IdleHandler对非必要启动任务管理, 优化 App启动效率,使启动速度提升了15%,大量减少了用户等待时间
11. 集成个推实现消息推送,处理透传消息适配订单、系统消息通知渠道
12. 采用今日头条调整density对UI进行适配,对分区存储、FileProvider、以及运行时权限请求管理等系统版本兼容进行适配,针对官方SDK版本差异做API兼容