標籤:這一 storage load path ase 路徑 content 配置 targe
這幾天閑著沒事,就看了下現在比較火的熱修複,確實有了熱修複就解決了android native的一個很尷尬問題,之前比起h5,android在使用者體驗上是有優勢,但是過於複雜的版本更新,使使用者煩不勝煩(這個深有體會啊,之前項目除了個bug就發布個更新,尼瑪還是強制更新,我要是客戶我就日了狗),好了不多說了,我們要發車了準備好上車
這就是tinker的wiki : https://github.com/Tencent/tinker/wiki (有啥不懂的就是裡面wikiwiki下)。
這是tinker的demo:https://github.com/Tencent/tinker
整合tinker很so easy跟著 老濕的步驟發車(如有翻車請見諒)
1.從git上面下載tinker的官方demo下來,上面的東西我們先不管,就直接從他的tinker-sample-android這個demo 搞起
2.將其匯入as中,一般直接匯入進來是無法啟動並執行,他會報錯,這是個什麼錯呢,啥玩意又是tinkerid呢,從上面的wiki裡面可以看出這些參數的意思,如果對build.gradle裡面那些配置參數不懂的都可以在上面的wiki中尋找到,這個tinkerID我的理解就是加密和解密一樣的匹配關係,驗證基準apk包的時候判斷是不是補丁包的tinkerid一樣
3.這個tinkerid 可以用git版本號碼,也可以用versionname來定義,這個demo裡面他用的是他的git 版本號碼,所以直接拿來我們跑肯定是有問題的,我們需要手動修改下這個(如果你有配git的話可以用git版本好來定義,如果咩有的話就用versionname一樣),如果修改build.gradle裡面的 def gitSha()方法 我用的是git的版本號碼
4.差不多了我們要開始真正的發車了我們可以先在gradle裡面運行assembleDebug產生一個apk檔案 我們先將這個apk安裝到手機上面當作發布出去的apk這就是安裝完後的。
5 現在這個項目突然出現問題了,我要對他進行修改給他添加個按鈕怎麼搞呢,難道又要發版本,尼瑪太嚇人了一點小東西就要發布版本,客戶還用個蛋蛋,好了用了tinker就不用擔心這個問題了我們來開始整吧。
將我們剛
我這裡是編譯了很多次,一般你們裡面應該只會有一個,.apk的名字和.txt檔案的名字複製下來進入build.gradle裡面將tinkerOldApkpath和tinkerapplyResourcePath的路徑替換成剛要你複製的,這樣就等於指定了要等會熱更新要替換的包
這步完成後基本沒啥好改的了,就是一些操作問題了,基本上難不倒各位老司機了,來我們接著發車(有沒有到這一步翻車的司機有的話就評論下我給你推2把)。
6,老apk的事情都搞完了,現在來搞搞我們要修複的apk,現在我要在剛那個介面添加一個按鈕,等會見證奇蹟就是見證這個刷出來的更新按鈕。
7.介面也改了差不多要看效果了,看效果之前我們還有2個步驟呢慢慢來不急,首先我們要把我們這個新改過的介面gradle裡面執行下tinkerpatchdebug
將這個pathc_signed_7zip.apk這個補丁包放入我們記憶卡的根目錄中,可以直接將這個apk放入我們的根目錄,也可以執行adb push ./app/build/outputs/tinkerPatch/debug/patch_signed_7zip.apk /storage/sdcard0/命令來將我們的補丁包放入sd卡根目錄。
結束:接下來就是見證奇蹟的時候 點擊我們開始安裝的修複之前的app
點擊LOAD PATCH載入我們的補丁包(一般情況下,是我們把補丁包給後台哥們,然後讓後台哥們給我們來下載下來使用補丁包的),點擊後如果有多士彈出patch success, please restart process,那就表示補丁包載入成功了,這個時候你點擊kill self或者關閉螢幕在開啟就可以看見奇蹟了。
android 一步一步教你整合tinker(熱修複)