# androidupdater **Repository Path**: qtghkat/androidupdater ## Basic Information - **Project Name**: androidupdater - **Description**: app更新版本工具类 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-25 - **Last Updated**: 2026-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AndroidAppUpdater Android 应用内更新库,极简接入,零三方依赖(仅 AndroidX)。 [![Platform](https://img.shields.io/badge/Platform-Android-green.svg)](https://developer.android.com) [![API](https://img.shields.io/badge/API-29%2B-brightgreen.svg)](https://developer.android.com/about/versions/10) [![Language](https://img.shields.io/badge/Language-Java-orange.svg)](https://www.java.com) ## 特性 | 特性 | 说明 | |------|------| | 零三方依赖 | 仅依赖 `androidx.appcompat`,无需 Gson、OkHttp 等 | | HttpURLConnection 下载 | 支持 HTTP / HTTPS,带进度回调 | | 内置版本检测 | 一行代码完成版本检查 → 弹窗 → 下载 → 安装 | | 简化 API | 只需 `baseUrl` + `appKey`,库自动拼接接口地址 | | DialogFragment 弹窗 | 支持强制更新、下载进度、下载失败重试 | | FileProvider 适配 | 库内已注册,调用方无需额外配置 | | minSdk 29 | Android 10+,无需存储权限 | ## 快速集成 ### 1. 下载 AAR 从仓库 [Releases](https://gitee.com/qtghkat/androidupdater) 下载最新 `androidupdater-{version}.aar`,放到 `app/libs/` 目录下。 ### 2. 添加依赖 在 `app/build.gradle` 中: ```groovy dependencies { implementation fileTree(dir: 'libs', include: ['*.aar']) implementation 'androidx.appcompat:appcompat:1.7.0' } ``` ### 3. 添加权限 在 `AndroidManifest.xml` 中: ```xml ``` ### 4. 调用 ```java UpdateManager.with(this) .baseUrl("http://你的服务器:5050") .appKey("company_helper") .onUpdate(new OnUpdateListener() { @Override public void onNoUpdate() { // 已是最新版本 } @Override public void onStart() { // 开始下载 } @Override public void onProgress(int percent) { // 下载进度 0-100 } @Override public void onFinish(File apkFile) { // 下载完成,自动安装 } @Override public void onError(Exception e) { // 出错 } @Override public void onCancel() { // 用户取消 } }) .check(); ``` ## API 参考 ### UpdateManager ```java UpdateManager.with(Activity activity) // 必须传入 Activity .baseUrl("http://host:port") // 服务端基础地址 .appKey("your_app_key") // 应用标识 Key .forceUpdate(false) // 是否强制更新(可选,默认 false) .onUpdate(new OnUpdateListener(){}) // 回调监听 .check(); // 执行检查 ``` 也可使用完整 URL 模式: ```java UpdateManager.with(activity) .checkUrl("http://host/api/v1/check/app_key?version_code=1") .onUpdate(listener) .check(); ``` ### OnUpdateListener | 方法 | 说明 | |------|------| | `onNoUpdate()` | 无可用更新 | | `onStart()` | 开始下载 APK | | `onProgress(int percent)` | 下载进度 0-100 | | `onFinish(File apkFile)` | 下载完成,随后自动弹出安装 | | `onError(Exception e)` | 检查或下载出错 | | `onCancel()` | 用户点击"暂不更新" | 所有方法均有默认空实现,可按需覆写。 ## 服务端 API 格式 库约定以下两个接口(简化模式下自动拼接): ### 版本检查 ``` GET /api/v1/check/{app_key}?version_code={当前版本号} 返回: { "has_update": true, "app_name": "企业助手", "version_name": "1.2.0", "version_code": 3, "file_size": 12345678, "description": "修复已知问题", "download_url": "/api/v1/download/company_helper" } ``` ### APK 下载 ``` GET /api/v1/download/{app_key} 返回:APK 文件流 ``` ### 配套服务端 本库配套服务端 [AppUpdateHub](https://gitee.com/qtghkat/AndroidUpdater)(Python Flask),提供 Web 管理界面,支持多 App 的 APK 上传和版本管理。 ## 项目结构 ``` AndroidAppUpdater/ ├── updater/ # 核心库模块 │ ├── UpdateManager.java # 入口 API(Builder 模式) │ ├── UpdateChecker.java # 版本检查(HTTP GET + JSON 解析) │ ├── UpdateDownloader.java # APK 下载(HttpURLConnection) │ ├── UpdateDialogFragment.java # 更新弹窗 │ ├── UpdateInfo.java # 数据模型 │ └── OnUpdateListener.java # 回调接口 ├── app/ # Demo 示例 ``` ## License ``` MIT License Copyright (c) 2026 Permission is hereby granted, free of charge, to any person obtaining a copy... ```