項目地址:github地址
清晰靈活簡單易用的應(yīng)用更新庫
支持?jǐn)帱c續(xù)傳
支持靜默下載:有新版本時不提示直接下載
支持強(qiáng)制安裝:不安裝無法使用app
支持下載完成后自動安裝
支持可忽略版本
支持app啟動時強(qiáng)制安裝下載好了的更新包
支持POST請求
支持自定義解析服務(wù)器返回的數(shù)據(jù)
支持自定義查詢/下載
支持自定義提示對話框/下載進(jìn)度對話框
支持通知欄進(jìn)度顯示
適配 Android 7.0 FileProvider
Gradle
repositories {
? ? maven { url "https://jitpack.io" }
}
dependencies {
? ? compile 'com.github.czy1121:update:1.1.1'
}
基本用法
配置
//是否wifi 默認(rèn)是
UpdateManager.setWifiOnly(false);
查詢
// 進(jìn)入應(yīng)用時查詢get更新
mcheckurl=http://example.com/check
UpdateManager.setUrl(mCheckUrl, "yyb");
UpdateManager.check(context);
網(wǎng)址是
http://example.com/check?package=ezy.demo.update&version=123&channel=yyb
自動獲取包名是ezy.demo.update,版本號為123
//post更新
mcheckeurl=http://example.com/check
UpdateManager.create(this).setUrl(mCheckUrl).setPostData("param=abc?m2=xyz").check();
網(wǎng)址是http://example.com/check?param=abc?m2=xyz
服務(wù)器返回json數(shù)據(jù)
有更新
{
? ? "Code": 200,
? ? "Message": "獲取成功!",
? ? "Data": {
? ? ? ? "hasUpdate": true,
? ? ? ? "isForce": false,
? ? ? ? "isSilent": false,
? ? ? ? "isAutoInstall": true,
? ? ? ? "isIgnorable": false,
? ? ? ? "versionCode": 5,
? ? ? ? "versionName": "1.06",
? ? ? ? "updateContent": "1.優(yōu)化更新內(nèi)容",
? ? ? ? "url": "http://app.down/app.apk",
? ? ? ? "MD5": "B8B038414A8BFAF8333280D0FD243C6E",
? ? ? ? "Size": 7024539
? ? }
}
無更新
{
? ? "Code": 200,
? ? "Message": "獲取成功!",
? ? "Data": {
? ? ? ? "hasUpdate": false
? ? }
}
字段說明
hasUpdate:是否有更新
isSilent:是否靜默安裝
isForce:是否強(qiáng)制安裝
isAutoInstall:是否自動安裝
isIgnorable:是否可忽略該版本
versionCode:int類型,對應(yīng)Android中的versionCode,大于才能覆蓋更新。
UpdateVersion:對應(yīng)Android中的versionCode(內(nèi)部版本號),修改改字段才能使APP彈出提示
versionName:對應(yīng)Android中versionName,
可自己隨便取名
updateContent:更新日志
urk:app下載地址
MD5:校驗文件的MD5 ,保證下載完整性
Size:文件大小 ( long )
被解釋成
public class UpdateInfo {
? ? // 是否有新版本
? ? public boolean hasUpdate = false;
? ? // 是否靜默下載:有新版本時不提示直接下載
? ? public boolean isSilent = false;
? ? // 是否強(qiáng)制安裝:不安裝無法使用app
? ? public boolean isForce = false;
? ? // 是否下載完成后自動安裝
? ? public boolean isAutoInstall = true;
? ? // 是否可忽略該版本
? ? public boolean isIgnorable = true;
? ?
? ? public int versionCode;
? ? public String versionName;
? ? public String updateContent;
? ?
? ? public String url;
? ? public String md5;
? ? public long size;
}
如果UpdateInfo info
null 查詢未知錯誤
hasUpdate = false 返回?zé)o更新
md5為空或者與忽略版本md5相同 返回該版本已忽略,
如果緩存有下載文件并且md5相同 安裝文件
// 是否靜默下載:有新版本時不提示直接下載
開始顯示更新對話框