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熱修復原理分析
- Android熱修復之Tinker整合最新詳解Android
- Android進階之Walle多渠道打包&Tinker熱修復Android
- Android熱修復簡單總結Android
- Android熱修復原理(一)熱修復框架對比和程式碼修復Android框架
- 【Android 熱修復】美團Robust熱修復框架原理解析Android框架
- 手動實現最簡單的Android熱修復(最新最全詳細小白教程)Android
- 快速上手python的簡單web框架flaskPythonWeb框架Flask
- phpspider簡單快速上手的php爬蟲框架PHPIDE爬蟲框架
- PHP DIY 系列------框架篇:6. 簡單測試與 bug 修復PHP框架
- Android 熱修復Android
- MongoDB 簡單上手MongoDB
- Android熱修復原理Android
- 手把手帶你打造一個 Android 熱修復框架Android框架
- robust 熱修復實踐
- Airtest簡單上手講解AI
- Robust 2.0:支援Android R8的升級版熱修復框架Android框架
- 熱修復和外掛化
- 淺析“熱更新”(熱修復)解決方案
- Flutter Android 端熱修復(熱更新)實踐FlutterAndroid
- 深入探索Android熱修復技術原理讀書筆記 —— 程式碼熱修復技術Android筆記
- 深入探索Android熱修復技術原理讀書筆記 —— 資源熱修復技術Android筆記
- 深入探索Android熱修復技術原理讀書筆記 —— 熱修復技術介紹Android筆記
- FusionServer uMate 簡單上手指南Server
- PixiJS核心概念及簡單上手JS
- Linux常見漏洞修復教程!Linux
- Flutter狀態管理Provider,簡單上手FlutterIDE
- 2018深入解析Android熱修復技術Android
- Flutter 熱門網路請求框架Dio的簡單封裝Flutter框架封裝
- ps照片模糊怎麼修復高清_ps老照片修復變清晰教程
- 分散式 | DBLE docker 部署遇到的簡單問題修復過程分散式Docker
- 框架網站漏洞修復防護方法框架網站
- 熱修復(一)原理與實現詳解
- Android每週一輪子:Nvwa(熱修復)Android
- Android熱修復(Hot Fix)案例全剖析(一)Android
- 簡單易用NLP框架Flair釋出新版本!(附教程)框架AI
- grpc簡單教程RPC
- GoLang快速上手單元測試(思想、框架、實踐)Golang框架
- js熱更新簡單分析JS