Android应用开发之APK版本更新的SDK及API

一、生成增量包:

       下载并解压文件bsdiff4.3-win32.rar,复制两个版本的APK文件,粘贴在解压后的文件同级目录中,从cmd进入解压文件目录,输入命令生成增量包。

       增量包生成命令:bsdiff.exe   ../old.apk   ../new.apk   ../xx.patch

 

二、导入jar包到Android工程并添加动态库:

       导入e6gps-upgrade1.0.1.jar,eventbus-1.0.1.jar,添加动态库libE6Upgrade.so。

 

三、在AndroidManifest.xml中添加权限:

      

      

      

 

四、在AndroidManifest.xml中添加activity及service:

       

            android:name="com.e6gps.global.ui.E6UpgradeDialogActivity"

            android:theme="@android:style/Theme.Translucent.NoTitleBar" />

       

 

五、添加资源文件:

       将e6gps-upgrade1.0.1.工程下的res资源文件复制到你自己的项目中,包括drawable,layout,string资源。

 

六、启动版本检测及版本更新:

        E6UpgradeInterface.setUrlExamineUpdate(downloadUrl);

        E6UpgradeInterface.init(getApplicationContext());

 

七、接口调用API:

       接口调用方法在E6UpgradeInterface类中。

      1、public static void init(Context context)

           @param context     Application的实例,

           备注:如果在activity中启动请调用getApplicationContext()获取。

      2、public static void setUrlExamineUpdate(String urlExamineUpdate)

           @param urlExamineUpdate     检测是否存在新版本的url

           备注:此方法必须调用,且在init(content)方法前调用。

      3、public static void setDeltaUpdate(boolean whetherUseDeltaUpdate)

           @param  whetherUseDeltaUpdate     是否使用增量更新。true为使用增量更新,false为全量更新。

           备注:此方法为可选方法,如果调用请在init(content)方法前调用。默认使用全量更新,当服务器存在增量包请使用增量更新。

      4、public static void setDebugMode(boolean isShowDebug)

           @param  isShowDebug     是否打印log调试日志

           备注:此方法为可选方法,如果调用请在init(content)方法前调用。增量更新日志的tag为“E6UpgradeCore”。默认不打印log日志。

      5、public static void setUpgradeListener(E6UpgradeListener listener)

           @params listener       版本检测监听者

           备注:此方法为可选方法,如果调用请在init(content)方法前调用。设置版本检测过程的监听者,并产生回调。

           eg:E6UpgradeInterface.setUpgradeListener(new E6UpgradeListener()  {

                          @Override

                          public void onUpgradeResult(int result) {

                                    switch (result) {

                                              case E6UpgradeInterface.HAS_NEW_VERSION:                    //存在新版本时回调。

                                                       Toast.makeText(this, "It has new version.", Toast.LENGTH_SHORT).show();  

                                                       break;

                                              case E6UpgradeInterface.FAILURE_GET_VERSION:               //从服务器获取版本信息失败时回调。

                                                       Toast.makeText(mContext, "It has not new version.", Toast.LENGTH_SHORT).show();

                                                       break;

                                              case E6UpgradeInterface.NO_NEW_VERSION:                        //用户使用的版本是最新版本时回调。

                                                      Toast.makeText(mContext, "It is latest.",Toast.LENGTH_SHORT).show();

                                                       break;

                                               case E6UpgradeInterface.NO_SUPPORT_THIS_VERSION:      //用户版本过低,并且放弃更新,执行此回调。可以在此退出应用。

                                                       finish();

                                                       break;

                                               default:

                                                       break;

                                    }

                          }

        });

 

八、Http数据请求接口文档:

       接口名称:AppUpgrade;

       调用方式:POST;

       输入参数:

             versionCode    APP当前版本号;

       输出参数:

             state                   接口调用状态,0为成功,1为失败;

             latestVersion      最新版本APP版本号;

             minVersion         服务器支持的APP最低版本号;

             fullUrl                  最新版本的APP文件下载地址;

             patchUrl              增量更新模式下的增量包下载地址;

             patchSize            增量更新模式下的增量包大小;

             characters           新版本特性列表,值为JSONArray,

                                         eg:"'characters':[{'character':'消息推送功能'},{'character':'位置服务功能'}]}";

             character             新版本特性,值为JSONObject。

        备注:全量更新模式下patchUrl和patchSize给空字符串即可。不想提示新版本特性,characters给"[]"即可。

        

你可能感兴趣的:(移动开发,Android,版本更新,全量更新,增量更新)