一个强悍的android版本检测更新库
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)
CheckVersionLib
现在热更新技术挺火的,大公司都出了自己的热更新框架,但是各家热更新都有各自优缺点,终究不能解决所有bug,万不得已还是得进行版本升级,这是一个android上的自动版本检测并更新库。库集成了检测版本、下载版本以及自动安装升级
特点
- 任何地方都可以检测
- 任何地方都可以弹出升级对话框
- 自定义性强,手动回调解析,适用于各种版本检测接口
- 自动处理下载和升级
- 自定义界面
- 支持强制更新
效果
使用步骤
android studio导入
compile 'com.allenliu.versionchecklib:library:1.0.6'
如何使用
1.自定义service,service继承 AVersionService
,实现其中的 onResponses(AVersionService service, String response)
抽象方法.
该方法主要是请求版本接口的回调,由于不同的使用者版本检测接口返回数据类型不一致,所以你需要自定解析数据,然后判断版本号之后调用升级对话框,如果使用库自带的直接调用如下方法: service.showVersionDialog(downloadUrl,title,updateMsg )
示例代码:
1 2 3 |
<span class="hljs-keyword">if</span> (serverVersion > clientVersion) { <span class="hljs-comment">//传入下载地址,以及版本更新消息</span> service.showVersionDialog(downloadUrl,<span class="hljs-built_in">title</span>,updateMsg );} |
如果拿到数据之后,不使用库的方法,那么你可以在回调 里做自己想做的事。记得这里需要自己手动关闭service
(如果调用showVersionDialog则不需要手动关闭)
2.在任意地方开启自定义service,并传入VersionParam
1 2 3 4 |
versionParams = new VersionParams().setRequestUrl(<span class="hljs-string">"http://www.baidu.com"</span>); <span class="hljs-keyword">Intent</span> <span class="hljs-keyword">intent</span> = new <span class="hljs-keyword">Intent</span>(this, DemoService.<span class="hljs-keyword">class</span>); <span class="hljs-keyword">intent</span>.putExtra(AVersionService.VERSION_PARAMS_KEY, versionParams); startService(<span class="hljs-keyword">intent</span>); |
VersionParams
有如下方法,除了requestUrl都是可选值
自定义界面
如果想自定义界面,只需创建一个继承自VersionDialogActivity
的Activity,Activity设置Theme为透明:
android:theme="@style/versionCheckLibvtransparentTheme"
开启Service的时候,将自定义的Activity传入VersionParams
setCustomDownloadActivityClass(CustomVersionDialogActivity.class)
- 自定义 版本dialog,重写
showVersionDialog()
,在里面实现自己的逻辑,最后调用downloadFile(url)
或者downloadFile(url,filecallback)
注意不要调用父类的方法 - 自定义 下载中dialog,重写
showLoadingDialog(int currentProgress)
,在里面实现自己的逻辑 - 自定义 下载失败dialog ,重写
showFailDialog
,实现自己的逻辑 - 强制更新。如果使用默认的版本dialog,
setCancelClickListner
回调里实现,具体用法请看demo - 自定义 版本dialog,重写
showVersionDialog()
,在里面实现自己的逻辑,最后调用downloadFile(url)
或者downloadFile(url,filecallback)
注意不要调用父类的方法 - 除此之外还可以在定义的Activity里面监听一些下载和点击回调
- 自定义 版本dialog,重写
showVersionDialog()
,在里面实现自己的逻辑,最后调用downloadFile(url)
或者downloadFile(url,filecallback)
注意不要调用父类的方法
1234567setOnDownloadSuccessListener(<span class="hljs-keyword">this</span>);setCommitClickListener(<span class="hljs-keyword">this</span>);setCancelClickListener(<span class="hljs-keyword">this</span>);setOnDownloadingListener(<span class="hljs-keyword">this</span>);
下载通知栏图标和文字替换
需要自定义图标只需在mimap文件下建立ic_launcher
图标,替换标题只需在项目xml定义app_name
属性,还有其他一些属性替换,如下表:
属性名 | 属性值 |
---|---|
versionchecklib_confirm | 确认 |
versionchecklib_cancel | 取消 |
versionchecklib_retry | 重试 |
versionchecklib_download_fail_retry | 下载失败是否重试? |
versionchecklib_download_finish | 下载完成,点击安装 |
versionchecklib_downloading | 正在下载中… |
versionchecklib_check_new_version | 检测到新版本 |
versionchecklib_download_fail | 下载失败,点击重试 |
更详细的使用请看demo
欢迎star和提issue
传送门
链接:http://www.jianshu.com/p/e246dd3b9c8a
学习日记,兼职软件设计,软件修改,毕业设计。
本文出自 学习日记,转载时请注明出处及相应链接。
本文永久链接: https://www.softwareace.cn/?p=1677