特点概述
-
最大亮点,提供12种更新的样式,总有一个是你喜欢的类型!
-
支持三种设置更新信息的方式,您可以直接传 model,传 json 数据,或者直接配置请求链接,sdk 会自主请求并发起 app 的更新,满足多方需求!
-
文件下载支持断点续传,下载错误拥有重试机制;相同版本的 apk 只会下载一次,防止重复下载!
-
使用接口方式获取数据时支持设置请求头,支持 POST 和 GET 请求方式,更灵活。
-
调用者可以自定义 UI 实现更新功能。
-
已适配 Android 6.0,Android 7.0,Android 8.0,Android 9.0。
-
提供强制更新,不更新则无法使用 APP,同时可以根据后台返回受影响的版本号,可控制多个版本同时被强制更新。
-
通知栏图片自定义
-
新增文件 MD5 校验,防止安装文件被恶意替换(2019-10-22 18:48:39 添加)
-
新增静默下载更新的方式,实现进入 App 直接后台下载,下载完成后弹出安装页面(静默安装需要 Root 权限,而且体验很不好,不做支持)(2019-10-25 18:09:05 添加)。
新版本说明
-
2019-11-04 12:38:12 更新版本,版本号为:v2.0.3
-
新增配置 DownloadConnection 的入口,可切换文件下载器的内核
-
提供了配置 Okhttp3 作为下载器的 demo,在 demo 中提供了 OkHttp3Connection 的实现,并提供信任所有证书的工具类 SSLUtils,可解决 https 根证书不被信任导致无法下载的问题
-
2019-10-25 18:09:05 更新新版,版本号为:v2.0.2
-
新增静默下载更新的方式
-
新增获取是否有新版本更新的事件回调
-
优化下载状态中的文案显示逻辑,点击 Demo 右上角第五个 item 体验
-
修复多次调用 checkUpdate 多次弹窗的 bug
-
2019-10-22 18:53:42 更新新版,版本号为:v2.0.1
-
新版新增文件的 MD5 校验
-
新版新增对文件下载进度的监听
-
新版新增对文件 MD5 校验结果的回调
-
DEMO 中提供了获取文件 MD5 检验码的工具页面,也提供了加密工具类 Md5Utils
博客地址
掘金-【需求解决系列之四】Android App 在线自动更新 Library(V2.0)
简书-【需求解决系列之四】Android App 在线自动更新 Library(V2.0)
Demo 体验
扫描二维码下载:
效果预览
说明: 以下 12 个更新的样式的类型值从左到右从上到下一次为
TypeConfig.UI_THEME_A、TypeConfig.UI_THEME_B、TypeConfig.UI_THEME_C、TypeConfig.UI_THEME_D、TypeConfig.UI_THEME_E、TypeConfig.UI_THEME_F、TypeConfig.UI_THEME_G、TypeConfig.UI_THEME_H、TypeConfig.UI_THEME_I、TypeConfig.UI_THEME_J、TypeConfig.UI_THEME_K、TypeConfig.UI_THEME_L
使用方式
Step 1. Add the JitPack repository to your build file Add it in your root build.gradle at the end of repositories:
allprojects { repositories { … maven { url ‘https://jitpack.io’ } } }
Step 2. Add the dependency
dependencies { implementation ‘com.github.MZCretin:AutoUpdateProject:latest_version’ }
Step 3. Init it in BaseApplication or MainActivity before using it.And then register BaseApplication in AndroidManifest(Don’t forget it).
//如果你想使用 okhttp 作为下载的载体,那么你需要自己依赖 okhttp,更新库不强制依赖 okhttp!可以使用如下代码创建一个 OkHttpClient 并在 UpdateConfig 中配置 setCustomDownloadConnectionCreator start
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.connectTimeout(30_000, TimeUnit.SECONDS)
.readTimeout(30_000, TimeUnit.SECONDS)
.writeTimeout(30_000, TimeUnit.SECONDS)
//如果你需要信任所有的证书,可解决根证书不被信任导致无法下载的问题 start
.sslSocketFactory(SSLUtils.createSSLSocketFactory())
.hostnameVerifier(new SSLUtils.TrustAllHostnameVerifier())
//如果你需要信任所有的证书,可解决根证书不被信任导致无法下载的问题 end
.retryOnConnectionFailure(true);
//如果你想使用 okhttp 作为下载的载体,那么你需要自己依赖 okhttp,更新库不强制依赖 okhttp!可以使用如下代码创建一个 OkHttpClient 并在 UpdateConfig 中配置 setCustomDownloadConnectionCreator end
//更新库配置
UpdateConfig updateConfig = new UpdateConfig()
.setDebug(true)//是否是 Debug 模式
.setBaseUrl(“http://www.cretinzp.com/system/versioninfo”)//当 dataSourceType 为 DATA_SOURCE_TYPE_URL 时,配置此接口用于获取更新信息
.setMethodType(TypeConfig.METHOD_GET)//当 dataSourceType 为 DATA_SOURCE_TYPE_URL 时,设置请求的方法
.setDataSourceType(TypeConfig.DATA_SOURCE_TYPE_URL)//设置获取更新信息的方式
.setShowNotification(true)//配置更新的过程中是否在通知栏显示进度
.setNotificationIconRes(R.mipmap.download_icon)//配置通知栏显示的图标
.setUiThemeType(TypeConfig.UI_THEME_AUTO)//配置 UI 的样式,一种有 12 种样式可供选择
.setRequestHeaders(null)//当 dataSourceType 为 DATA_SOURCE_TYPE_URL 时,设置请求的请求头
.setRequestParams(null)//当 dataSourceType 为 DATA_SOURCE_TYPE_URL 时,设置请求的请求参数
.setAutoDownloadBackground(false)//是否需要后台静默下载,如果设置为 true,则调用 checkUpdate 方法之后会直接下载安装,不会弹出更新页面。当你选择 UI 样式为 TypeConfig.UI_THEME_CUSTOM,静默安装失效,您需要在自定义的 Activity 中自主实现静默下载,使用这种方式的时候建议 setShowNotification(false),这样基本上用户就会对下载无感知了
.setCustomActivityClass(CustomActivity.class)//如果你选择的 UI 样式为 TypeConfig.UI_THEME_CUSTOM,那么你需要自定义一个 Activity 继承自 RootActivity,并参照 demo 实现功能,在此处填写自定义 Activity 的 class
.setNeedFileMD5Check(false)//是否需要进行文件的 MD5 检验,如果开启需要提供文件本身正确的 MD5 校验码,DEMO 中提供了获取文件 MD5 检验码的工具页面,也提供了加密工具类 Md5Utils
.setCustomDownloadConnectionCreator(new OkHttp3Connection.Creator(builder))//如果你想使用 okhttp 作为下载的载体,可以使用如下代码创建一个 OkHttpClient,并使用 demo 中提供的 OkHttp3Connection 构建一个 ConnectionCreator 传入,在这里可以配置信任所有的证书,可解决根证书不被信任导致无法下载 apk 的问题
.setModelClass(new UpdateModel());
//初始化
AppUpdateUtils.init(this, updateConfig);
Step 4. Start using it wherever you want as below with 3 ways.
//有三种方式实现 app 更新,您可选其中一种方式来进行,推荐使用第三种方式!
//新增下载进度和 MD5 检测结果的回调监听 2019-10-22 18:51:19
//第一种方式,使用 JSON 字符串,让 sdk 自主解析并实现功能
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后
在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。
附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
[外链图片转存中…(img-GCpaeZHT-1713293803353)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!