腾讯应用宝自更新SDK使用指南.docx
- 文档编号:29183033
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:13
- 大小:53KB
腾讯应用宝自更新SDK使用指南.docx
《腾讯应用宝自更新SDK使用指南.docx》由会员分享,可在线阅读,更多相关《腾讯应用宝自更新SDK使用指南.docx(13页珍藏版)》请在冰豆网上搜索。
腾讯应用宝自更新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接口以及参数定义,请参照接口文档说明。 。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 腾讯 应用 更新 SDK 使用指南
![提示](https://static.bdocx.com/images/bang_tan.gif)