Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 【原】tinker dex文件格式的dump工具tinker-dex-dump,dextinker-dex-dump

【原】tinker dex文件格式的dump工具tinker-dex-dump,dextinker-dex-dump

編輯:關於android開發

【原】tinker dex文件格式的dump工具tinker-dex-dump,dextinker-dex-dump


序言

Tinker是微信推出的熱更新開源項目,同其它熱更新方案相比具有補丁包小,支持類,so,資源文件的替換等優點。其中在類替換的方案裡自主研發了DexDiff算法,使得補丁包變的更小。DexDiff算法最終生成的產物雖然也以.dex作為格式後綴,但和實際虛擬機中的dex文件是二種完全不同的格式。  

 

關於tinker-dex-dump

  tinker-dex-dump是針對dexdiff生成的.dex格式文件,查看其內部數據的工具。主要目的是幫助大家對dexdiff生成的dex格式有一個更加直觀的了解。如果使用該工具能讓你更容易了解tinker相關原理,那該工具的目的也就達到了,也算是個人對Tinker的致敬。該工具已上傳到github,github地址為https://github.com/LaurenceYang/tinker-dex-dump

 

tinker-dex-dump的使用方法  

1、首先下載tinker-dex-dump.jar文件

下載地址

2、通過命令行方式執行  

命令格式

 java -jar tinker-dex-dump.jar --dex *.dex [--header] [--section section-name]

--dex           必選項,後接需要dump的dex路徑  

--header      可選項,顯示header區域信息

--section      可選項,顯示section區域信息,後接要顯示的section名字  

--section參數列表,參數的意義同其命名

  • StringData
  • TypeId
  • ProtoId
  • FieldId
  • MethodId
  • ClassDef
  • TypeList
  • AnnotationSetRefList
  • AnnotationSet
  • ClassData
  • Code
  • DebugInfo
  • Annotation
  • StaticValue
  • AnnotationsDirectory

范例一:顯示頭部信息  

java -jar tinker-dex-dump.jar --dex classes.dex --header

顯示頭部信息

 

范例二:顯示StringData區域信息  

java -jar tinker-dex-dump.jar --dex classes.dex --section StringData

顯示section信息

 

范例三:顯示幫助信息  

java -jar tinker-dex-dump.jar --help

顯示幫助信息

 

tinker dex格式參考

tinker dex格式主要包括兩大部分:頭部和各個section區域的操作列表,如下圖:

 tinker dex format

 

更多關於tinker dex格式可以參考Tinker項目的DexPatchGenerator文件

 

更多Tinker源碼解析的文章請參考:

  • Android熱更新開源項目Tinker源碼解析系列之一:Dex熱更新
  • Android熱更新開源項目Tinker源碼解析系列之二:資源熱更新
  • Android熱更新開源項目Tinker源碼解析系類之三:so熱更新
  • Android熱更新開源項目Tinker集成實踐總結

 

轉載請標明本文來源:http://www.cnblogs.com/yyangblog/p/6282118.html
更多內容歡迎star作者的github:https://github.com/LaurenceYang/
如果發現本文有什麼問題和任何建議,也隨時歡迎交流~

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved