百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
A

AutoUpdateProject

> 编程语言
开源

App 内部更新 提供12种更新的样式 支持Android全系统版本 支持自定义UI 断点续传

1.1K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

App 内部更新 提供12种更新的样式 支持Android全系统版本 支持自定义UI 断点续传

AutoUpdateProject

全平台国际化话翻译解决方案

项目国际化翻译解决方案,支持Android、iOS、Flutter、前端Vue、后端PHP等等,点几下按钮就能实现翻译内容的自动抓取和翻译后文件的自动生成,适合各类场景下的国际化需求。详情请查看:https://github.com/MZCretin/Eva-Translate 欢迎star


想没想过做个自己的APP?

想没想过自己做个APP,自己做自己的产品,自己决定交互,自己制作ui,那么快来吧,我开源了段子乐APP的数据和接口,你完全可以自己diy一个你自己的产品了~,详情请查看:https://github.com/MZCretin/duanzile-open-api 欢迎star

系列

在工作之余,打算将一些常用的逻辑页面,模块,功能点做成library库,这样当有相似需求的时候,可以做到插拔式开发!现在系列中有以下内容

  • App内部自动更新-AutoUpdateProject
  • 选择城市-CitySelect
  • 扫描二维码条形码控件-ScanCode
  • 一键打开WebView件-WebViewUtils
  • 简约动态权限申请库-FanPermission
  • 弹出自定义支付密码输入框-InputPswDemo

特点概述

  • 最大亮点,提供12种更新的样式,总有一个是你喜欢的类型!
  • 支持三种设置更新信息的方式,您可以直接传model,传json数据,或者直接配置请求链接,sdk会自主请求并发起app的更新,满足多方需求!
  • 文件下载支持断点续传,下载错误拥有重试机制;相同版本的apk只会下载一次,防止重复下载!
  • 使用接口方式获取数据时支持设置请求头,支持POST和GET请求方式,更灵活。
  • 调用者可以自定义UI实现更新功能。
  • 已适配Android全系统版本,包括最新的Android 15 (API 35)
  • 提供强制更新,不更新则无法使用APP,同时可以根据后台返回受影响的版本号,可控制多个版本同时被强制更新。
  • 通知栏图片自定义
  • 新增文件MD5校验,防止安装文件被恶意替换(2019-10-22 18:48:39添加)
  • 新增静默下载更新的方式,实现进入App直接后台下载,下载完成后弹出安装页面(静默安装需要Root权限,而且体验很不好,不做支持)(2019-10-25 18:09:05添加)。
  • 支持https下载apk

新版本说明

  • 2024年12月19日更新版本,版本号为:v3.0.0

    • 完全适配Android 15 (API 35)
    • 迁移至AndroidX,告别Support库
    • ️ 升级Gradle版本至最新8.7.2
    • 新的权限管理:支持Android 13+通知权限、Android 11+存储策略
    • Edge-to-Edge支持:适配Android 15强制全屏显示
    • ️ 增强网络安全配置
    • 添加Android15兼容工具类
    • ⚡ 性能优化:配置缓存、并行构建
    • 向下兼容:最低支持Android 4.4 (API 19)
  • 2022年04月22日15:24:14更新版本,版本号为:v2.0.5

    • 将APK存储在内容部文件夹
    • 全Android系统版本兼容
    • 修复了已知bug
    • 移除无用代码
  • 2019-11-08 18:13:56更新版本,版本号为:v2.0.4

    • 修复静默下载时网络环境为数据网络的时候无法下载的问题
    • 修复其他问题,#22
  • 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 15兼容性说明

技术升级

  • Target SDK: 升级至35 (Android 15)
  • Compile SDK: 升级至35 (Android 15)
  • Gradle: 升级至8.7.2版本
  • AndroidX: 完全迁移至AndroidX

权限管理优化

  • 通知权限: Android 13+自动请求POST_NOTIFICATIONS权限
  • 存储权限: Android 11+使用应用专属存储,无需WRITE_EXTERNAL_STORAGE
  • 安装权限: 智能检测REQUEST_INSTALL_PACKAGES权限

显示适配

  • Edge-to-Edge: 适配Android 15强制全屏显示
  • 系统栏: 自动处理状态栏和导航栏显示

️ 安全增强

  • 网络安全: 更新网络安全配置,支持更严格的安全策略
  • 文件提供器: 优化FileProvider配置

向下兼容

  • 保持对Android 4.4+的完整支持
  • 智能版本检测,在不同Android版本采用最适合的策略

博客地址

掘金-【需求解决系列之四】Android App在线自动更新Library(V2.0)

简书-【需求解决系列之四】Android App在线自动更新Library(V2.0)

Demo体验

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:

gradle
allprojects { repositories { ... maven { url 'https://jitpack.io' } } }

Step 2. Add the dependency

gradle
    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).

…

Step 4. Start using it wherever you want as below with 3 ways.

…

使用注意点

  • 最简单快捷的方式就是使用传入MODEL的形式,因为这种方式需要的配置最少,但是你需要自己处理请求,并保证最终调用checkUpdate(model)的时候是在主线程。
  • 在使用传入json这种方式的时候,你需要同样保证调用checkUpdate(json)的时候在主线程,并且你需要在初始化的时候配置json对应的model【setModelClass(new UpdateModel())】,并保证这个model实现了LibraryUpdateEntity接口。
  • 在使用配置接口地址的方式的时候,您需要设置一个请求链接地址!当然,如果是需要的话,您需要设置请求方式,设置请求头和请求参数;并且你需要在初始化的时候配置请求成功之后返回的数据所对应的model【setModelClass(new UpdateModel())】,并保证这个model实现了LibraryUpdateEntity接口。
  • 如果你需要自定义UI,请自定义一个普通的Activity就可以了,这个Activity需要继承RootActivity,这样你就拥有了自动更新的能力;另外建议给这个自定义的Activity添加一个主题@style/DialogActivityTheme,这样他就能以对话框的形式展示,据我们的UI说这样会好看点。

有什么意见或者建议欢迎与我交流,觉得不错欢迎Star

使用过程中如果有什么问题或者建议,欢迎在issue中提出来或者直接联系我 [email protected] 嘿嘿!

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Javaappupdatesdk

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言