Ⅰ 什麼是dex文件
dex文件是Android系統的可執行文件,包含應用程序的全部操作指令以及運行時數據。
由於dalvik是一種針對嵌入式設備而特殊設計的java虛擬機,所以dex文件與標準的class文件在結構設計上有著本質的區別。
當java程序編譯成class後,還需要使用dex工具將所有的class文件整合到一個dex文件,目的是其中各個類能夠共享數據,在一定程度上降低了冗餘,同時也是文件結構更加經湊,dex文件是傳統jar文件大小的50%左右。
dex將原來class每個文件都有的共有信息合成一體,這樣減少了class的冗餘。
從宏觀上來說dex的文件結果很簡單,實際上是由多個不同結構的數據體以首尾相接的方式拼接而成。
(1)dexjar編譯出來文件小擴展閱讀:
Android的系統架構和其操作系統一樣,採用了分層的架構。
從架構圖看,Android分為四個層,從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和Linux內核層。
dex文件的作用:
dex文件的作用是記錄整個工程(通常是一個Android工程)的所有類文件的信息。
dex文件的結構:
8位位元組的二進制流文件;各個數據緊密排列,無間隙,減少了文件體積,加快載入速度;整個工程的類信息都存放在一個dex文件中(不考慮dex分包的情況下);同樣地,可以通過010Editor來查看dex文件信息。
參考資料:網路-Android
Ⅱ dex轉jar內存不足
dex轉祥知jar內存不足的原因是文件太大謹和消。根據查詢相關資料顯示,dex轉jar時文件太大會文件溢出,導致出現內存不足的現象。其解決辦法是修改d2jinvoke.bat,多給點內存。使用dex-tools-2.1-SNAPSHOT版本,之前的版本不支持多dex。dex是電子交換器,數字交叉連接設棚棗備,就是常說的電子交換器。
Ⅲ dex2jar編譯問題
你前面生鋒陵成jar的時候就失敗了 dex2jar.bat classes.dex 這一步沒有成功。你要看列印的信息的可能兄基隱是你的dex版羨廳本比較低。
Ⅳ 如何利用dex2jar反編譯APK
1、下載dex2jar和JD-GUI
2、找到我核頃們准備測試用的apk,並將 後綴.apk改為.zip
3、將test.zip解壓,並查看目錄,找到classes.dex
4、並將這個文件拷至dex2jar工具存放目錄下桐嫌
5、打開控制台,使用cd指令進入到dex2jar工具存放的目錄下改輪陸,如圖
6、進入到dex2jar目錄下後,輸入「dex2jar.bat classes.dex」指令運行 執行完畢,查看dex2jar目錄,會發現生成了classes.dex.dex2jar.jar文件
7、上一步中生成的classes.dex.dex2jar.jar文件,可以通過JD-GUI工具直接打開查看jar文件中的代碼
Ⅳ 如何利用dex2jar反編譯APK
1
下載dex2jar和JD-GUI,
2
找到我們准備測試用的apk,並將 後綴.apk改為.zip
3
將test.zip解壓,並查看目錄,找到classes.dex
4
並將這個文件拷至dex2jar工具存放目錄下
5
打開控制台,使用cd指令進入到dex2jar工具存放的目錄下,如圖
6
進入到dex2jar目錄下後,輸入「dex2jar.bat classes.dex」指令運行
執行完畢,查看dex2jar目錄,會發現生成了classes.dex.dex2jar.jar文件
7
上一步中生成的classes.dex.dex2jar.jar文件,可以通過JD-GUI工具直接打開查看jar文件中的代碼
Ⅵ 如何利用dex2jar反編譯APK
本篇講述如何利用dex2jar反編譯APK,筆者親試可用,希望對大家有幫助
工具/原料
電腦
dex2jar
JD-GUI
方法/步驟
下載dex2jar和JD-GUI,在參考資料中添加了這兩個工具的網路網盤下載地址供讀者下載使用(筆者親測)
找到我們准備測試用的apk,並將 後綴.apk改為.zip
將test.zip解壓,並查看目錄,找到classes.dex
並將這個文件拷至dex2jar工具存放目錄下
打開控制台,使用cd指令進入到dex2jar工具存放的目錄下
進入到dex2jar目錄下後,輸入「dex2jar.bat classes.dex」指令運行
執行完畢,查看dex2jar目錄,會發現生成了classes.dex.dex2jar.jar文件
上一步中生成的classes.dex.dex2jar.jar文件,可以通過JD-GUI工具直接打開查看jar文件中的代碼
Ⅶ 我把APK提出dex文件.dex文件編程JAR文件 Jar文件反編譯成文件夾,文件夾里的class文件編程Java怎麼變回去
這個應該是變不回模晌去了吧,反編譯旦困鋒.class之後得到的.java文件有很多錯誤,只能用來看看大概的程序代碼。可以將.dex反編譯成.smali(用apktool)然後根據.java的源碼來修改.smali文件尺派,最後用apktool反編譯.smali成.dex。