Tinker最簡單的集成

Tinker目前是熱修復(fù)最火熱的方案!關(guān)于Tinker的各種背景信息和介紹,請(qǐng)參考官網(wǎng)文檔:
Tinker官網(wǎng)介紹

1 接入

首先,在project下的build.gradle下添加tinker插件,如圖:

圖片.png

其次,在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,便于后面做簽名配置,代碼如下:

Tinker SDK.png

圖片.png
tinkerpatch.gradle你可以直接點(diǎn)擊下載后copy到你的項(xiàng)目中,然后按照注釋更改信息就好.

其次,在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的簽名配置:

圖片.png

3 application配置,初始化tinker

tinker的官方文檔中,說了關(guān)于application的集成,什么自動(dòng)不自動(dòng),說實(shí)在的,搞的我非常的懵逼!!!一般來說,tinker的集成都是后期,此時(shí)我們早已經(jīng)有了自定義的application,所以,我們按自定義的方式來就好!

圖片.png
FetchPatchHandler是每隔一段時(shí)間就去訪問平臺(tái),看看是否有新的補(bǔ)丁發(fā)布,代碼為,可點(diǎn)擊此處下載
圖片.png

4 測試

補(bǔ)丁發(fā)布我們就用TinkerPatch平臺(tái),內(nèi)含發(fā)布教程,將你創(chuàng)建的appKey配置到tinkerpatch.gradle中.

圖片.png

1在app啟動(dòng)后,MainActivity中打印一句話:


圖片.png

簽名打包安裝,運(yùn)行后如圖:

圖片.png

你會(huì)驚奇的發(fā)現(xiàn)app中build目錄下,多了個(gè)bakApk文件包,

圖片.png

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ǔ)包對(duì)比改了什么.廢話說了這么多,一句話總結(jié):如果你正式版發(fā)布的這個(gè),你就需要備份!!!!備份!!!備份!!!,打補(bǔ)丁的時(shí)候再cp進(jìn)去.

好了,現(xiàn)在我們改變toast的內(nèi)容,

圖片.png

然后點(diǎn)擊AS編輯器右上角的gradle,雙擊tinkerPatchRelease:

圖片.png

如果簽名信息不成功,會(huì)報(bào)如下錯(cuò)誤:


圖片.png

如果基礎(chǔ)包配置信息錯(cuò)誤,也會(huì)報(bào)錯(cuò):

圖片.png

如果什么錯(cuò)都沒有,則會(huì)如圖生成一個(gè)補(bǔ)丁包:

圖片.png
,這個(gè)就是發(fā)布到平臺(tái)的補(bǔ)丁包.點(diǎn)擊發(fā)布,內(nèi)含發(fā)布教程,
發(fā)布成功后,多次啟動(dòng)app后會(huì)發(fā)現(xiàn)toast的內(nèi)容已經(jīng)改變:

圖片.png

TinkerPatch后臺(tái)的信息也顯示,下載成功且更新成功


圖片.png

好了,至此集成完成,項(xiàng)目源碼!
如果喜歡,請(qǐng)給個(gè)贊,謝謝!

更多問題加群:584275290

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,007評(píng)論 25 709
  • Tinker使用 前言 寫在前面的話,在上家公司一直在主導(dǎo)組件框架的開發(fā),所以對(duì)Android領(lǐng)域組件化,熱更新的...
    徐正峰閱讀 2,066評(píng)論 6 6
  • 前言 熱更新能力是Bugly為解決開發(fā)者緊急修復(fù)線上bug,而無需重新發(fā)版讓用戶無感知就能把問題修復(fù)的一項(xiàng)能力。B...
    Smile__EveryDay閱讀 25,127評(píng)論 31 19
  • Tinker介紹 Tinker是微信團(tuán)隊(duì)開源的Android熱修復(fù)工具,支持dex, library和resour...
    HolenZhou閱讀 4,352評(píng)論 4 15
  • 很倉促的參加了一次“四點(diǎn)半課堂”志愿活動(dòng)。作為一個(gè)初出茅廬的書法學(xué)習(xí)者,我的內(nèi)心是忐忑的。我在想,等到作品展出...
    迪公子閱讀 270評(píng)論 0 0

友情鏈接更多精彩內(nèi)容