乐友商城

我要开发同款
熙仁2024年05月17日
68阅读
开发技术mvvm、kotlinjavaandroidKotlin、MVVM
所属分类零售电商、Jetpack

作品详情

1、项目上层分为主工程、登录、商品、收银台、订单等模块,下层分为路由、下载、检测更新、图库等公共库
2、主要负责:需求跟进、功能迭代、页面 UI 与逻辑功能的实现、购物车、搜索、收银台重构、性能优化
技术要点:
MVP+RxJava2+Retrofit 重构 app 框架
采用 MVP 模式将 Activity 中的业务逻辑全部分离出来,让 Activity 只做 UI 逻辑的处理,所有跟
Android API 无关的业务逻辑由 Presenter 层来完成,降低了耦合度,使得层级职责更加明确。
网络模块
基于 retrofit+rxjava 进行了二次封装, 构建了初始化 Retrofit 工具类的基类 NetWorkApi,内部对
OkHttpClient 进行初始化并配置了相关的拦截器,避免了重复创建 Retrofit 实例以及重复配置属性。
将拦截器的具体实现交由子类,业务开发者只需要继承并在指定的方法实现特定的拦截处理,即可将
请求头,参数等进行动态配置。
封装了 BaseObserver 来处理服务器响应以及响应数据的基类 BaseResponse,使得业务开发者只
需在使用的时候添加自己对应的接口和 Bean,调用方便简洁。
主要 UI 框架
UI 采用 View Pager 嵌套 Fragment 的方式,进行完全 lazyLoad, 主要在 Fragment 中的
setUserVisibleHint()方法中结合标识位来判断 Fragment 处于不可见到可见,可见到不可见哪种状态,
从而执行对应的网络数据加载或网络请求取消,优化网络请求 api 的设置,减少了偶现的由于网络加载带
来的卡顿,同时减少了不必要的 fragment 页面数据缓存而带来的极端情况下的内存 OOM。
性能优化
对 Application 进行优化 ,onCreate 回调方法进行优化 ,应用执行到 MainActivity 前白屏处理
减少布局中 RelativeLayout、LinearLayout 的使用 ,替换为 ConstraintLayout 提高渲染效率
通过 Layout Inspector 结合 Show GPU OverDraw 对布局进行分析,通过移除控件中不需要的背
景,使用 merage 标签减少布局层级,将背景图换成.9 的图片等操作,使用 ViewStub 在运行时动态根
据条件来决定显示哪个 View 或某个布局,来减少内存的消耗。
通过 AndResGuard 将冗长的资源路径变短 ,通过 Matrix-ApkChecker 去除无用和重复资源进行
包体积的优化
使用 okhttp 拦截器,自定义缓存 Header,通过 DiskLruchCache 将返回结果以以链接+参数进行
MD5 编码为 KEY 来进行缓存的存取,提升用户无网或弱网环境下的体验
与 H5 通信
封装 WebView 通过 JsBridge 与 h5 进行数据交互,重写重定向方法对 h5 点击链接进行拦截,通过
路由解析链接获取参数来进行 h5 跳转到原生页面
屏幕适配
采用 SmallestWidth 方案进行屏幕适配,实现了适配范围自由控制,解决了在不同分辨率手机下的
屏幕适配的问题。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论