最新微信Tinker 熱修復平臺接入教程(超詳細)
目錄
Tinker接入文件
1 Tinker簡介
1.1Tinker優點
1.2 Tinker缺點
1.Tinker不支援修改AndroidManifest.xml,Tinker不支援新增四大元件(1.9.0支援新增非export的Activity);
2.由於Google Play的開發者條款限制,不建議在GP渠道動態更新程式碼;
3.在Android N上,補丁對應用啟動時間有輕微的影響;
4.不支援部分三星android-21機型,載入補丁時會主動丟擲"TinkerRuntimeException:checkDexInstall failed";
5.對於資源替換,不支援修改remoteView。例如transition動畫,notification icon以及桌面圖示。
2 Tinker 接入過程
2.1 配置過程
注意:本文基於完全新建專案之上,加粗文字是重點。
第一步在build.gradle新增
classpath ("com.tinkerpatch.sdk:tinkerpatch-gradle-plugin:${TINKERPATCH_VERSION}") { changing = true }
如下:
並同時在gradle.properties中新增
TINKERPATCH_VERSION
如下:
否則會出現錯誤:
原因:
沒有指定TINKERPATCH_VERSION版本號
補充:
建議使用最新版本地址:http://tinkerpatch.com/Docs/changelog,目前是1.2.8,改版本不用變其它的但是不同版本之間不能使用。
第二步在app/build.gradle加入Tinker的sdk
compile("com.tinkerpatch.sdk:tinkerpatch-android-sdk:${TINKERPATCH_VERSION}") { changing = true }
如下:
第三步在app目錄下新增tinkerpatch.gradle
如下:
可以將我提供的tinkerpatch.gradle直接複製過去。具體sdk配置參考
然後在app/build.gradle加入
apply from: 'tinkerpatch.gradle'
如下:
第四步 新增初始化 TinkerPatch SDK的類
這裡我們使用的是一鍵接入功能,也就是官方的Application 類。如需自定義請參考
可以將我提供的SampleApplication.java直接複製到app的Java目錄下即可
如下:
然後需要在app/build.gradle加入程式碼:
multiDexEnabled true
如下:
否則會出現錯誤:
在SampleApplication.java中
如果還有問題就加入
compile 'com.android.support:multidex:1.0.1'
接著在app/AndroidManifest.xml加入
android:name=".SampleApplication"
如下:
2.2 使用過程
為方便檢視補丁效果和加快更新速度新增一個Toast和Button。
注意:如需在Debug模式除錯程式將tinkerpatch.gradle中的
tinkerEnable變為false 就是關閉Tinker功能
設定如下:
第一步配置簽名
推薦Android studio自帶簽名工具,否則可能會出現不識別簽名的情況
簡單介紹下:
在Android studio的選單欄File下選擇Project Structure的Signing
如圖:
然後在Build Types中選擇release
如圖:
第二步登入Tinker Platform平臺,註冊賬號進入之後,點選新增app,名字可以隨便起如下:
記住appKey,之後點選新增APP版本,版本號不能亂填,這個也要記住,我填的是1.0
如圖:
第三步根據在平臺上獲取到的資訊修改tinkerpatch.gradle裡的配置
如圖:
第四步生成release包(也就是基包)
在Android Studio右上角點選Gradle,然後雙擊assembleRelese
如圖:
按照如下路徑找到apk,複製並安裝到測試工具上
如圖:
可以觀察到如圖現象
第五步建立補丁包
按照apk的路徑修改tinkerpatch.gradle裡的配置
如圖:
然後修改app的程式碼
這裡把Toast改了
Toast.makeText(this,"這是補丁",Toast.LENGTH_LONG).show();
最後生成補丁包
雙擊如下圖的tinkerPatchRelese
沒看見tinker重新整理一下
按下圖路徑找到patch_signed_7zip.apk
第六步釋出補丁,最後到平臺釋出就可以了,點選提交就好了。
如圖:
第七步看效果,這裡使用Button強制更新,記住一定要開啟關閉再開啟app才能看到效果。
如圖:
2.3 注意事項
1.Tinker的更新是隻能針對同一個版本的app更新,時間越久更新包越大,它不能更新app版本。
2.更新的成功率不是100%,有一定的失敗率可以通過後臺檢視
如圖: