java,class,dex轉換過程

java文件:txt文本保存後,修改爲.java文件即可

class文件:.java文件經java編譯器編譯後生成對應的.java文件

                   生成方法1.在eclipse中選中某一個類,然後導出爲jar文件。將得到的jar文件修改爲.zip文件然後解壓,即可看到想要的.class文件

                   生成方法2.使用cmd命令行命令編譯java文件“javac  絕對路徑\xx.java”

            我們可以使用javap命令來查看Hello.class文件對應的java字節碼,命令行輸入“javap -c 絕對路徑\Hello.class”


將class文件轉換爲dex文件

      實現class文件轉換成dex文件的方法很多,這裏只闡述一種,用命令行實現。

      這裏需要特別提示一點:這裏使用sdk提供dx.jar來實現class文件轉換成dex文件,這個時候我們要注意一點,我們操作的class文件對應的java compiler版本(這個版本就是你編譯java文件的時候的編譯器版本)要跟我們android的compiler版本保持一致,不然會報錯(這裏最好是使用android工程下的class文件最爲保險)

也可以通過這個方法解決版本問題:命令:javac -source 1.6 -target 1.6 絕對路徑\xx.java

      dx.jar在sdk\build-tools文件夾下的各個版本里邊都有,需要注意的是,如果想要使用dx,命令行的當前路徑應該到版本路徑下,如:sdk\build-tools\24.0.3下邊

      命令:dx --dex --output=絕對路徑\xx.jar 絕對路徑\xxx.jar     備註:這裏是將class文件和生成的dex文件都放到了jar文件當中

      如:我們最終想要得到的dex文件就在Hello_dex.jar裏邊

        修改Hello_dex.jar後綴爲Hello_dex.zip,解壓得到classes.dex文件

我們可以使用sdk提供的dexdump.exe工具查看dex文件的字節碼,這個工具在sdk目錄下的build-tools文件夾下的相應版本里邊都有,使用命令式請定位當前目錄到某個版本文件夾下(build-tools文件夾下的版本隨便選一個)

命令:dexdump -d 絕對路徑\xx.dex



dex文件轉換成class文件

      將上邊得到的classes.dex文件轉換成class文件,這裏用到dex2jar工具(可以百度一下,然後下載)

     將classes.dex文件拖動到dex2jar文件夾中的dex2jar.bat文件上,在classes.dex所在的文件夾下就會生成classes.jar文件,裏邊就是對應的class文件了

如:


   使用jd-gui打開classes.jar

  

      

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章