接入熱修復bugly
阿新 • • 發佈:2018-12-17
1、專案build.gradle 引入:classpath "com.tencent.bugly:tinker-support:1.1.0"
2、app build.gradle引入依賴
implementation "com.android.support:multidex:1.0.1" // 多dex配置 //註釋掉原有bugly的倉庫 implementation 'com.tencent.bugly:crashreport_upgrade:1.3.3'
3、新建tinker-support.gradle,與app中的gradle並列,app中build.gradle引入tinker-support.gradle
4、通過gradle打基準包,可以通過基準包加固,或者打多渠道包
5、打補丁包
補丁包路徑
6、tinker-support.gradle檔案:
apply plugin: 'com.tencent.bugly.tinker-support' def bakPath = file("${buildDir}/bakApk/") /** * 此處填寫每次構建生成的基準包目錄 */ def baseApkDir = "app-1026-09-18-57" /** * 對於外掛各引數的詳細解析請參考 */ tinkerSupport { // 開啟tinker-support外掛,預設值true enable = true // tinkerEnable功能開關 tinkerEnable = true // 自動生成tinkerId, 你無須關注tinkerId,預設為false autoGenerateTinkerId = true // 指定歸檔目錄,預設值當前module的子目錄tinker autoBackupApkDir = "${bakPath}" // 是否啟用覆蓋tinkerPatch配置功能,預設值false // 開啟後tinkerPatch配置不生效,即無需新增tinkerPatch overrideTinkerPatchConfiguration = true // 編譯補丁包時,必需指定基線版本的apk,預設值為空 // 如果為空,則表示不是進行補丁包的編譯 // @{link tinkerPatch.oldApk } baseApk = "${bakPath}/${baseApkDir}/app-release.apk" // 對應tinker外掛applyMapping baseApkProguardMapping = "${bakPath}/${baseApkDir}/app-release-mapping.txt" // 對應tinker外掛applyResourceMapping baseApkResourceMapping = "${bakPath}/${baseApkDir}/app-release-R.txt" // 打多渠道補丁時指定目錄 // buildAllFlavorsDir = "${bakPath}/${baseApkDir}" // 是否使用加固模式,預設為false isProtectedApp = true // 是否採用反射Application的方式整合,無須改造Application enableProxyApplication = true // 是否支援新增非export的Activity(注意:設定為true才能修改AndroidManifest檔案) supportHotplugComponent = true } /** * 一般來說,我們無需對下面的引數做任何的修改 * 對於各引數的詳細介紹請參考: * https://github.com/Tencent/tinker/wiki/Tinker-%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97 */ tinkerPatch { tinkerEnable = true ignoreWarning = true 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 = "base-2.0.1" } }