利用蒲公英自动更新APP及其更新机制

一、蒲公英基础使用方法

1.在蒲公英上注册应用获取App Key

App Key:唯一标识一个应用的 Key,在蒲公英上的每一个 App 都有一个唯一的 App Key,开发者可以在应用管理页面首页查看。

2.导入SDK

1> 在project下的build.gradle文件中:

allprojects {
    repositories {
        jcenter()
        maven { url "https://raw.githubusercontent.com/Pgyer/mvn_repo_pgyer/master" }
    }
}

2> 在module下的build.gradle文件中添加依赖:

dependencies {
    compile 'com.pgyersdk:sdk:2.8.1'
}

3.配置AndroidManifest


<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" />  
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >


    <meta-data
        android:name="PGYER_APPID"
        android:value="第一步中申请到的App Key" >
    meta-data>
application>

4.更新方法

import com.pgyersdk.javabean.AppBean;
import com.pgyersdk.update.PgyUpdateManager;
import com.pgyersdk.update.UpdateManagerListener;

PgyUpdateManager.register(MainActivity.this,
new UpdateManagerListener() {

   @Override
   public void onUpdateAvailable(final String result) {

     // 将新版本信息封装到AppBean中
     final AppBean appBean = getAppBeanFromString(result);
     new AlertDialog.Builder(MainActivity.this)
         .setTitle("更新")
         .setMessage("")
         .setNegativeButton(
                 "确定",
                 new DialogInterface.OnClickListener() {

                     @Override
                     public void onClick(
                             DialogInterface dialog,
                             int which) {
                         startDownloadTask(
                                 MainActivity.this,
                                 appBean.getDownloadURL());
                     }
                 }).show();
   }

   @Override
   public void onNoUpdateAvailable() {
   }
});

//解除注册
PgyUpdateManager.unregister();

二、蒲公英自动更新机制

蒲公英 SDK 的更新,是根据 App 本身的版本号和蒲公英自增 Build 版本号来判定更新的。这两个版本号中,任何一个检查到线上版本大于本地版本,都会提示更新。

具体判定顺序是:

第一步: 如果本地 App 本身的版本号小于蒲公英上的版本号,则提示更新。(注意:App 的本地版本号是指 VersionCode)

第二步: 如果本地 App 的蒲公英自增 Build 版本号(每上传一个新版本的应用则自动加1)小于蒲公英上版本的自增 Build 号,则提示更新。

在这两步中,任何一步如果判断出有新版本,都会提示更新。否则不会提示。

注意事项:

因为蒲公英的自增 Build 版本号 是不写入 App 内的。所以,对于手机上首次安装 App 来说,无论安装的是蒲公英上的哪个版本,SDK 都会认为该 App 本地的蒲公英自增 Build 版本号是当前蒲公英上最新版本的自增 Build 版本号。

因此,在 SDK 第一次启动时,会检查本地是否存在 蒲公英自增 Build 版本号,如果不存在,会调用蒲公英接口将最新的蒲公英自增 Build 版本号写入本地文件中,以便下次用于版本更新的判断。

你可能感兴趣的:(Android进阶之旅)