• Stars
    star
    1,826
  • Rank 25,423 (Top 0.6 %)
  • Language
    Kotlin
  • License
    Apache License 2.0
  • Created almost 8 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

清晰灵活简单易用的应用更新库

update

清晰灵活简单易用的应用更新库

  • 支持断点续传
  • 支持强制安装:不安装无法使用app
  • 支持静默更新:不提示用户直接下载安装
  • 支持可忽略该版本:忽略后不再提示用户更新该版本
  • 支持在通知栏显示下载进度,可监听下载进度
  • 支持自定义更新查询
  • 支持自定义下载
  • 支持自定义提示对话框

screenshot

引入

repositories {
    maven { url "https://gitee.com/ezy/repo/raw/cosmo/"}
}
dependencies {
    implementation "me.reezy.cosmo:update:0.7.0"
}

Usage

// 设置更新信息源
UpdateManager.setChecker("http://yourdomain.com/path")
// 查询更新
UpdateManager.check(context)
// 在设置界面点击检查更新:默认无新版本时不会提示用户
UpdateManager.check(this) {
    Toast.makeText(this, it.getFullMessage(this), Toast.LENGTH_LONG).show()
}
// 自定义更新对话框
UpdateManager.check(this, onPrompt = {
    UpdatePromptDialog(this, it).show()
})
// 清除已经下载好了的包
UpdateManager.clean(context);

整个更新流程很简单,具体请看 UpdateExecutor

when {
    // 没有新版本 -> 返回结果
    !info.hasUpdate -> returnResult(UpdateResult(UpdateResult.UPDATE_NO_NEWER))
    // 强制更新 -> 提示用户更新,不显示[取消][忽略]按钮
    info.isForce -> prompt(info, task)
    // 静默更新 -> 不提示用户直接更新
    info.isSilent -> update(info, task)
    // 不可忽略的版本 -> 提示用户更新,不显示[忽略]按钮
    !info.isIgnorable -> prompt(info, task)
    // 该版本已经被忽略 -> 返回结果
    info.isIgnored -> returnResult(UpdateResult(UpdateResult.UPDATE_IGNORED))
    // 提示用户更新
    else -> prompt(info, task)
}

UpdateInfo

data class UpdateInfo(
    // 是否有新版本
    val hasUpdate: Boolean = false,

    // 是否强制安装:为true时不安装无法使用app
    val isForce: Boolean = false,

    // 是否静默更新:不提示用户直接下载安装
    val isSilent: Boolean = false,

    // 是否可忽略该版本:忽略后不再提示用户更新该版本
    val isIgnorable: Boolean = false,

    // 是否在通知栏显示下载进度:为true时显示
    val isShowNotification: Boolean = true,

    // 更新内容文案
    val updateContent: String = "",

    // 新包下载地址
    val url: String = "",

    // 新包哈希值
    val hash: String = "",
)

LICENSE

The Component is open-sourced software licensed under the Apache license.

More Repositories

1

settingscompat

特殊权限(Special Permissions)兼容库,悬浮窗权限(SYSTEM_ALERT_WINDOW)与系统设置修改权限(WRITE_SETTINGS)
Java
951
star
2

loadinglayout

简单实用的页面多状态布局(content,loading,empty,error)
Java
753
star
3

cornerlabelview

角标(corner label)
Java
488
star
4

badgebutton

带有徽标(数字,小红点)的按钮
Java
432
star
5

roundbutton

可设置圆角背景边框的的按钮
Java
310
star
6

noticeview

滚动播放的公告控件
Java
299
star
7

sdk3rd

第三方SDK集成库,授权/分享/支付
Java
244
star
8

NotificationDemo

通知demo
Java
88
star
9

segmentedview

ios风格的分段控件,类似 UISegmentedControl
Java
61
star
10

ThemeDemo

Databinding+LiveData轻松实现无重启换肤
Kotlin
32
star
11

init

Kotlin + Flow 实现的 Android 应用初始化任务启动库。
Kotlin
24
star
12

readmoretextview

点击展开收缩的文本
Java
20
star
13

numberstepper

number stepper
Java
16
star
14

httpapi

使用 Coroutine + Retrofit 打造的最简单HTTP请求库
Kotlin
11
star
15

systembars

系统栏工具库 - 状态栏/导航栏/沉浸式
Kotlin
10
star
16

subtextview

带副文本(副标题,值)的 TextView
Java
7
star
17

router

一个 kotlin + ksp 实现的路由库,通过 uri 实现页面间跳转
Kotlin
6
star
18

deviceid

获取设备标识(widevineId/instanceId/androidId/oaid),采集设备信息。
Kotlin
6
star
19

LauncherIconPlugin

Android小工具,当构建类型不为release时,在启动图标上显示添加 版本/分支/时间 等信息
Groovy
5
star
20

webcache

Android WebView 缓存管理,提升网页打开速度。
Kotlin
3
star
21

flowbus

事件总线(基于SharedFlow)
Kotlin
3
star
22

scrollinglayout

垂直方向支持多个子视图持续连贯滚动的容器,并且支持吸顶功能。
Kotlin
3
star
23

tv

一些实用的自定义TextView
Kotlin
2
star
24

servicelocator

一个简单的服务定位器模式实现,如果觉得Dagger/Koin太重,可以试试这个。
Kotlin
2
star
25

networkstate

判断网络是否可用,判断网络(wifi/mobile/vpn)是否连接,获取网络类型,监听网络可用事件
Kotlin
2
star
26

binding

简化 DataBinding/ViewBinding 使用,提供生命周期感知能力,支持多种使用环境(ComponentActivity/Fragment/CustomDialog/ViewGroup)
Kotlin
2
star
27

bk

BKDrawable/BKFrameLayout/BKLinearLayout/BKTextView 可自定义 背景色/渐变/圆角/阴影/描边
Kotlin
2
star
28

statelayout

简单实用无侵入高扩展的页面多状态布局(content,loading,empty,error)
Kotlin
2
star
29

base

页面基类 BaseActivity/BaseFragment 统一了子类初始化UI(onSetupUI)的位置
Kotlin
1
star
30

majia

将指定的包中的类移到新包名下,通过简单的配置就可以生成马甲包。
Kotlin
1
star
31

jsbridge

简单易用的 Android WebView 和 Javascript 交互框架。
Kotlin
1
star
32

dag

有向无环图(DAG),可用来调度应用初始化任务
Kotlin
1
star
33

ecrontab

crontab for erlang, @author litao cheng <[email protected]>
Erlang
1
star
34

mmkv

使用 kotlin 委托属性封装的 mmkv 库,代替 SharedPreferences,简单好用
Kotlin
1
star
35

argument

通过 Kotlin 委托属性获取 Activity/Fragment 的参数
Kotlin
1
star
36

pullrefresh

实现了嵌套滚动机制的下拉刷新控件。
Kotlin
1
star
37

dialog

AlertDialog扩展(tip/alert/confirm/choose) 自定义对话框(CustomDialog/BottomDialog/DropdownDialog/SideDialog) LoadingDialog/InputDialog/ActionSheetDialog/PickerDialog
Kotlin
1
star
38

loading

一些 loading 动画
Kotlin
1
star
39

webview

jsbridge 和 WebView 资源包管理
Kotlin
1
star