admin管理员组文章数量:1559105
请前往github查看最新介绍
appupdategithub地址
自3.0.0版本开始可以使用appupdate日志查询可以查看下载的异常信息,也可以查看哪些app正在使用,还可以一起来讨论问题哦!
由于android q版本限制后台应用启动activity,所以下载完成会发送一个通知至通知栏(忽略shownotification的值,需要允许发送通知)
由于android q版本限制应用访问外部存储目录,所以移除了setdownloadpath()功能
扫码加入qq群
目录
- 效果图
- 功能介绍
- demo下载体验
- downloadmanager
- updateconfiguration
- 使用提醒
- 使用步骤
- 使用技巧
- 版本更新记录
- 哪些app正在使用
效果图
功能介绍
- 支持androidx
- 支持后台下载
- 支持强制更新
- 支持自定义下载过程
- 支持 设备 >= android m 动态权限的申请
- 支持通知栏进度条展示(或者自定义显示进度)
- 支持android n
- 支持android o
- 支持android p
- 支持android q
- 支持中/英文双语(国际化)
- 支持自定义内置对话框样式
- 支持取消下载(如果发送了通知栏消息,则会移除)
- 支持下载完成 打开新版本后删除旧安装包文件
- 使用httpurlconnection下载,未集成其他第三方框架
demo下载体验
点击下载demo进行体验
downloadmanager:配置文档
初始化使用
downloadmanager.getinstance(this)
属性 | 描述 | 默认值 | 是否必须设置 |
---|---|---|---|
context | 上下文 | null | true |
apkurl | apk的下载地址 | null | true |
apkname | apk下载好的名字 | null | true |
downloadpath | apk下载的位置 (2.7.0以上版本已过时) | getexternalcachedir() | false |
shownewertoast | 是否提示用户 “当前已是最新版本” | false | false |
smallicon | 通知栏的图标(资源id) | -1 | true |
configuration | 这个库的额外配置 | null | false |
apkversioncode | 更新apk的versioncode (如果设置了那么库中将会进行版本判断 下面的属性也就需要设置了) | integer.min_value | false |
apkversionname | 更新apk的versionname | null | false |
apkdescription | 更新描述 | null | false |
apksize | 新版本的安装包大小(单位m) | null | false |
apkmd5 | 新安装包的md5(32位) | null | false |
updateconfiguration:配置文档
属性 | 描述 | 默认值 |
---|---|---|
notifyid | 通知栏消息id | 1011 |
notificationchannel | 适配android o的渠道通知 | 详情查阅源码 |
httpmanager | 设置自己的下载过程 | null |
enablelog | 是否需要日志输出 | true |
ondownloadlistener | 下载过程的回调 | null |
jumpinstallpage | 下载完成是否自动弹出安装页面 | true |
shownotification | 是否显示通知栏进度(后台下载提示) | true |
forcedupgrade | 是否强制升级 | false |
showbgdtoast | 是否提示 “正在后台下载新版本…” | true |
onbuttonclicklistener | 按钮点击事件回调 | null |
dialogimage | 对话框背景图片资源(图片规范参考demo) | -1 |
dialogbuttoncolor | 对话框按钮的颜色 | -1 |
dialogbuttontextcolor | 对话框按钮的文字颜色 | -1 |
dialogprogressbarcolor | 对话框进度条和文字颜色 | -1 |
使用提醒
因为目前会配合appupdate日志查询平台会产生一些网络数据,这些信息收集绝不用于任何恶意用途。
如果你不想使用,可以下载源代码进行集成并将httputil代码移除即可。
- 统计有多少app集成了appupdate
httputil#postusage - 上报下载的错误信息
httputil#postexception
使用步骤
第一步: app/build.gradle
进行依赖
implementation 'com.azhon:appupdate:ongithub'
- 如果你使用的是
androidx
,请依赖appupdatex
implementation 'com.azhon:appupdatex:ongithub'
第二步:创建downloadmanager
,更多用法请查看这里示例代码
downloadmanager manager = downloadmanager.getinstance(this);
manager.setapkname("appupdate.apk")
.setapkurl("https://raw.githubusercontent/azhon/appupdate/master/apk/appupdate.apk")
.setsmallicon(r.mipmap.ic_launcher)
.download();
如果需要显示内置的对话框那么你需要调用manager.setapkversioncode()
将新版本的versioncode填进去
第三步:混淆打包,只需保持activity
、service
不混淆
-keep public class * extends android.app.activity
-keep public class * extends android.app.service
使用技巧
- 框架内部支持中/英文 国际化(其他语言只需要在对应的
string.xml
中取相同的名字即可) - 查看版本库中的log只需要过滤
appupdate
开头的tag - 支持校验安装包的md5避免重复下载,只需要
downloadmanager
设置安装包的md5即可 - 下载完成 打开新版本后删除旧安装包文件,实现思路请移步此处
//旧版本apk的文件保存地址
boolean b = apkutil.deleteoldapk(this, getexternalcachedir().getpath() "/appupdate.apk");
- 温馨提示:升级对话框中的内容是可以上下滑动的哦!
- 如果需要实现自己一套下载过程,只需要继承
basehttpdownloadmanager
并使用listener更新进度
public class mydownload extends basehttpdownloadmanager {}
版本更新记录
-
v3.0.0(2020/06/05)
- [修复] 解决高版本不能使用http明文网络请求问题
- [新增] 上报错误信息至服务器
-
更多更新记录点此查看
j9九游会老哥俱乐部交流区的版权声明:本文标题:一个简单、轻量的android版本更新库、内置了一个漂亮的更新对话框 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1727358850a1110383.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论