Kongzue的App更新框架

Kongzue APP更新工具:Githubandroid

更新日誌:

1.3.0:修復安卓8.0設備上安裝崩潰的問題;git

1.4.0:修復進度顯示可能存在問題的bug;github

說明

  1. 本工具無需權限,但在 targetSdkVersion >= 26 的狀況時可能出現安裝程序閃退但不報錯的問題,系 Android 8.0 的新規定,請在您的應用中添加以下權限便可:
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
複製代碼
  1. 本工具提供下載、安裝步驟,因網絡請求框架不肯定,本工具不包含到您服務器的檢查更新的網絡請求,請在獲取到相應的更新信息請您自行完成。
  2. 本工具須要您提供的參數對照表以下:
字段 含義 是否必須
info 更新日誌 可選
ver 版本號 可選
downloadUrl 下載地址 必須
me(Context) 上下文索引 必須
packageName 包名 必須
onDownloadListener 下載監聽器 可選

須要的權限:bash

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
複製代碼

準備

  1. 修改 AndroidManifest.xml 因 Android 7.0規範限定,咱們須要建立一個共享目錄來存儲下載的文件 請在 AndroidManifest.xml 中加入以下代碼:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="您的包名">

    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        ...>
        
        ...
        
        <provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="您的包名.fileProvider"
            android:grantUriPermissions="true"
            android:exported="false">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/file_path"/>
        </provider>
    </application>
</manifest>
複製代碼

接下來在 res 目錄下建立文件夾 xml,並添加文件 file_path.xml:服務器

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <paths>
        <external-path path="" name="download"/>
    </paths>
</resources>
複製代碼
  1. 使用前請先建立UpdateInfo,舉例方法以下
updateInfo = new UpdateInfo()
.setInfo("1.上線了極力要求以致於沒法再拒絕的收入功能\n" +
        "2.出行的二級分類加入了地鐵、地鐵、地鐵\n" +
        "3.「關於」新增應用商店評分入口,大家知道怎麼作\n" +
        "4.「關於」還加入了GitHub地址,情懷+1s\n" +
        "5.全新的底層適配框架,優化更多機型")
.setVer("v2.5")
.setDownloadUrl("http://paywhere.kongzue.com/downloads/paywhere.apk");
複製代碼

下載並安裝

  1. 使用以下語句建立下載工具: me(Context) 傳入上下文索引,通常使用本 Activity 便可 packageName 可直接使用 BuildConfig.APPLICATION_ID 獲取:
UpdateUtil updateUtil = new UpdateUtil(MainActivity.this, BuildConfig.APPLICATION_ID);
複製代碼
  1. 開始下載:
updateUtil.doUpdate(updateInfo);
複製代碼

下載完成後會自動調用安裝。網絡

  1. 關於下載的監聽 您能夠經過如下代碼監聽下載過程:
UpdateUtil updateUtil = new UpdateUtil(MainActivity.this, BuildConfig.APPLICATION_ID)
        .setOnDownloadListener(new UpdateUtil.OnDownloadListener() {
            @Override
            public void onStart(long downloadId) {
                Log.i("MainActivity", "onStart: 下載開始");
            }
            @Override
            public void onDownloading(long downloadId, int progress) {
                Log.i("MainActivity", "onStart: 下載中:"+progress);
            }
            @Override
            public void onSuccess(long downloadId) {
                Log.i("MainActivity", "onStart: 下載完成");
            }
        })
複製代碼

其餘

可選的更新提示對話框 KongzueUpdateSDK 提供了一個可選使用的簡易更新提示對話框,調用方法以下:app

UpdateUtil updateUtil = new UpdateUtil(MainActivity.this, BuildConfig.APPLICATION_ID)
        .showNormalUpdateDialog(updateInfo,
                "檢查到更新(" + updateInfo.getVer() + ")",
                "從商店下載",
                "直接下載",
                "取消");
複製代碼

引入KongzueUpdateSDK到您的項目

引入方法:框架

implementation 'com.kongzue.kongzueupdatesdk:kongzueupdatesdk:1.4.0'
複製代碼

額外的小工具:ide

UpdateUtil.isWifi()                         //判斷Wifi狀態
UpdateUtil.isShowProgressDialog = true;     //是否開啓進度對話框(默認開啓)
複製代碼
相關文章
相關標籤/搜索