鸿蒙第三方组件移植-XUpdate 精华
前言
openharmony-tpc里收录了我移植于Android平台的版本更新框架XUpdate(https://github.com/xuexiangjys/Xupdate)
。XUpdate是一个轻量级、高可用性的版本更新框架。Android版本被用到很多的产品中,我希望OpenHarmony版本的也能被很多人使用,更希望开发者提出宝贵的意见,使OpenHarmony版本的XUpdate更完善。
演示
-
默认版本更新
-
后台更新
-
强制版本更新
-
可忽略版本更新
-
自定义提示弹窗主题
-
使用系统弹窗提示
已经支持的功能
-
支持post和get两种版本检查方式,支持自定义网络请求。
-
支持设置只在wifi下进行版本更新。
-
支持静默下载(后台更新)、自动版本更新。
-
提供界面友好的版本更新提示弹窗,可自定义其主题样式。
-
支持自定义版本更新检查器、版本更新解析器、版本更新提示器、版本更新下载器、出错处理。
-
支持MD5文件校验、版本忽略、版本强制更新等功能。
-
支持自定义文件校验方法【默认是MD5校验】。
-
支持自定义请求API接口。
暂未实现的功能
- 设置自定义日志打印方法
- 安装功能、自动安装功能
- 设置安装监听
- FragmentDialog更新弹窗
- AppCompatActivity更新弹窗
代码组织结构
这是Lib包下的代码组织结构
主要接口说明:
-
版本更新检查器
IUpdateChecker
:检查是否有最新版本。 -
版本更新解析器
IUpdateParser
:解析服务端返回的数据结果。 -
版本更新提示器
IUpdatePrompter
:展示最新的版本信息。 -
版本更新下载器
IUpdateDownloader
:下载最新的版本APK安装包。 -
网络请求服务接口
IUpdateHttpService
:定义了进行网络请求的相关接口。 -
版本更新失败的监听器
OnUpdateFailureListener
。 -
版本更新apk安装的监听器
OnInstallListener
。 -
版本更新业务代理
IUpdateProxy
:负责版本更新的流程控制,调用update开始进行版本更新流程。
代码流程:
IUpdateProxy/XUpdate --- (update) ---> IUpdateChecker --->(请求服务器,获取最新版本信息)---> IUpdateParser ---> (解析服务器返回的数据,并构建UpdateEntity版本更新实体)---> IUpdateProxy ---> (如无最新版本,直接结束,否则进行下面流程)
---自动模式---> IUpdateDownloader ---> (下载最新的应用)
---非自动模式---> IUpdatePrompter ---> 给出版本更新的提示
---> 用户点击更新 ---> IUpdateDownloader ---> (下载最新的应用)
---> 用户点击(取消或忽略) ---> 结束
结尾
这个应用还有个主要的功能没有完善,那就是自动安装。我已经试过了通过系统命令和官方提供的接口(IBundleManager.getBundleInstaller().install())对APP进行自动安装,但是总会报系统错误。
希望有经验的开发者能给予我帮助。
期待作者更好的作品