使用Bugly實(shí)現(xiàn)android熱更新

今天研究熱更新的時(shí)候研究了微信的Tinker熱更新框架,后來(lái)發(fā)現(xiàn)Bugly的升級(jí)SDK已經(jīng)封裝好了Tinker。

而且提供一站式服務(wù),還免費(fèi) :-D

步驟如下:
  • 1、引用Bugly升級(jí)SDK.

    在app module中添加如下引用

     compile 'com.android.support:multidex:1.0.1'// 多dex配置
     compile 'com.tencent.bugly:crashreport_upgrade:latest.release'    //其中l(wèi)atest.release指代最新版本號(hào),也可以指定明確的版本
    

在工程項(xiàng)目bulid.gradle中添加以下代碼:
classpath "com.tencent.bugly:tinker-support:latest.release"
為app module添加依賴:
apply from: 'tinker-support.gradle'

  • 2、配置tinker-support.gradle

    在app目錄下創(chuàng)建一個(gè)tinker-support.gradle文件。
    apply plugin: 'com.tencent.bugly.tinker-support'

       def bakPath = file("${buildDir}/bakApk/")
    
       def appName = "app-0118-15-09-30"
    
       /**
        * 對(duì)于插件各參數(shù)的詳細(xì)解析請(qǐng)參考
        */
       tinkerSupport {
       
           // 開(kāi)啟tinker-support插件,默認(rèn)值true
           enable = true
    
           // 指定歸檔目錄,默認(rèn)值當(dāng)前module的子目錄tinker
           autoBackupApkDir = "${bakPath}"
    
           // 是否啟用覆蓋tinkerPatch配置功能,默認(rèn)值false
           // 開(kāi)啟后tinkerPatch配置不生效,即無(wú)需添加tinkerPatch
           overrideTinkerPatchConfiguration = true
                
           // 編譯補(bǔ)丁包時(shí),必需指定基線版本的apk,默認(rèn)值為空
           // 如果為空,則表示不是進(jìn)行補(bǔ)丁包的編譯
           // @{link tinkerPatch.oldApk }
           baseApk =  "${bakPath}/${appName}/app-release.apk"
    
           // 對(duì)應(yīng)tinker插件applyMapping
           baseApkProguardMapping = "${bakPath}/${appName}/app-release-mapping.txt"
    
           // 對(duì)應(yīng)tinker插件applyResourceMapping
           baseApkResourceMapping = "${bakPath}/${appName}/app-release-R.txt"
    
           // 唯一標(biāo)識(shí)當(dāng)前版本
           tinkerId = "1.0.1-patch"
    
           // 是否開(kāi)啟代理Application,設(shè)置之后無(wú)須改造Application,默認(rèn)為false
           enableProxyApplication = true
       }
    
  • 3、生成基準(zhǔn)包和補(bǔ)丁包

    按照文檔配置好需要的權(quán)限,在Application中做好BuglySDK的初始化后我們就可以開(kāi)始熱更新測(cè)試了。
    通過(guò)build中的assembleRealse生成基準(zhǔn)包


    如果您的代碼使用了混淆功能還會(huì)生成一個(gè)mapping文件。

修改tinker-support.gradle中的tinkerId為新版本的標(biāo)識(shí)符。appName為你生成基準(zhǔn)包的目錄。
然后使用

生成補(bǔ)丁
補(bǔ)丁目錄

即可生成補(bǔ)丁,然后通過(guò)Bugly后臺(tái)

上傳補(bǔ)丁

上傳補(bǔ)丁即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容