国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

騰訊Bugly熱更新集成總結

2019-11-07 23:56:59
字體:
來源:轉載
供稿:網友

熱更新:多么高大上的名字,Android 開發者應該都知道這么個東西,原理呢!請自行百度,這里只是集成總結,謝謝!!! 對于第三方SDK的使用,大家都知道用“步步高點讀機,哪里不會點哪里”—— 所以第一步肯定是看官方集成文檔:地址:https://bugly.QQ.com/docs/user-guide/instruction-manual-android-hotfix/?v=20170223160322 首先,剛開始看的時候跟大部分SDK一樣肯定是各種配置的,這里根據官方文檔的步驟來解釋說明哪里需要注意的,以及我是怎么處理成功的。

第一步:添加插件依賴 工程根目錄下“build.gradle”文件中添加:

buildscript { repositories { jcenter() } dependencies { // tinkersupport插件, 其中lastest.release指拉取最新版本,也可以指定明確版本號,例如1.0.4 classpath “com.tencent.bugly:tinker-support:latest.release” } } 坑 1:這里是添加依賴沒錯,但我遇到問題就是后面生成patch包時在Gradle任務中找不到文檔里面說的tinker文件夾和tinker-support文件夾(后面的步驟會說到),于是乎翻山越嶺找資料,發現一個這個: classpath (‘com.tencent.tinker:tinker-patch-gradle-plugin:1.7.5’) 需要這個依賴插件

第二步:集成SDK:這里沒有什么大坑,照著復制就可以了,注意:tinker-support.gradle文件中的配置 apply plugin: ‘com.tencent.bugly.tinker-support’

def bakPath = file(“${buildDir}/bakApk/”)

/** * 此處填寫每次構建生成的基準包目錄,如果是你打基準包這個可以暫時不用管,打patch包的話就要改成你的基準包生成的目錄,必須相同 */ def baseApkDir = “app-0208-15-10-00”

/** * 對于插件各參數的詳細解析請參考 */ tinkerSupport {

// 開啟tinker-support插件,默認值trueenable = true// 指定歸檔目錄,默認值當前module的子目錄tinkerautoBackupApkDir = "${bakPath}"http:// 是否啟用覆蓋tinkerPatch配置功能,默認值false// 開啟后tinkerPatch配置不生效,即無需添加tinkerPatchoverrideTinkerPatchConfiguration = true// 編譯補丁包時,必需指定基線版本的apk,默認值為空// 如果為空,則表示不是進行補丁包的編譯// @{link tinkerPatch.oldApk } **patch包改成基準包的apk文件名**baseApk = "${bakPath}/${baseApkDir}/app-release.apk"http:// 對應tinker插件applyMapping **patch包改成基準包的mapping文件名**baseApkPRoguardMapping = "${bakPath}/${baseApkDir}/app-release-mapping.txt"http:// 對應tinker插件applyResourceMapping **patch包改成基準包的R文件名**baseApkResourceMapping = "${bakPath}/${baseApkDir}/app-release-R.txt"http:// 構建基準包和補丁包都要指定不同的tinkerId,并且必須保證唯一性,**基準包這里最好是改成base-versionname,patch包就改成patch-versionname,每個版本的都不一樣**tinkerId = "base-1.0.1"http://示例// 構建多渠道補丁時使用// buildAllFlavorsDir = "${bakPath}/${baseApkDir}"http:// 是否開啟反射application模式enableProxyApplication = false

}

/** * 一般來說,我們無需對下面的參數做任何的修改 * 對于各參數的詳細介紹請參考: * https://github.com/Tencent/tinker/wiki/Tinker-%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97 */ tinkerPatch { //oldApk =”bakPath/{appName}/app-release.apk” ignoreWarning = false useSign = true dex { dexMode = “jar” pattern = [“classes*.dex”] loader = [] } lib { pattern = [“lib//.so”] }

res { pattern = ["res/*", "r/*", "assets/*", "resources.arsc", "AndroidManifest.xml"] ignoreChange = [] largeModSize = 100}packageConfig {}sevenZip { zipArtifact = "com.tencent.mm:SevenZip:1.1.10"

// path = “/usr/local/bin/7za” } buildConfig { keepDexApply = false //tinkerId = “1.0.1-base” //applyMapping = “bakPath/{appName}/app-release-mapping.txt” // 可選,設置mapping文件,建議保持舊apk的proguard混淆方式 //applyResourceMapping = “bakPath/{appName}/app-release-R.txt” // 可選,設置R.txt文件,通過舊apk文件保持ResId的分配 } }

后面的步驟就按照集成文檔來就OK了,最后說明一下:build文件夾下會產生很多app-xxxx-xx-xx的文件夾, 你生成的基準包就是在這里面,主要使用最新的,不想要的話直接build project或者clean也可以。 這里寫圖片描述

終極大坑: 在打patch包的時候,遇到點擊Gradle任務中的tinker-support生成apk的時候有時會出錯,經過我的不斷rebuild和clean之后就好了(也有可能是你配置文件中的問題,這里需要注意)。 生成patch包

demo地址:http://download.csdn.net/detail/ling9400/9763209(module)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 佛冈县| 天长市| 南陵县| 饶阳县| 洱源县| 新津县| 大厂| 卫辉市| 鄂托克前旗| 布拖县| 广汉市| 特克斯县| 中阳县| 柳河县| 榕江县| 义马市| 宝丰县| 汶上县| 庆元县| 图们市| 阿勒泰市| 玉林市| 宜阳县| 钦州市| 温宿县| 墨竹工卡县| 浑源县| 长沙市| 泰兴市| 西平县| 社旗县| 樟树市| 平原县| 平度市| 通海县| 泰州市| 长兴县| 始兴县| 天津市| 咸丰县| 泸溪县|