編輯:關於android開發
微信開源,真是喜出望外,必須要去看看啊,比起nuwa來微信好很多,而且github上也有專門的官方文檔說明,還有很多資料查詢
參考地址:https://github.com/Tencent/tinker/wiki
https://github.com/Tencent/tinker/wiki/Tinker-%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97
想著以前研究的時候還要分包塊什麼一些復雜想法,現在發展到這種程度,真是三天不打就上房揭瓦了,很好比喻互聯網,學習不能斷,可能在不知不覺的時候就已經發展幾個階段了
看對比圖也知道了,微信的方式,和qq空間的方式的區別是不用插樁,無補丁的時候幾乎沒有性能損失,打補丁時需要刪除核心加載類
文檔還是挺詳細的,照著文檔來,基本跑通就沒問題了
首先肯定是下載demo了,然後文檔上介紹了幾種方案,也是推薦gradle生成配置(見下圖),demo裡也是那樣做的,那我們肯定也是走這個方案了
集成的時候demo裡的gradle配置上用的 TINKER_ID 是獲取的git的版本號,這個搞起來麻煩,文檔上有結束,可以換成versionName等,我就換的versionName,這個 TINKER_ID 要注意保持一致,不然會失敗
然後直接運行程序,或者build apk,成功後在你的項目路徑app\build\bakApk裡應該會有apk生成
然後可以修改你的bug了,修改好之後在As的terminal終端使用命令行 gradlew tinkerPatchDebug,可不能直接用你自己的apk改個名字就丟上去了,那樣就over了
然後看到successful,這個時候在你項目的目錄裡就會有生成apk了,app\build\outputs\tinkerPatch\debug\
這個就是你的補丁了,把這個apk放到手機根目錄就行了
點開你的app,點擊load patch,你會看到一個打印出 patch success, please restart process的toast,然後點擊SHOW INFO可以查看到詳細的信息顯示補丁包已經加載成功了,github本身就很多介紹的資料,可以結合別人寫的好的博客看看學習,讓自己更快的掌握
/**
*個人理解
*微信針對QQ空間超級補丁技術的不足提出了一個提供DEX差量包,整體替換DEX的方案。主要的原理是與QQ空間超級補丁技術基本相同,整體替換掉舊的DEX,達到修復的目的
**/
SampleApplication是gradle自動生成的,繼承自 TinkerApplication ,然後設置捕捉代碼異常,onBaseContextAttached就是我們要找的關鍵代碼了
這代碼大致是反射調用TinkerLoader的tryLoad()方法拿到加載補丁結果,加載補丁包,反射調用同步周期,重置安全模式次數,大於等於三次會進入安全模式不再加載,一點點理解
深入研究很是復雜的,正如微信張紹文所說,這真是一條跪著走完的路,而且我們可以不用跪了,先乘個涼
Android 常見對話框,android對話框1、對話框通知(Dialog Notification) 當你的應用需要顯示一個進度條或需要用戶對信息進行確認時,可以使用
Android SharedPreferences存儲,sharedpreferences一 概念 SharedPreferences存儲方式是Android中存儲輕
用戶登錄保存數據實例(慕課筆記 使用SharedPreferences保存用戶名),sharedpreferences學習視頻之後自己操作時的筆記。 0.視頻地址:htt
Access中使用sql查詢在ACCESS中使用SQL查詢語句檢查SQL語法時非常有用。 操作步驟如下: 【查詢設計】 直接關閉彈出的【顯示表】 找到【SQL視圖】: