当前位置: 首页 > 软件库 > 手机/移动开发 > >

UpdatePlugin

可任意定制的app更新组件。
授权协议 Readme
开发语言 Java
所属分类 手机/移动开发
软件类型 开源软件
地区 不详
投 递 者 白烨煜
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

UpdatePlugin

UpdatePlugin是一款用来进行app更新升级的框架。

原理

UpdatePlugin主要基于对整个更新流程的梳理,针对更新流程中可能的被用户需要定制的节点。提供对应的定制接口出来提供用户进行各种定制;

为了方便用户直接使用,对于更新流程中非用户必须定制的接口。框架也对各个节点实现了一套自身默认的定制接口。做到拿来即用的。

特性

  • 支持断点下载
  • 支持 [Android 8.0] 应用安装方式
  • 支持接入任意更新api
  • 支持强制更新、忽略此版本更新逻辑
  • 支持对apk进行安全检查,防止类似DNS劫持后被替换更新apk包的情况
  • 支持指定apk下载文件地址
  • 支持定制接入更新网络任务。适配更多网络使用场景
  • 支持定制各种更新策略。比如默认使用的WIFI下默认直接下载后再通知更新,非WIFI下先通知更新再启动下载等。
  • 支持定制安装策略。比如在插件化、热修复环境下进行定制使用
  • 支持任意定制更新流程中的各种通知:检查到有更新时的通知、下载时的进度条通知、下载完成后安装之前的通知。
  • 支持定制后台任务重启逻辑
  • 当APK下载失败时,支持重启下载任务。

引入方式:

由于各种原因,现将依赖仓库地址,从jCenter迁移到JitPack,请升级新版使用时注意一下:

加入JitPack仓库依赖。

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}
  • 在要使用的项目的build.gradle中。添加依赖:

LastestVersion=

dependencies {
    ...
    compile "com.github.yjfnypeu:UpdatePlugin:$LastestVersion"
}

流程图

使用方式:

创建更新配置类:

UpdateConfig.getConfig()
		.setUrl(url)// 配置检查更新的API接口
		.setUpdateParser(new UpdateParser() {
			@Override
			public void Update parse(String response) throws Exception {
				// TODO 此处的response数据为上方检查更新接口所返回回来的数据。
				// 需要在此对response数据进行解析,并创建出对应的update实体类数据
				// 提供给框架内部进行使用
				return update;
			}
		});

启动更新任务

框架提供两种更新任务启动方式,分别对应于不同的场景下进行使用:

1. 普通更新任务
UpdateBuilder.create()
	.check();// 启动更新任务

普通更新任务主要用于设置页中,由用户点击检查更新时所主动触发的更新任务。

2. 后台更新任务

后台更新任务主要是提供出来,采用后台轮询更新的机制,便于及时检查到新发布的APK进行版本更新

UpdateBuilder task = UpdateBuilder.create()

// 启动后台更新任务,retryTime为重启时间间隔,单位为秒。
// 即通过此方法所启动的更新任务。将会在'无更新','更新失败'等条件下:
// 延迟指定的时间间隔后,自动重新启动。
task.checkForDaemon(retryTime);
...
// 可使用此方法,停止后台更新任务的重启机制。
task.stopDaemon();

更多使用方法请参考此处WIKI文档

联系作者

email: 470368500@qq.com

安卓交流会所

或者手动加入QQ群: 108895031

  • 简单的说。UpdatePlugin是一款可以让你任意作的、用于进行app更新的简单框架。为什么你会需要用此框架呢? 我们都知道,虽然app更新功能其实很简单: 访问更新接口api -> 与本地应用判断是否需要更新 -> 下载apk -> 安装。 so easy! 但是耐不住这世间有种叫做PM的生物,脑洞能突破天际的,就算一个app更新,都能给你玩出花来。老司机都懂的。。。当然也有各种技术原因。所以

 相关资料
  • 本文向大家介绍简单好用可任意定制的iOS Popover气泡效果,包括了简单好用可任意定制的iOS Popover气泡效果的使用技巧和注意事项,需要的朋友参考一下 效果图如下所示:   swift: https://github.com/corin8823/Popover OC: https://github.com/Assuner-Lee/PopoverObjC 使用示例 初始化Popover

  • Cocos Creator 的 UI 系统核心的设计原则就是能够自动适应各种不同的设备屏幕尺寸,因此我们在制作 UI 时需要正确设置每个控件元素的尺寸(size),并且让每个控件元素的尺寸能够根据设备屏幕的尺寸进行自动的拉伸适配。为了实现这一点,就需要使用九宫格格式的图像来渲染这些元素。这样即使使用很小的原始图片也能生成覆盖整个屏幕的背景图像,一方面节约游戏包体空间,另一方面能够灵活适配不同的排版

  • UI 系统核心的设计原则是能够自动适应各种不同的设备屏幕尺寸,因此我们在制作 UI 时需要正确设置每个控件元素的尺寸(size),并且让每个控件元素的尺寸能够根据设备屏幕的尺寸进行自动的拉伸适配。为了实现这一点,就需要使用九宫格格式的图像来渲染这些元素。这样即使使用很小的原始图片也能生成覆盖整个屏幕的背景图像,一方面节约游戏包体空间,另一方面能够灵活适配不同的排版需要。 上图右边为原始贴图大小的显

  • 我有一个问题与primeface数据表。我有一个数据与一些条目和一个列与一个按钮内。如果按钮被按下,一个弹出窗口打开与另一个数据表。第二个数据表中的条目取决于行中的按钮被按下。 Bean2 问题是弹出式数据表中没有列出任何条目,尽管在db查询之后的列表中有一些条目。 有没有办法修复这个bug?提前感谢! 更新1:

  • 我正在制作一个由任务管理器组成的应用程序。 在此任务管理器中,收件箱列表中有3个列表(收件箱、今天和星期),其中仅显示不带类别的任务,而在其他两个列表中,分别显示今天和本周的带类别或不带类别的任务。 我希望能够更改三个列表中一个任务的类别。因此,如果我更改收件箱任务的类别(不应该有类别),整个表都应该更新,任务应该从列表中删除。 我调试了程序,任务被正确地从列表中删除,但只有类别的单元格被更新,而

  • 我有亲戚 并想在PostgreSQL中加入它 所以我得到了所有可能的替换组合(即替换或多或少的笛卡尔积)。所以组1没有更新,组2只有B2,组3只有D2,组4都有B2和D2。 结尾应该是这样的,但应该对更多人开放(就像D1的额外D3) 编辑: 另一个可能的替换表可以是 可能会导致6组(我希望我没有忘记一个案例) 如果你有三个替代品,比如 这将导致8组。到目前为止,我所尝试的并没有真正的帮助: 我很高