Tinker 熱修復框架 簡單上手教程
導言
前不久,騰訊推出了”微信小程式”這一概念,對移動原生應用的影響可謂巨大.而幾乎就在同時,
騰訊在GitHub上開源了第一個專案Tinker,
這是一個Android平臺的應用熱修復框架.可以在不重新安裝應用的情況下,對應用的程式碼/庫
/資源進行更新.相關資訊官方也已經給出詳細介紹.
得到這個訊息時,筆者也嘗試學習它給的Sample,希望能夠使用到自己的專案中去.畢竟熱修補是
如今原生應用的一大痛點,有了熱修補技術,類React Native應用的優勢將縮小.
這是一篇Tinker簡單上手的說明文字,演示如何執行官方的Sample,僅作互相學習交流
匯入Sample工程
將官方給出的Sample工程
在AndroidStudio中開啟.首先一點,在app的build.gradle檔案中找到tinkerId = getTinkerIdValue()
並將其替換成tinkerId = "tinkerId"
,其中後面的值可以隨意設定.再替換ignoreWarning
= false
為ignoreWarning = true
.(見圖1)
編譯執行原版apk
按照往常操作一樣,編譯打包debug apk並安裝.此時Tinker會在工程的app/build/bakApk/
目錄下
儲存打包好的apk檔案,找到剛才生成的apk檔案,複製其完整檔名,在app的build.gradle檔案找到tinkerOldApkPath
這一項設定,並將其設定為tinkerOldApkPath
= "${bakPath}/<剛才生成的apk檔名>"
(見圖2)
修改原始碼 生成新版apk 補丁
在MainActivity.java
中,我們稍作改動,例如將R.string.test_resource
對應的字串資源的值修改(見圖3),
1 2
|
<!--<string name="test_resource">I am in the base apk</string>-->//原值 <string name="test_resource">I am in the patch apk</string>//新值
|
還可以在MainActivity
中新增一行程式碼(見圖3)
1
|
Log.e(TAG, "i am on patch onCreate");
|
你可以自行做出更多的改動(這也是我們需要熱修復的原因),然後再Gradle指令碼中找到’app:/tinker/tinkerPatchDebug’這條命令(見圖4),
雙擊執行,它將生成debug版的patch(補丁)apk檔案.
執行完畢後,Tinker會告訴你生成的補丁apk檔案所在位置.(見圖5,6)
將patch_signed_7zip.apk
這個檔案拷貝到Android裝置的ExternalStorageDirectory()
路徑下.
檔案的路徑可以隨意設定,只需在MainActivity
中指明補丁Apk路徑即可.(見圖7)
安裝熱修復補丁 觀察程式變化
點選APP主介面中的LOAD PATCH
載入補丁,提示成功後,點選KILL
SELF
結束當前程式,
重新啟動後,即可發現變化.可以看到,經過上述修改,原有Apk的應用啟動後在Log中列印為(見圖8):
而這一切就是應用了熱修復的結果.
萬事開頭難,有了如此強大的框架,相信廣大開發者開發的原生應用將更加強大.
轉自:http://www.trojx.me/2016/09/28/tinker-sample-introduction/
相關文章
- 簡單易懂的tinker熱修復原理分析
- Tinker熱修復整合總結
- 你期待已久的熱修復—Tinker熱修復整合總結
- tinker熱修復——補丁載入合成
- Android 熱修復 Tinker Gradle Plugin 解析AndroidGradlePlugin
- 自建服務端實現Tinker熱修復服務端
- Android熱修復之Tinker整合最新詳解Android
- tinker熱修復——dex補丁載入過程
- Android tinker熱修復——實戰接入專案Android
- Android 熱修復 Tinker 接入及原始碼淺析Android原始碼
- Android 熱修復 Tinker 原始碼分析之DexDiff / DexPatchAndroid原始碼
- Android 熱修復 Tinker接入及原始碼淺析Android原始碼
- tinker熱修復——資源補丁載入過程
- Android tinker熱修復——從執行demo開始Android
- Android熱修復簡單總結Android
- Android進階之Walle多渠道打包&Tinker熱修復Android
- Android 熱修復 - Tinker 實現及踩過的坑Android
- Android 熱修復其實很簡單Android
- Android熱修復原理(一)熱修復框架對比和程式碼修復Android框架
- 【Android 熱修復】美團Robust熱修復框架原理解析Android框架
- 熱修復框架原始碼剖析(上)框架原始碼
- 阿里熱修復AndFix的使用教程阿里
- 手動實現最簡單的Android熱修復(最新最全詳細小白教程)Android
- 微信 Tinker 負責人張紹文關於 Android 熱修復直播分享記錄Android
- 熱修復初探
- Andfix熱修復框架原理及原始碼解析-上篇框架原始碼
- Andfix熱修復框架原理及原始碼解析-下篇框架原始碼
- Alibaba-AndFix Bug熱修復框架的使用框架
- 快速上手python的簡單web框架flaskPythonWeb框架Flask
- PHP DIY 系列------框架篇:6. 簡單測試與 bug 修復PHP框架
- MySQL修復表的簡單分析MySql
- Android 熱補丁動態修復框架小結Android框架
- Android 熱修復Android
- MongoDB 簡單上手MongoDB
- 你值得知道的Android 熱修復,以及熱修復原理Android
- Android 熱修復 - 各框架原理學習及對比Android框架
- phpspider簡單快速上手的php爬蟲框架PHPIDE爬蟲框架
- Android熱修復原理Android