android 一步一步教你集成tinker(熱修復)


 

這幾天閑着沒事,就看了下現在比較火的熱修復,確實有了熱修復就解決了android native的一個很尷尬問題,之前比起h5,android在用戶體驗上是有優勢,但是過於復雜的版本更新,使用戶煩不勝煩(這個深有體會啊,之前項目除了個bug就發布個更新,尼瑪還是強制更新,我要是客戶我就日了狗),好了不多說了,我們要發車了准備好上車

這就是tinker的wiki : https://github.com/Tencent/tinker/wiki (有啥不懂的就是里面wikiwiki下)。

這是tinker的demo下載地址:https://github.com/Tencent/tinker 

集成tinker很so easy跟着 老濕的步驟發車(如有翻車請見諒)

1.從git上面下載tinker的官方demo下來,上面的東西我們先不管,就直接從他的tinker-sample-android這個demo 搞起

 

2.將其導入as中,一般直接導入進來是無法運行的,他會報錯,這是個什么錯呢,啥玩意又是tinkerid呢,從上面的wiki里面可以看出這些參數的意思,如果對build.gradle里面那些配置參數不懂的都可以在上面的wiki中尋找到,這個tinkerID我的理解就是加密和解密一樣的匹配關系,驗證基准apk包的時候判斷是不是補丁包的tinkerid一樣

 

3.這個tinkerid 可以用git版本號,也可以用versionname來定義,這個demo里面他用的是他的git 版本號,所以直接拿來我們跑肯定是有問題的,我們需要手動修改下這個(如果你有配git的話可以用git版本好來定義,如果咩有的話就用versionname一樣),如果修改build.gradle里面的 def gitSha()方法 我用的是git的版本號

 
 

4.差不多了我們要開始真正的發車了我們可以先在gradle里面運行assembleDebug生成一個apk文件 我們先將這個apk安裝到手機上面當作發布出去的apk這就是安裝完后的效果圖。

 

 
 
 

5 現在這個項目突然出現問題了,我要對他進行修改給他添加個按鈕怎么搞呢,難道又要發版本,尼瑪太嚇人了一點小東西就要發布版本,客戶還用個蛋蛋,好了用了tinker就不用擔心這個問題了我們來開始整吧。

將我們剛

 

我這里是編譯了很多次,一般你們里面應該只會有一個,.apk的名字和.txt文件的名字復制下來進入build.gradle里面將tinkerOldApkpath和tinkerapplyResourcePath的路徑替換成剛要你復制的,這樣就等於指定了要等會熱更新要替換的包

 
 

這步完成后基本沒啥好改的了,就是一些操作問題了,基本上難不倒各位老司機了,來我們接着發車(有沒有到這一步翻車的司機有的話就評論下我給你推2把)。

6,老apk的事情都搞完了,現在來搞搞我們要修復的apk,現在我要在剛那個界面添加一個按鈕,等會見證奇跡就是見證這個刷出來的更新按鈕。

 

7.界面也改了差不多要看效果了,看效果之前我們還有2個步驟呢慢慢來不急,首先我們要把我們這個新改過的界面gradle里面執行下tinkerpatchdebug

 
 
 

將這個pathc_signed_7zip.apk這個補丁包放入我們內存卡的根目錄中,可以直接將這個apk放入我們的根目錄,也可以執行adb push ./app/build/outputs/tinkerPatch/debug/patch_signed_7zip.apk /storage/sdcard0/命令來將我們的補丁包放入sd卡根目錄。

結束:接下來就是見證奇跡的時候 點擊我們開始安裝的修復之前的app

 

點擊LOAD PATCH加載我們的補丁包(一般情況下,是我們把補丁包給后台哥們,然后讓后台哥們給我們來下載下來使用補丁包的),點擊后如果有吐司彈出patch success, please restart process,那就表示補丁包加載成功了,這個時候你點擊kill self或者關閉屏幕在開啟就可以看見奇跡了。

 





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM