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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android 热修复】运行 Tinker 官方示例 ( 处理 TINKER_ID 问题 | 编译 debug 包 | 修改 Gradle 脚本 | 生成 patch 包 | 热修复 )

發布時間:2025/6/17 Android 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android 热修复】运行 Tinker 官方示例 ( 处理 TINKER_ID 问题 | 编译 debug 包 | 修改 Gradle 脚本 | 生成 patch 包 | 热修复 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、下載官方示例源碼
  • 二、處理 TINKER_ID 問題
  • 三、編譯 debug 包
  • 四、安裝 APK 并運行
  • 五、修改 Gradle 構建腳本中的文件名稱
  • 六、修改程序邏輯代碼
  • 七、生成 patch 包
  • 八、熱修復
  • 九、 源碼資源





一、下載官方示例源碼



Tinker 官方代碼示例 : https://github.com/Tencent/tinker/tree/dev/tinker-sample-android





二、處理 TINKER_ID 問題



下載該 tinker-sample-android 代碼 , 先處理 TINKER_ID 問題 , 參考 【錯誤記錄】Tinker 熱修復示例運行報錯 ( Execution failed for task ‘:app:tinkerProcessD‘ . tinkerId is not set!!! )


解決 " tinkerId is not set!!! " 問題 , 有兩種處理方案 :


方案一 :

在 gradle.properties 配置中 , 設置 TINKER_ID 參數 ,

TINKER_ID=1.0 TINKER_ENABLE=true


方案二 : 修改 https://github.com/Tencent/tinker/blob/dev/tinker-sample-android/app/build.gradle 構建腳本代碼 , 使 gitSha 方法返回非空字符串 ;

def gitSha() {try {String gitRev = "1.0"if (gitRev == null) {throw new GradleException("can't get git rev, you should add git to system path or just input test value, such as 'testTinkerId'")}return gitRev} catch (Exception e) {throw new GradleException("can't get git rev, you should add git to system path or just input test value, such as 'testTinkerId'")} }



三、編譯 debug 包



運行 Gradle 面板中的 " tinker-sample-android / app / Tasks / other / assembleDebug " 任務 , 雙擊即可 ;

運行 assembleDebug 任務完畢后 , 在 " tinker-master\tinker-sample-android\app\build\bakApk " 目錄下 , 會生成

  • app-debug-0423-21-38-18.apk
  • app-debug-0423-21-38-18-R.txt

兩個文件 ;


還有一種方法 , 在 Terminal 中斷面板中 , 執行 gradlew assembleDebug 命令 , 也可以運行 assembleDebug gradle 任務 ;





四、安裝 APK 并運行



將上述編譯好的 app-debug-0423-21-38-18.apk 安裝文件 , 部署到應用中 , 運行應用 :

點擊 " SHOW INFO " 按鈕 , 即可查看運行效果 ;





五、修改 Gradle 構建腳本中的文件名稱



根據上一步生成的兩個文件

  • app-debug-0423-21-38-18.apk
  • app-debug-0423-21-38-18-R.txt

修改 app 下的 build.gradle 構建腳本 " tinker-sample-android\app\ build.gradle" , 主要使用 " 0423-21-38-18 " 這個時間參數 ;

在 Gradle 構建腳本中 , 修改如下四個變量中的時間相關值 , 將時間參數修改為 " 0423-21-38-18 " ,

ext {//for some reason, you may want to ignore tinkerBuild, such as instant run debug build?tinkerEnabled = true//for normal build//old apk file to build patch apktinkerOldApkPath = "${bakPath}/app-debug-0424-15-02-56.apk"//proguard mapping file to build patch apktinkerApplyMappingPath = "${bakPath}/app-debug-1018-17-32-47-mapping.txt"//resource R.txt to build patch apk, must input if there is resource changedtinkerApplyResourcePath = "${bakPath}/app-debug-0424-15-02-56-R.txt"//only use for build all flavor, if not, just ignore this fieldtinkerBuildFlavorDirectory = "${bakPath}/app-1018-17-32-47" }

修改后的效果 :

ext {//for some reason, you may want to ignore tinkerBuild, such as instant run debug build?tinkerEnabled = true//for normal build//old apk file to build patch apktinkerOldApkPath = "${bakPath}/app-debug-0423-21-38-18.apk"//proguard mapping file to build patch apktinkerApplyMappingPath = "${bakPath}/app-debug-0423-21-38-18-mapping.txt"//resource R.txt to build patch apk, must input if there is resource changedtinkerApplyResourcePath = "${bakPath}/app-debug-0423-21-38-18-R.txt"//only use for build all flavor, if not, just ignore this fieldtinkerBuildFlavorDirectory = "${bakPath}/app-0423-21-38-18" }



六、修改程序邏輯代碼



修改 MainActivity 程序 , 放開該行注釋代碼 ,





七、生成 patch 包



在 Gradle 面板中 , 運行 " tinker-sample-android / app / Tasks / tinker/ tinkerPatchDebug " 任務 , 雙擊即可 ;

運行完成后 , 在 " tinker-sample-android\app\build\outputs\apk\tinkerPatch\debug " 目錄下生成了 patch 包 ;





八、熱修復



將 app-debug-patch_signed_7zip.apk 文件 , 更名為 patch_signed_7zip.apk , 拷貝到手機 SD 卡根目錄 ;

點擊 " LOAD PATCH " 按鈕 , 會有 Toast 提示成功 " patch success, please restart process " , 熱修復成功 ;





九、 源碼資源



參考資料 :

  • 官方主頁 : https://github.com/Tencent/tinker

  • Tinker 官方 Wiki 地址 : https://github.com/Tencent/tinker/wiki

  • Tinker 接入指南 : https://github.com/Tencent/tinker/wiki/Tinker-接入指南

  • Tinker 官方示例 : https://github.com/Tencent/tinker/tree/master/tinker-sample-android

源碼資源 :

  • GitHub 地址 : https://github.com/Tencent/tinker/tree/dev/tinker-sample-android
  • CSDN 源碼快照 : https://download.csdn.net/download/han1202012/17417498
    ( Tiinker 完整項目 )

總結

以上是生活随笔為你收集整理的【Android 热修复】运行 Tinker 官方示例 ( 处理 TINKER_ID 问题 | 编译 debug 包 | 修改 Gradle 脚本 | 生成 patch 包 | 热修复 )的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲欧美日韩电影 | 欧美动态色图 | 日本精品影院 | 黄色片女人 | 澳门av在线 | 日韩精品h | 自宅警备员在线观看 | 五月婷婷丁香六月 | 视频一二三区 | 在线观看国产欧美 | 折磨小男生性器羞耻的故事 | 欧美激精品| 日韩在线观看免费高清 | 欧美日韩国产精品成人 | 国产毛片一区二区三区va在线 | 国产黄色大片视频 | 国产日本欧美在线 | 久久久久久久久免费看无码 | 天堂а√在线中文在线鲁大师 | 中国黄色一级大片 | 中文字幕一区二区三区四区 | 亚洲精品国产福利 | 一区二区三区不卡在线观看 | 久久久欧洲 | 99精品无码一区二区 | 天堂欧美城网站网址 | 一区免费视频 | 午夜在线一区二区 | 人妻一区二区在线 | 中文字幕一区二区三区人妻不卡 | 国产又色又爽又黄的 | 亚洲瘦老头同性xxxxx | 久久久99精品国产一区二区三区 | 99热播精品 | 黄网站免费在线观看 | 亚洲精品久久久久久无码色欲四季 | 久久资源av| 欧美精品一区在线发布 | 亚洲人视频在线 | 一本大道av伊人久久综合 | 日韩欧美中文在线观看 | 97人妻精品一区二区三区免费 | 日韩欧美中文字幕一区二区三区 | 亚洲午夜在线视频 | 欧美人妖另类 | 亚洲蜜臀av一区二区三区 | 国产网站黄 | 91av看片 | 日韩污视频在线观看 | 波多野吉衣久久 | 日韩中文字幕国产 | 特黄视频在线观看 | 波多野结衣中文字幕一区二区三区 | 日韩在线观看中文字幕 | 艳妇乳肉豪妇荡乳av | 麻豆成人在线观看 | 国产精品自拍99 | 亚洲高清福利 | 草久久免费视频 | 国内精品毛片 | 女性裸体视频网站 | 婷婷麻豆 | 免费看黄色一级大片 | 国产乱码精品1区2区3区 | 亚洲精品视频在线播放 | 国产免费无遮挡 | 日本xxxxwwwww | 久久99国产综合精品免费 | 亚洲在线视频一区 | 婷婷午夜精品久久久久久性色av | 人人做人人爱人人爽 | 日本中文字幕久久 | 国产精品久久国产精麻豆96堂 | 九九九网站 | 69国产精品视频免费观看 | 国产香蕉视频在线 | 国产女人高潮视频 | 秋霞成人午夜鲁丝一区二区三区 | 欧美另类一区二区 | 亚洲国产一区二区三区a毛片 | 成人h动漫在线 | 在线视频 中文字幕 | 久草久草 | 人人妻人人澡人人爽欧美一区 | 看av免费毛片手机播放 | 国产区久久 | 18岁毛片 | 欧美日韩亚洲国产一区 | 国产激情视频在线观看 | 午夜影院一区二区三区 | 久久不卡av | 国产日韩欧美自拍 | 午夜天堂在线观看 | 国产精品国产三级国产aⅴ9色 | 国产精品白嫩白嫩大学美女 | 国产裸体视频网站 | 无码人妻丰满熟妇啪啪欧美 | www.在线观看网站 | 日韩精品视频一区二区三区 |