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

  

      

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