diff --git a/app-updater/src/main/java/com/king/app/updater/AppUpdater.java b/app-updater/src/main/java/com/king/app/updater/AppUpdater.java index 489f972..380e6c4 100644 --- a/app-updater/src/main/java/com/king/app/updater/AppUpdater.java +++ b/app-updater/src/main/java/com/king/app/updater/AppUpdater.java @@ -168,6 +168,7 @@ public class AppUpdater { * 设置保存的路径,(建议使用默认,不做设置) * @param path 下载保存的文件路径 * @return + * @deprecated 因为适配Android Q的分区存储,所以此方法已弃用,不建议再使用 */ @Deprecated public Builder setPath(String path){ @@ -197,11 +198,11 @@ public class AppUpdater { /** * 设置通知ID - * @param notifyId 通知ID + * @param notificationId 通知ID * @return */ - public Builder setNotificationId(int notifyId) { - mConfig.setNotificationId(notifyId); + public Builder setNotificationId(int notificationId) { + mConfig.setNotificationId(notificationId); return this; } @@ -353,11 +354,10 @@ public class AppUpdater { /** * 设置是否自动删除取消下载的文件 - * @param isDeleteCancelFile 是否删除取消下载的文件(默认为true) - * @return + * @param deleteCancelFile 是否删除取消下载的文件(默认为true) */ - public Builder setDeleteCancelFile(boolean isDeleteCancelFile){ - mConfig.setDeleteCancelFile(isDeleteCancelFile); + public Builder setDeleteCancelFile(boolean deleteCancelFile){ + mConfig.setDeleteCancelFile(deleteCancelFile); return this; } diff --git a/app-updater/src/main/java/com/king/app/updater/UpdateConfig.java b/app-updater/src/main/java/com/king/app/updater/UpdateConfig.java index 3568a43..ae6a1b7 100644 --- a/app-updater/src/main/java/com/king/app/updater/UpdateConfig.java +++ b/app-updater/src/main/java/com/king/app/updater/UpdateConfig.java @@ -111,6 +111,10 @@ public class UpdateConfig implements Parcelable { return mUrl; } + /** + * 设置APK下载地址 + * @param url 下载地址 + */ public void setUrl(String url) { this.mUrl = url; } @@ -119,6 +123,13 @@ public class UpdateConfig implements Parcelable { return mPath; } + /** + * 设置保存的路径,(建议使用默认,不做设置) + * @param path 下载保存的文件路径 + * @return + * @deprecated 因为适配Android Q的分区存储,所以此方法已弃用,不建议再使用 + */ + @Deprecated public void setPath(String path) { this.mPath = path; } @@ -127,6 +138,10 @@ public class UpdateConfig implements Parcelable { return mFilename; } + /** + * 设置保存的文件名 + * @param filename 下载的保存的apk文件名 (默认优先取url文件名) + */ public void setFilename(String filename) { this.mFilename = filename; } @@ -135,6 +150,10 @@ public class UpdateConfig implements Parcelable { return isShowNotification; } + /** + * 设置是否显示通知栏 + * @param isShowNotification 是否显示通知栏 (默认true) + */ public void setShowNotification(boolean isShowNotification) { this.isShowNotification = isShowNotification; } @@ -143,6 +162,10 @@ public class UpdateConfig implements Parcelable { return mChannelId; } + /** + * 设置通知渠道ID + * @param channelId 通知渠道ID (默认兼容O) + */ public void setChannelId(String channelId) { this.mChannelId = channelId; } @@ -151,10 +174,17 @@ public class UpdateConfig implements Parcelable { return mChannelName; } + /** + * 设置通知渠道名称 + * @param channelName 通知渠道名称 (默认兼容O) + */ public void setChannelName(String channelName) { this.mChannelName = channelName; } - + /** + * 设置通知ID + * @param notificationId 通知ID + */ public void setNotificationId(int notificationId){ this.mNotificationId = notificationId; } @@ -163,6 +193,11 @@ public class UpdateConfig implements Parcelable { return this.mNotificationId; } + + /** + * 设置通知图标 + * @param icon 通知栏图标 (默认取App的icon) + */ public void setNotificationIcon(@DrawableRes int icon){ this.mNotificationIcon = icon; } @@ -175,6 +210,10 @@ public class UpdateConfig implements Parcelable { return isInstallApk; } + /** + * 设置下载完成后知否自动触发安装APK + * @param isInstallApk 下载完成后是否自动调用安装APK(默认true) + */ public void setInstallApk(boolean isInstallApk) { this.isInstallApk = isInstallApk; } @@ -183,6 +222,10 @@ public class UpdateConfig implements Parcelable { return mAuthority; } + /** + * 设置FileProvider的authority + * @param authority FileProvider的authority(默认兼容N,默认值{@link Context#getPackageName() + ".fileProvider"}) + */ public void setAuthority(String authority) { this.mAuthority = authority; } @@ -191,6 +234,10 @@ public class UpdateConfig implements Parcelable { return isShowPercentage; } + /** + * 设置下载时,通知栏是否显示下载百分比 + * @param showPercentage 下载时通知栏是否显示百分比 + */ public void setShowPercentage(boolean showPercentage) { isShowPercentage = showPercentage; } @@ -199,6 +246,10 @@ public class UpdateConfig implements Parcelable { return isReDownload; } + /** + * 设置下载失败时,是否支持点击通知栏重新下载。与之相关联的方法{@link #setReDownloads(int)} + * @param reDownload 下载失败时是否支持点击通知栏重新下载,默认true + */ public void setReDownload(boolean reDownload) { isReDownload = reDownload; } @@ -207,6 +258,10 @@ public class UpdateConfig implements Parcelable { return reDownloads; } + /** + * 设置下载失败时,最多重新下载次数。与之相关联的方法{@link #setReDownload(boolean)} + * @param reDownloads 下载失败时是否支持点击通知栏重新下载,默认最多重新下载3次 + */ public void setReDownloads(int reDownloads) { this.reDownloads = reDownloads; } @@ -215,6 +270,10 @@ public class UpdateConfig implements Parcelable { return isVibrate; } + /** + * 设置通知是否震动提示 + * @param vibrate 是否震动提示,为true时使用通知默认震动,Android O(8.0)以上设置,只有初次创建channel时有效,后续修改属性无效,想要重新有效需修改channelId或卸载App重装。 + */ public void setVibrate(boolean vibrate) { isVibrate = vibrate; } @@ -223,6 +282,10 @@ public class UpdateConfig implements Parcelable { return isSound; } + /** + * 设置通知是否铃声提示 + * @param sound 是否铃声提示,为true时使用通知默认铃声,Android O(8.0)以上设置,只有初次创建channel时有效,后续修改属性无效,想要重新有效需修改channelId或卸载App重装。 + */ public void setSound(boolean sound) { isSound = sound; } @@ -231,6 +294,13 @@ public class UpdateConfig implements Parcelable { return versionCode; } + /** + * 设置要下载APK的versionCode,用于优先取缓存时通过versionCode校验APK文件是否一致。 + * 缓存校验目前支持两种方式,一种是通过versionCode校验,即{@link #setVersionCode(Integer)};一种是文件MD5校验,即{@link #setApkMD5(String)}。推荐使用MD5校验方式 + * 如果两种方式都设置了,则只校验MD5 + * @param versionCode 为null表示不处理,默认不存在则下载,存在则重新下载。不为null时,表示会优先校验本地是否存在已下载版本号为versionCode的APK。 + * 如果存在则不会重新下载(AppUpdater会自动校验packageName一致性),直接取本地APK,反之重新下载。 + */ public void setVersionCode(Integer versionCode){ this.versionCode = versionCode; } @@ -239,7 +309,12 @@ public class UpdateConfig implements Parcelable { return mRequestProperty; } - + /** + * 设置APK文件的MD5,用于优先取缓存时通过MD5校验文件APK是否一致。 + * 缓存校验目前支持两种方式,一种是通过versionCode校验,即{@link #setVersionCode(Integer)};一种是文件MD5校验,即{@link #setApkMD5(String)}。推荐使用MD5校验方式 + * 如果两种方式都设置了,则只校验MD5 + * @param md5 为null表示不处理,如果设置了MD5,则缓存APK的MD5相同时,只下载一次,优先取本地缓存 + */ public void setApkMD5(String md5){ this.apkMD5 = md5; } @@ -248,11 +323,20 @@ public class UpdateConfig implements Parcelable { return apkMD5; } + /** + * 请求头添加参数 + * @param key + * @param value + */ public void addHeader(String key, String value){ initRequestProperty(); mRequestProperty.put(key,value); } + /** + * 请求头添加参数 + * @param headers + */ public void addHeader(Map headers){ initRequestProperty(); mRequestProperty.putAll(headers); @@ -268,6 +352,10 @@ public class UpdateConfig implements Parcelable { return isDeleteCancelFile; } + /** + * 设置是否自动删除取消下载的文件 + * @param deleteCancelFile 是否删除取消下载的文件(默认为true) + */ public void setDeleteCancelFile(boolean deleteCancelFile) { isDeleteCancelFile = deleteCancelFile; } diff --git a/app/release/app-release.apk b/app/release/app-release.apk index b58ca5b..c7a455f 100644 Binary files a/app/release/app-release.apk and b/app/release/app-release.apk differ diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json new file mode 100644 index 0000000..f0e2a27 --- /dev/null +++ b/app/release/output-metadata.json @@ -0,0 +1,18 @@ +{ + "version": 2, + "artifactType": { + "type": "APK", + "kind": "Directory" + }, + "applicationId": "com.king.appupdater", + "variantName": "processReleaseResources", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "versionCode": 18, + "versionName": "1.0.10-androidx", + "outputFile": "app-release.apk" + } + ] +} \ No newline at end of file diff --git a/app/release/output.json b/app/release/output.json deleted file mode 100644 index 7cc91da..0000000 --- a/app/release/output.json +++ /dev/null @@ -1 +0,0 @@ -[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":18,"versionName":"1.0.10-androidx","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}] \ No newline at end of file