- 支持AndroidX
- 支持后台下载
- 支持强制更新
- 支持自定义下载过程
- 支持 设备 >= Android M 动态权限的申请
- 支持通知栏进度条展示(或者自定义显示进度)
- 支持Android N
- 支持Android O
- 支持Android P
- 支持Android Q
- 支持中/英文双语(国际化)
- 支持自定义内置对话框样式
- 支持取消下载(如果发送了通知栏消息,则会移除)
- 支持下载完成 打开新版本后删除旧安装包文件
- 使用HttpURLConnection下载,未集成其他第三方框架
gradle:7.0.0
以下在root/build.gradle
添加如下代码
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
gradle:7.0.0
或以上在setting.gradle
中添加如下代码
dependencyResolutionManagement {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
implementation 'com.github.azhon:AppUpdate:3.0.6'
第二步:创建DownloadManager
,更多用法请查看这里示例代码
UpdateConfiguration configuration = new UpdateConfiguration()
DownloadManager manager = DownloadManager.getInstance(this);
manager.setApkName("appupdate.apk")
.setApkUrl("https://raw.githubusercontent.com/azhon/AppUpdate/main/apk/appupdate.apk")
.setSmallIcon(R.mipmap.ic_launcher)
//非必须参数
.setConfiguration(configuration)
//设置了此参数,那么会自动判断是否需要更新弹出提示框
.setApkVersionCode(2)
.setApkDescription("更新描述信息(取服务端返回数据)")
.download();
如果需要显示内置的对话框那么你需要调用manager.setApkVersionCode()
将新版本的versionCode填进去
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Service
- 框架内部支持中/英文 国际化(其他语言只需要在对应的
string.xml
中取相同的名字即可) - 如果你需要修改框架内部的一些文字,你只需要在
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.6(2021/12/15)
- [修复] Android 10以上发送通知栏消息bug
如果这个库有帮助到你并且你很想支持库的后续开发和维护,那么你可以扫描下方二维码随意打赏我,我将不胜感激赞赏列表