1. 程式人生 > >微信熱補丁修復框架--tinker

微信熱補丁修復框架--tinker

將patch_signed_7zip.apk這個檔案拷貝到Android裝置的ExternalStorageDirectory()路徑下(即SD卡目錄下).檔案的路徑和檔名可以隨意設定,只需在MainActivity中指明補丁Apk路徑即可(見圖6),正式使用時,上傳補丁到管理後臺,字尾最好不要apk,以免被運營商挾持

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

點選APP主介面中的LOAD PATCH載入補丁,提示成功後,點選KILL SELF結束當前程序(Tinker必須重啟才能熱修復成功),重新啟動後,即可發現變化.

常見問題:

網路情況不佳時,tinker外掛所依賴的庫或者外掛缺失(如 com.tencent.mm:SevenZip 缺失)

1.1 原因:下載地址是https開頭,導致下載不下來
1.2 解決辦法:找到C盤使用者目錄下.gradle目錄下的cache目錄(形如 C:\Users\hasee.gradle\caches)
刪除該資料夾下所有檔案以及資料夾然後將 根目錄(Project:)build.gradle中把



jcenter()
更改為
jcenter(){ url 'http://jcenter.bintray.com/' }
再重新編譯。(相當於再次重新下載依賴)

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. BSDiff$1.class

解決辦法: clean project

Error:(9, 0) Your project path contains non-ASCII characters編譯失敗

原因:工程目錄處於中文路徑下
解決辦法:不處於中文路徑下就好了

載入補丁時補丁載入失敗

補丁載入失敗的原因很多,具體原因可以在logcat中檢視,但是需要確保logcat的設定如下,否則tinker合成補丁日誌輸出獲取不到



常見載入失敗有簽名校驗的問題



解決辦法:注意不要搞混 tinkerPatchDebug gradle任務 和 tinkerPatchReleas gradle任務 對應生成的
patch_signed_7zip,debug簽名就用 tinkerPatchDebug gradle任務 生成的 patch_signed_7zip

相關推薦

補丁修復框架--tinker

將patch_signed_7zip.apk這個檔案拷貝到Android裝置的ExternalStorageDirectory()路徑下(即SD卡目錄下).檔案的路徑和檔名可以隨意設定,只需在MainActivity中指明補丁Apk路徑即可(見圖6),正式使用時,上傳補丁到管理後臺,字尾最好不要apk,以

騰訊修復框架tinker

Tinker分析:   什麼是tinker? Tinker是騰訊出的一款熱修復框架,可以修復程式碼,資原始檔,so庫,但不能新增四大元件。 熱修復與增量更新的本質區別:增量更新是根據new.apk和old.apk按照bsdiff演算法,生成一個patch,然後將patch通過服務端

Alibaba-Dexposed框架線上補丁修復的使用

DexPosed是Alibaba的另一個框架,都可以線上熱修復bug,只不過DexPosed也可以實現其他的功能。 DexPosed 介紹 DexPosed是強大而無侵入的AOP(面向切面程式設計)執行Android應用程式開發框架,基於

android 修復框架Tinker的詳細簡單使用

Tinker 騰訊開源熱修復框架,https://github.com/Tencent/tinker 已知的的問題 Tinker不支援修改AndroidManifest.xml,Tinker不支援新增四大元件(1.9.0支援新增非export的Activ

修復框架Tinker最完整講解(02)——加入Walle多渠道打包

前言 上一篇文章 熱修復框架Tinker最完整講解(01)——整合之路 已經介紹我們的專案渠道包有20個,並且我們多渠道打包是採用productFlavors實現的。但是這種多渠道打包會造成20個渠道包的熱更新就需要20個補丁,這樣肯定是不合理的。那怎

修復框架Tinker最完整講解(03)——使用Tinker常見問題

前言 存放補丁包的平臺選取 1,存放在自己公司的伺服器 2,使用TinkerPatch平臺,需要收費 3,騰訊Bugly平臺,免費 為了安全與經濟考慮,我們公司選取了第一種。大家可以根據自己的需要選擇。 tinkerId應該如何選

修復框架Tinker最完整講解(01)——整合之路

前言 上個月我們的產品又更新了一個版本,當一個測試把產品上傳了十幾個應用市場的時候,另外一個測試突然測出一個重要bug。專案經理就說把全部渠道上傳的先退回來,重新改好bug再發布。這時候我們就苦逼了,又要走一遍 簽名打包->加固->簽名-&

Android探索之旅(第二十五篇)騰訊修復框架Tinker與阿里第三代修復框架Sophix對比

本人在開發專案中仍然使用的還是Tinker熱修復框架,在專案中遇到Bug,Tinker都能夠解決,可以說是萬無一失,但是在網際網路時代也必須懷揣著新生的事物必將取代先前的事物的心態,因此就索性集成了Sophix,下面由我來分析一下它們之間的區別 從上

小程序開發框架 Wepy 的使用

pan enc 調試 獲得 我們 web開發 本地 配置 開發 一、github地址:https://github.com/Tencent/wepy 按照 README.md 的步驟進行操作: 1.在“介紹”中獲得 wepy 的開發資源匯總:https://github.c

小程式開發框架——WXSS(一)

    WXSS語言決定了小程式頁面的各個元素在視覺上的展示,WXSS與CSS即為相試的、為了適合微信小程式開發WXSS對CSS進行相應的修改。     width:用來設定元素'寬度' / height:用來設定元素'高度 '/

小程式 wepy框架關於攔截器的應用例項

需求 因為安全的需要,很多時候我們訪問介面的時候需要進行驗籤,而用於驗籤的資訊是需要存入請求頭的 業務邏輯如下: 登入並獲取使用者資訊 將使用者資訊存入全域性變數中 其他業務訪問介面 攔截請求,並將需要的驗籤資訊存入到請求頭裡面 放行

小程式開發框架——元件

    元件的概念,如圖:     小程式給我們提供的元件,如圖  八類元件:1.檢視容器元件主要控制頁面內容、檢視容器可以理解為一個盒子在這個盒子裡面可以裝入更小的盒子填滿,這裡提供有5種: &nb

小程式wepy框架中父元件與子元件通訊和互動

官網上描述: $broadcast $broadcast事件是由父元件發起,所有子元件都會收到此廣播事件,除非事件被手動取消。事件廣播的順序為廣度優先搜尋順序。 $emit $emit與$broadcast正好相反,事件發起元件的所有祖先元件會依次接收到$emit事件。 $in

小程式開發框架—wepy快速入門

 小程式框架wepy文件 Github地址 wepy官網:https://tencent.github.io/wepy/index.html 專案建立與使用 安裝wepy 以下安裝都通過npm安裝 安裝 wepy 命令列工具。

小程式的框架

什麼是小程式:小程式是一種不需要下載即可使用的應用,它實現了「觸手可及」的夢想,使用者掃一掃或者搜一下即可開啟應用,也體現了「用完即走」的理念,使用者不用關心是否安裝太多應用的問題,應用將無處不在,隨時可用,但又無需安裝。 相比於手機應用,小程式又有什麼特性呢? 1:無需安裝; 2

小程式開發框架搭建

使用開發工具的正確姿勢 微信提供的開發工具的編輯功能不是一般的水,寫程式碼肯定不能用它,否則就是浪費生命.不說別的,連自動儲存都沒有,第一次寫時寫了一個多小時,後面下班直接關掉,也不彈出提示說沒儲存.然後第二天過來,寫的程式碼全沒了!!! 頓時感到巨坑無比.這

開發準備(三)--框架以及工具的基本使用

轉自:http://www.cuiyongzhi.com/post/35.html 在前面兩篇中我們從基本的專案建立到框架搭建,將專案已經搭建成功,並將基本的配置項也都已經配置完成,那麼這裡我們就進入到對框架的熟悉和一個工具generator的使用! (一)專案部分配置檔案的初始化 我們在前面框架中層在

web開發ui框架製作網頁例項教程

例項一、Button 按鈕可以使用a或者button標籤。wap上要觸發按鈕的active態,必須觸發ontouchstart事件,可以在body上加上ontouchstart=”“全域性觸發。 按鈕常見的操作場景:確定、取消、警示,分別對應class:

小程式前端框架/UI元件

前言    剛開始寫bolg,嘗試記錄一些日常。    無意找了個很好看的小程式UI元件庫:ColorUI github。    之前做的小程式小工具都是使用原生的自己編碼的,難免會有東拼西湊的地方,正好這段時間有空,準備花點時間找一個較好的小程式元件庫或者框架,來提示開發效

小程式設計weui框架

第一步:需要把下載的內容copy到專案中,主要是dist目錄下的style目錄下的weui.wxss檔案。 第二步:在全域性的app.wxss檔案中引用 , 注意目錄是相對路徑 @import "style/weui.wxss";   第三步:加class