腾讯应用宝自更新SDK使用指南.docx

上传人:b****5 文档编号:29183033 上传时间:2023-07-21 格式:DOCX 页数:13 大小:53KB
下载 相关 举报
腾讯应用宝自更新SDK使用指南.docx_第1页
第1页 / 共13页
腾讯应用宝自更新SDK使用指南.docx_第2页
第2页 / 共13页
腾讯应用宝自更新SDK使用指南.docx_第3页
第3页 / 共13页
腾讯应用宝自更新SDK使用指南.docx_第4页
第4页 / 共13页
腾讯应用宝自更新SDK使用指南.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

腾讯应用宝自更新SDK使用指南.docx

《腾讯应用宝自更新SDK使用指南.docx》由会员分享,可在线阅读,更多相关《腾讯应用宝自更新SDK使用指南.docx(13页珍藏版)》请在冰豆网上搜索。

腾讯应用宝自更新SDK使用指南.docx

腾讯应用宝自更新SDK使用指南

 

应用宝自更新sdk使用指南

 

平台产品中心

19年3月d日

 

1.创建您的应用1

2.下载该SDK的zip包1

3.搭建开发环境1

3.1.在Eclipse中建立你的工程1

3.2.添加jar包并编译1

3.3.AndroidManifest.xml设置2

4.使用自更新功能2

4.1.初始化Manager3

4.2.实现自更新状态监听器和应用宝下载状态监听器3

4.3.开始自更新5

4.4.释放资源5

4.5.只检查更新信息6

4.5.更新接口使用示例6

5.更多功能6

5.1.检查应用宝是否存在6

5.2.取消应用宝下载6

5.3.检查应用宝是否已经下载完成7

5.4.开始预下载应用宝7

注:

本文为Android平台的新手使用教程,只涉及教授SDK的使用方法,默认读者已经熟悉IDE的基本使用方法(本文以Eclipse为例),以及具有一定的编程知识基础等。

1.创建您的应用

请到开发者页面创建应用,并获取平台分配的appid。

如已有相同包名的应用,则直接在管理页面进行应用认领操作。

2.下载该SDK的zip包

请到产品介绍页下载应用宝第三方调用SDK的zip包,该开发工具包主要包含4部分内容:

1)API文档(供开发者查阅)

2)Demo(供开发者参考)

3)Jar包(包含所有的API功能接口)

4)使用指南(供开发者快速接入)

3.搭建开发环境

1.

2.

3.

3.1.在Eclipse中建立你的工程

3.2.添加jar包并编译

在工程中新建一个libs目录(如不存在),并将zip中的tmassistantsdk_selfupdate*.jar包copy到你的工程libs目录下面

右击工程,并选择buildPath,选择该jar并addtobuildPath:

注意:

如果eclipse安装应用到手机的时候报如下的错误NoClassDefFoundError(protocol.jce.*):

java.lang.NoClassDefFoundError:

com.tencent.tmassistantsdk.internal.protocol.jce.StatStdReport

说明接入的宿主应用没有压缩包中的jce.jar包,请把jce这个jar包添加到工程libs下面。

3.3.AndroidManifest.xml设置

添加必要的权限支持:

name="android.permission.INTERNET"/>

name="android.permission.ACCESS_NETWORK_STATE"/>

name="android.permission.READ_EXTERNAL_STORAGE"/>

name="android.permission.WRITE_EXTERNAL_STORAGE"/>

name="android.permission.READ_PHONE_STATE"/>

name="android.permission.ACCESS_WIFI_STATE"/>

还需要声明下载过程中会用到的serivce:

name="com.tencent.tmdownloader.TMAssistantDownloadService"

android:

exported="false"

android:

process=":

TMAssistantDownloadSDKService"/>

4.自更新功能接口介绍

我们为调用方提供了两种自更新方式可供选择:

1)跳转到应用宝中进行自更新,如果用户没安装应用宝,则会先自动下载并安装应用宝,安装完成后再跳转到应用宝进行自更新。

应用宝提供了强大的下载和管理功能,可以快速便捷地帮助用户下载更新包。

2)直接使用SDK进行自更新,仅提供简单的自更新逻辑,不提供自更新任务的管理等功能,如下载过程中的暂停,取消,重新开始等。

3)资源包更新(直接在应用中更新),提供资源包更新的目录,

4.

4.1.初始化Manager

自更新的功能主要通过调用TMSelfUpdateManager中的接口实现。

使用自更新SDK前,必须对其进行初始化。

可以参考以下初始化的代码:

//自更新sdk初始化

TMSelfUpdateManagerselfUpdateManager=TMSelfUpdateManager.getInstance();

try{

Contextcontext=getApplication();//application的context

Stringchannelid="990483";//应用宝渠道包的渠道号,申请方法请参见《腾讯应用宝自更新SDK产品介绍》中的产品接入步骤step1

ITMSelfUpdateListenerselfupdateListener=newITMSelfUpdateListener(){

//实现请参考下一小节实现自更新状态监听器部分的内容

};//自更新状态监听器

YYBDownloadListeneryybDownloadListener=newYYBDownloadListener(){

//实现请参考下一小节实现应用宝下载状态监听器部分的内容

};//应用宝下载状态监听器

Bundlebundle=null;//附加参数的bundle,一般情况下传空,可以由外部传入场景信息等,具体字段可参考TMSelfUpdateConst.BUNDLE_KEY_*的定义

selfUpdateManager.init(context,channelid,selfupdateListener,yybDownloadListener,bundle);

}catch(Exceptione){

e.printStackTrace();

}

4.2.实现自更新状态监听器和应用宝下载状态监听器

自更新状态监听器(ITMSelfUpdateListener),是用于监听当前更新包的下载状态变化的回调接口。

应用宝下载状态监听(YYBDownloadListener),是用于监听应用宝的下载状态变化的回调接口,只在跳应用宝进行自更新的时候才会被使用。

这两个监听器在初始化Manager中已经作为参数传入进行注册,需要开发者在回调方法中实现自定义的业务逻辑。

1)实现自更新状态监听器ITMSelfUpdateListener:

privateITMSelfUpdateListenerselfupdateListener=newITMSelfUpdateListener(){

@Override

publicvoidonDownloadAppStateChanged(finalintstate,finalinterrorCode,finalStringerrorMsg){

//TODO更新包下载状态变化的处理逻辑

}

@Override

publicvoidonUpdateInfoReceived(TMSelfUpdateUpdateInfoarg0){

//TODO收到更新信息的处理逻辑

}

@Override

publicvoidonDownloadAppProgressChanged(finallongarg0,finallongarg1){

//TODO更新包下载进度发生变化的处理逻辑

}

};

2)实现应用宝下载状态监听器YYBDownloadListener:

privateYYBDownloadListeneryybDownloadListener=newYYBDownloadListener(){

@Override

publicvoidonDownloadYYBStateChanged(Stringurl,finalintstate,interrorCode,StringerrorMsg){

//TODO应用宝下载状态变化的处理逻辑

}

@Override

publicvoidonDownloadYYBProgressChanged(finalStringurl,finallongreceiveDataLen,finallongtotalDataLen){

//TODO应用宝下载进度变化的处理逻辑

}

};

4.3.开始自更新

调用开始自更新接口即可开始自更新:

selfUpdateManager.startSelfUpdate(isUseYYB);

其传入的参数说明如下:

(1)isUseYYB为true时,使用省流量更新,跳应用宝进行自更新,在应用宝已安装的情况下,会call起调用方app的应用宝详情页,让用户下载更新;在应用宝未安装的情况下,会下载最新的应用宝,必须在Activity的onResume()方法中调用onActivityResume()方法,安装完成应用宝后才会继续call起调用方app的应用宝详情页,让用户下载更新:

@Override

protectedvoidonResume(){

super.onResume();

try{

selfUpdateManager.onActivityResume();

}catch(Throwablee){

e.printStackTrace();

}

}

(2)isUseYYB为false时,无需下载应用宝,使用sdk一条龙服务进行普通更新,包含检查更新、Apk的下载、合成等。

不需要调用onActivityResume()方法。

4.4.释放资源

在TMSelfUpdateManager中提供了destroy()接口进行资源清理,包括移除已经注册过的监听器。

所以在不再使用自更新功能时建议主动调用destroy()释放资源,例如在调用方的Activity的OnDestroy()中释放资源:

@Override

protectedvoidonDestroy(){

super.onDestroy();

selfUpdateManager.destroy();

}

4.5.只检查更新信息

在TMSelfUpdateManager中提供了checkSelfUpdate接口来检查更新信息,更新信息异步回调到ITMSelfUpdateListener中,在onUpdateInfoReceived方法中接受相关的信息。

4.6.更新接口使用示例

1.检查有没最新版本checkSelfUpdate:

try{

selfUpdateManagerSDK.checkSelfUpdate();

}catch(Throwablee){

e.printStackTrace();

TMLog.e(TAG,"exception:

",e);

}

2.在ITMSelfUpdateListener监听的onUpdateInfoReceived中处理checkSelfUpdate回调:

@Override

publicvoidonUpdateInfoReceived(TMSelfUpdateUpdateInfoarg0){

SoftwareUpdateInfoupdateInfo=newSoftwareUpdateInfo();

if(arg0!

=null

&&arg0.getStatus()==TMSelfUpdateUpdateInfo.STATUS_OK

&&arg0.getNewApkSize()>0){

//解析版本号

Stringurl=arg0.getUpdateDownloadUrl();

Stringversion="";

if(url!

=null&&url.length()>0){

String[]temp=url.split("_");

if(temp.length>2){

version=temp[1];

}

}

updateInfo.hasNewVersion=true;

updateInfo.newVersion=version;

updateInfo.updateContent=arg0.getNewFeature();

updateInfo.updateSize=arg0.getNewApkSize();

//patch包大小:

如果不为零则说明有增量包,否则说明只有全量包

updateInfo.patchSize=arg0.getPatchSize();

}

Handlerhandler=newHandler();

handler.getLooper();

if(updateInfo.hasNewVersion){

finalStringnewVersion=updateInfo.newVersion;

handler.post(newRunnable(){

@Override

publicvoidrun(){

//这里可以执行真正的自更新(false:

sdk实现true:

跳转应用宝)

//startSelfUpdate(true);

}

});

}else{

//当前是最新版本

}

}

publicclassSoftwareUpdateInfo{

publicbooleanhasNewVersion=false;

publicStringnewVersion="";

publicStringupdateContent="";

publiclongupdateSize=0;

publiclongpatchSize;

publicintupdateMethod;

}

全量包的下载url:

 

这里可以根据回调判断服务器有没新版本来显示应用自更新弹框,点击弹框中更新选项再执行更新:

selfUpdateManagerSDK.startSelfUpdate(false);

 

5.更多功能

除上述功能以外,TMSelfUpdateManager还提供了更多的功能。

5.

5.1.检查应用宝是否存在

intstatus=0;

try{

//检查应用宝安装状态

status=selfUpdateManager.checkYYBInstallState();

}catch(Exceptione){

e.printStackTrace();

}

if(status==TMAssistantDownloadTaskState.ALREADY_INSTALLED){

//TODO:

已安装应用宝:

可直接跳转到应用宝的指定页面;

}elseif(status==TMAssistantDownloadTaskState.UN_INSTALLED){

//TODO:

未安装应用宝:

建议提示用户下载应用宝(需第三方开发者自己实现应用宝的

//下载逻辑)或者不做跳转;

}elseif(status==TMAssistantDownloadTaskState.LOWWER_VERSION_INSTALLED){

//TODO:

当前安装的应用宝版本过低(即不支持跳转):

建议提示用户升级应用宝

//(需第三方开发者自己实现应用宝的升级逻辑)或者不做跳转。

}

如果需要获取当前手机上应用宝的安装状态,TMSelfUpdateManager为你提供了检查应用宝是否正常安装的接口checkYYBInstallState(),可以根据该接口的返回值判断应用宝是否安装(具体返回值的含义请参考接口文档)。

5.2.取消应用宝下载

selfUpdateManager.cancelYYBDownload();

开始下载应用宝后,调用上述方法就可以终止下载应用宝。

5.3.检查应用宝是否已经下载完成

selfUpdateManager.checkYYBDownloaded();

是否已经下载成功的结果会异步返回给调用方,在

privateYYBDownloadListeneryybDownloadListener=newYYBDownloadListener(){

@Override

publicvoidonCheckDownloadYYBState(Stringurl,intstate,

longreceiveDataLen,longtotalDataLen){

//TODO应用宝下载状态检查结果返回

if(state==TMAssistantDownloadTaskState.DownloadSDKTaskState_SUCCEED){

//已经下载成功

}else{

//未下载成功

}

}

}

5.4.开始预下载应用宝

selfUpdateManager.startPreDownloadYYB(false);

传递的参数代表是否下载完成后进行安装,下载的进度等信息仍然会回调到yybDownloadListener中。

至此您已经了解了该SDK的基础API,如需了解详细的SDK接口以及参数定义,请参照接口文档说明。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 人力资源管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1