目录
- 效果图
- 功能介绍
- Demo下载体验
- DownloadManager
- UpdateConfiguration
- 使用提醒
- 使用步骤
- 使用技巧
- 版本更新记录
- 哪些App正在使用
效果图







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.com/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明文网络请求问题
- [新增] 上报错误信息至服务器
















