国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Tinker 熱修復框架 簡單上手教程

2019-11-09 15:00:51
字體:
來源:轉載
供稿:網友

導言

前不久,騰訊推出了”微信小程序”這一概念,對移動原生應用的影響可謂巨大.而幾乎就在同時,騰訊在GitHub上開源了第一個項目Tinker,這是一個Android平臺的應用熱修復框架.可以在不重新安裝應用的情況下,對應用的代碼/庫/資源進行更新.相關信息官方也已經給出詳細介紹.得到這個消息時,筆者也嘗試學習它給的Sample,希望能夠使用到自己的項目中去.畢竟熱修補是如今原生應用的一大痛點,有了熱修補技術,類React Native應用的優勢將縮小.這是一篇Tinker簡單上手的說明文字,演示如何運行官方的Sample,僅作互相學習交流

導入Sample工程

將官方給出的Sample工程在AndroidStudio中打開.首先一點,在app的build.gradle文件中找到tinkerId = getTinkerIdValue()并將其替換成tinkerId = "tinkerId",其中后面的值可以隨意設置.再替換ignoreWarning = falseignoreWarning = true.(見圖1)圖1

編譯運行原版apk

按照往常操作一樣,編譯打包debug apk并安裝.此時Tinker會在工程的app/build/bakApk/目錄下保存打包好的apk文件,找到剛才生成的apk文件,復制其完整文件名,在app的build.gradle文件找到tinkerOldApkPath這一項設置,并將其設置為tinkerOldApkPath = "${bakPath}/<剛才生成的apk文件名>"(見圖2)圖2

修改源碼 生成新版apk 補丁

MainActivity.java中,我們稍作改動,例如將R.string.test_resource對應的字符串資源的值修改(見圖3),

12
<!--<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");

圖3你可以自行做出更多的改動(這也是我們需要熱修復的原因),然后再Gradle腳本中找到’app:/tinker/tinkerPatchDebug’這條命令(見圖4),雙擊運行,它將生成debug版的patch(補丁)apk文件.

圖4

運行完畢后,Tinker會告訴你生成的補丁apk文件所在位置.(見圖5,6)圖5圖6patch_signed_7zip.apk這個文件拷貝到Android設備的ExternalStorageDirectory()路徑下.文件的路徑可以隨意設定,只需在MainActivity中指明補丁Apk路徑即可.(見圖7)圖7

安裝熱修復補丁 觀察程序變化

點擊APP主界面中的LOAD PATCH加載補丁,提示成功后,點擊KILL SELF結束當前進程,重新啟動后,即可發現變化.可以看到,經過上述修改,原有Apk的應用啟動后在Log中打印為(見圖8):圖8

而應用補丁后,打印結果為(見圖9):圖9

而這一切就是應用了熱修復的結果.

萬事開頭難,有了如此強大的框架,相信廣大開發者開發的原生應用將更加強大.

轉自:http://www.trojx.me/2016/09/28/tinker-sample-introduction/


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 重庆市| 基隆市| 疏勒县| 扎赉特旗| 醴陵市| 循化| 永清县| 宣威市| 本溪| 望奎县| 泗水县| 金秀| 缙云县| 常德市| 宜昌市| 佳木斯市| 大兴区| 都江堰市| 南乐县| 房山区| 文成县| 南涧| 昌乐县| 靖边县| 辽阳县| 雷州市| 景谷| 普安县| 乌鲁木齐县| 景泰县| 阜新| 澄迈县| 漳平市| 长岭县| 综艺| 东安县| 花莲市| 建昌县| 双辽市| 方正县| 德兴市|