日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

应用宝省流量更新sdk接入指南

發布時間:2023/12/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 应用宝省流量更新sdk接入指南 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載請聲明原文地址:http://blog.csdn.net/sagittarius1988/article/details/52200815???????

? ? ? ?app的自動更新,是一個非常重要的功能。而要實現一套更新機制,技術上來說其實很簡單。但對于小公司來說,其實很沒有必要,因為你需要一臺文件服務器提供下載,萬一app火了,那這臺文件服務器的壓力就相當大了。現在有很多做平臺的大公司會有在做這一套自動更新的服務,算是給小公司減輕成本吧。

???????以前幾個app用的是友盟的自動更新服務,因為也使用友盟的統計服務,所以就選擇了友盟。但是自從被阿里收購后,友盟的更新服務即將關閉,所以不得不尋求其它方案。 有找到幾家:騰訊的應用寶、360手機助手、百度手機助手 都有提供自動更新的服務,只需集成相應的SDK便可。從中進行了對比,發現應用寶的app上架審核速度最快,所以建議還是使用應用寶的自動更新服務,這樣更新的下發會更及時。

????? 下面來講講應用寶自動更新SDK的接入。

????? 首先要收,騰訊開放平臺的文檔確實是個坑,文檔的參考價值不是很大,很多還是得靠自己去摸索。按照開放平臺上的接入文檔,發送郵件,獲取到渠道號,并下載sdk,會得到一個jar文件“tmassistantsdk_selfupdate_v1.0_20151229170816.jar”,將此jar引入項目當中,并按照sdk使用指南進行配置。

AndroidManifest.xml中加入以下權限和Service

<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <serviceandroid:name="com.tencent.tmdownloader.TMAssistantDownloadService"android:exported="false"android:process=":TMAssistantDownloadSDKService" />


配置好后進行SDK的初始化,配置好后先簡單的進行更新檢測操作

TMSelfUpdateManager.getInstance().init(getApplicationContext(), "申請到的渠道號", new ITMSelfUpdateListener() {@Overridepublic void onDownloadAppStateChanged(int i, int i1, String s) {}@Overridepublic void onDownloadAppProgressChanged(long l, long l1) {}@Overridepublic void onUpdateInfoReceived(TMSelfUpdateUpdateInfo tmSelfUpdateUpdateInfo) {}}, new YYBDownloadListener() {@Overridepublic void onDownloadYYBStateChanged(String s, int i, int i1, String s1) {}@Overridepublic void onDownloadYYBProgressChanged(String s, long l, long l1) {}@Overridepublic void onCheckDownloadYYBState(String s, int i, long l, long l1) {}}, null);TMSelfUpdateManager.getInstance().checkSelfUpdate();//檢測更新運行后?發現個問題,老是會報錯,提示找不到類,導致崩潰

I/art(12010): Rejecting re-init on previously-failed class java.lang.Class<com.tencent.tmapkupdatesdk.internal.logic.protocol.jce.AppInfoForUpdate> E/AndroidRuntime(12010): FATAL EXCEPTION: apkupdate_asyctask E/AndroidRuntime(12010): Process: com.hikvision.ivms.isp, PID: 12010 E/AndroidRuntime(12010): java.lang.NoClassDefFoundError: com.tencent.tmapkupdatesdk.internal.logic.protocol.jce.AppInfoForUpdate E/AndroidRuntime(12010): at com.tencent.tmapkupdatesdk.internal.logic.a.a(ProGuard:183) E/AndroidRuntime(12010): at com.tencent.tmapkupdatesdk.internal.logic.a.handleMessage(ProGuard:98) E/AndroidRuntime(12010): at android.os.Handler.dispatchMessage(Handler.java:102) E/AndroidRuntime(12010): at android.os.Looper.loop(Looper.java:148) E/AndroidRuntime(12010): at android.os.HandlerThread.run(HandlerThread.java:61)

可能是由于art的問題,但也表示這個SDK多少還是存在著問題會影響使用的。?


谷歌了下應用寶自動更新SDK,發現資料也挺少的,但發現了一個14年老版本,可以在此處下載,引入下載到的jar包“jce.jar”和“TMAssistantSDK_selfUpdate_201407240950.jar”,權限配置跟上面的一樣,SDK的初始化如下

TMSelfUpdateSDK.getInstance().initTMSelfUpdateSDK(getApplicationContext(),?應用的APP?ID, "渠道號",new ITMSelfUpdateSDKListener() {@Overridepublic void OnDownloadYYBStateChanged(String arg0, int arg1, int arg2, String arg3) {}@Overridepublic void OnDownloadYYBProgressChanged(String arg0, long arg1, long arg2) {}@Overridepublic void OnDownloadAppStateChanged(int arg0, int arg1, String arg2) {}@Overridepublic void OnDownloadAppProgressChanged(long arg0, long arg1) {}@Overridepublic void OnCheckNeedUpdateInfo(TMSelfUpdateSDKUpdateInfo arg0) {if (arg0 != null) {StringBuilder sb = new StringBuilder();sb.append("NewApkSize=").append(arg0.getNewApkSize()).append("NewFeature=")//更新日志.append(arg0.getNewFeature()).append("PatchSize=").append(arg0.getPatchSize()).append("Status=").append(arg0.getStatus()).append("UpdateDownloadUrl=")//apk下載地址.append(arg0.getUpdateDownloadUrl()).append("UpdateMethod=").append(arg0.getUpdateMethod());System.out.println("SelfUpdate " + sb.toString()); } else {System.out.println("SelfUpdate already latest!!!");}}}); TMSelfUpdateSDK.getInstance().checkNeedUpdate();


運行后,可以正常檢測到應用寶上的最新版本信息。如果返回的TMSelfUpdateSDKUpdateInfo為null,則說明已經是最新了。

返回有新版本后,可以自定義進行新版本的提示,并提示進行更新。SDK提供了省流量的更新方式,即使用應用寶進行更新,通過調用SDK中的方法進行實現

TMSelfUpdateSDK.getInstance().startSaveUpdate(getApplicationContext());

不過這里需要說明的是,最好判斷下當前本機是否有安裝應用寶app,如果已安裝,則會自動拉起應用寶并自動進入到我們app的更新界面;如果是沒有安裝應用寶,則會去下載應用寶app,下載安裝完打開應用寶app后,自動進入我們app的更新界面。判斷應用寶是否安裝的方法如下?

if (TMSelfUpdateSDK.getInstance().checkYYBInstalled()?== TMAssistantDownloadSDKTaskState.ALREADY_INSTALLED)所以,建議在已裝有應用寶的時候,進行調用startSaveUpdate進行更新;在未裝有應用寶的時候,通過?返回的UpdateDownloadUrl進行下載apk安裝包進行更新,下載apk的方式可以根據自己的喜好進行實現。這樣不會強制用戶進行應用寶的捆綁安裝。

轉載請聲明原文地址:http://blog.csdn.net/sagittarius1988/article/details/52200815




 

總結

以上是生活随笔為你收集整理的应用宝省流量更新sdk接入指南的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。