美團熱修復Robust的踩坑之旅-使用篇

  最近須要在項目中使用熱修復框架,在這裏以美團的Robust爲主寫一篇文章總結一下學習的過程。android

  一直認爲要學習一個框架的原理,首先須要讓他跑起來,從效果反推回去,這樣更容易理解。  git

1、美團Robust的使用github

  首先咱們在編寫代碼前須要作以下準備框架

  配置文件讀寫權限,6.0以上須要手動獲取工具

  

   <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

 

  在project的gradle文件中編寫以下代碼學習

  

  在module的gradle文件中編寫以下代碼測試

  

  

  同時咱們將從github上下載的美團Robust的例子中的robuts.xml複製到咱們的項目中gradle

  將下面兩個地方改成咱們的包名,其餘地方不建議在新手測試的時候進行修改。ui

  

  

  同時要記得將App的混淆打開,緣由在後面會提到spa

  

    到目前爲止,咱們能夠開始代碼方面的編寫了

  首先給你們看一下目錄結構

  

  首先咱們看MainActivity的代碼

  

  界面很簡單,一個TextView和兩個Button,圖片在後面

       這裏面重要的就是這個newPatchExecutor,傳入了咱們寫的PatchManpulateImp,和一個回調。

  咱們接下來看PatchManpulateImp這個類。

  這裏咱們能夠將美團的PatchManpulateImp類複製下來,稍微修改一下就能夠了

  

  這裏改成「你的包名」+PatchesInfoImpl便可

  

  RobustActivity裏面的代碼很簡單以下

  

  這裏所有完成後咱們能夠開始生成apk了,這裏要注意要生成帶簽名的apk-release。

  

  這裏要注意的是生成帶簽名的release apk時,要同時勾選v1,v2。否則一會經過adb命令想genymotion安裝App時會報錯。

  生成Apk後咱們經過adb命令將apk安裝到模擬器上,這裏有的同窗可能發現adb沒法使用,須要在系統中設置環境變量,adb工具在androidsdk中自帶,能夠在sdk中去找。

  

  

  接下來是補丁生成的流程

  生成apk後咱們能夠看到Robust給咱們生成了以下文件。新建一個與src同級的文件夾robust,將這兩個文件複製過去,這裏要注意咱們在前面若是沒配置混淆的話,這兩個文件是不會出現的。

  

  

  將咱們前面的gradle文件打開,修改以下

  

  而後修改RobustActivity中的代碼以下

  

  在terminal中調用以下命令

  gradlew clean assembleRelease --stacktrace --no-daemon

  生成補丁包

  這裏會build失敗,不影響,有下列即爲成功,咱們能夠看到這裏已經生成了補丁包

  

  如今咱們把補丁包push到咱們的模擬器中

  這裏面咱們push jar包到咱們在PatchManpulateImp中設置的地址的前一級

 

  如今咱們開始運行程序,先點擊加載jar包,這裏要注意Anroid6.0以上要手動開啓讀取寫入權限。

  

  

  這樣咱們就成功了。如果運行失敗,建議去看一看打印出的異常,具體分析緣由。

2、小結

  在接下來的分析中,將會分析美團Robust的原理。

相關文章
相關標籤/搜索