1. 程式人生 > >最新微信Tinker 熱修復平臺接入教程(超詳細)

最新微信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

=1.2.6

如下:

否則會出現錯誤:

原因:

沒有指定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%,有一定的失敗率可以通過後臺檢視

如圖: