Tinker目前是熱修復(fù)最火熱的方案!關(guān)于Tinker的各種背景信息和介紹,請參考官網(wǎng)文檔:
Tinker官網(wǎng)介紹
1 接入
首先,在project下的build.gradle下添加tinker插件,如圖:
其次,在app中的bulid.gradle的dependencies中添加tinker SDK的依賴,如圖:
注意,若使用 annotation 自動(dòng)生成 Application, 需要單獨(dú)引入 Tinker 的 tinker-android-anno 庫佩脊。除此之外蹈胡,我們無需再單獨(dú)引入 tinker 的其他庫呜袁。一般來說,我們都有自定義的application,所以這個(gè)可以不用加.
2配置
首先,我們還需要給tinker本身寫添加配置,這個(gè)配置既可以寫在app下的build.gradle中,也可以自己寫一個(gè)tinkerpatch.gradle,為了項(xiàng)目本身結(jié)構(gòu)清晰化,我們選擇第二種方式,tinkerpatch.gradle的文件位置放在app目錄下,并且項(xiàng)目的簽名文件也放在app,便于后面做簽名配置,代碼如下:
其次,在app的build.gradle中添加apply from: 'tinkerpatch.gradle':
![圖片.png](http://upload-images.jianshu.io/upload_images/927828-401500daeb15047a.png?imageMogr2
/auto-orient/strip%7CimageView2/2/w/1240)
最后,在app的bulid.gradle中添加tinker的簽名配置:
3 application配置,初始化tinker
tinker的官方文檔中,說了關(guān)于application的集成,什么自動(dòng)不自動(dòng),說實(shí)在的,搞的我非常的懵逼!!!一般來說,tinker的集成都是后期,此時(shí)我們早已經(jīng)有了自定義的application,所以,我們按自定義的方式來就好!
4 測試
補(bǔ)丁發(fā)布我們就用TinkerPatch平臺(tái),內(nèi)含發(fā)布教程,將你創(chuàng)建的appKey配置到tinkerpatch.gradle中.
1在app啟動(dòng)后,MainActivity中打印一句話:
簽名打包安裝,運(yùn)行后如圖:
你會(huì)驚奇的發(fā)現(xiàn)app中build目錄下,多了個(gè)bakApk文件包,
app-1.0.0-0706-12-42-45這個(gè)文件夾并非空穴,她的命名有理可推的,其中1.0.0就是tinkerpatch.gradle中,appVersion的值,而0706-12-42-45為7月6日12點(diǎn)42分45秒,按時(shí)間生成的.而目錄下的app-release.apk就是正規(guī)的簽名包了,這個(gè)也是基礎(chǔ)包,可以直接發(fā)布使用.
注意,此處高能預(yù)警:
如果你發(fā)布的這個(gè)版本有bug需要修改,我們就需要這個(gè)基礎(chǔ)包信息,但bulid的內(nèi)容會(huì)根據(jù)編譯隨時(shí)自動(dòng)清空,當(dāng)你在修改這個(gè)bug的時(shí)候,需要在tinkerpatch.gradle中的baseInfo配置這個(gè)基礎(chǔ)包,最后編譯的時(shí)候build下沒有app-1.0.0-0706-12-42-45這個(gè)文件,就會(huì)報(bào)錯(cuò)!!!而且是必須為真,不能隨意替換改個(gè)名字敷衍,因?yàn)橐突A(chǔ)包對比改了什么.廢話說了這么多,一句話總結(jié):如果你正式版發(fā)布的這個(gè),你就需要備份!!!!備份!!!備份!!!,打補(bǔ)丁的時(shí)候再cp進(jìn)去.
好了,現(xiàn)在我們改變toast的內(nèi)容,
然后點(diǎn)擊AS編輯器右上角的gradle,雙擊tinkerPatchRelease:
如果簽名信息不成功,會(huì)報(bào)如下錯(cuò)誤:
如果基礎(chǔ)包配置信息錯(cuò)誤,也會(huì)報(bào)錯(cuò):
如果什么錯(cuò)都沒有,則會(huì)如圖生成一個(gè)補(bǔ)丁包:
發(fā)布成功后,多次啟動(dòng)app后會(huì)發(fā)現(xiàn)toast的內(nèi)容已經(jīng)改變:
TinkerPatch后臺(tái)的信息也顯示,下載成功且更新成功
好了,至此集成完成,項(xiàng)目源碼!
如果喜歡,請給個(gè)贊,謝謝!
更多問題加群:584275290