class文件转dex文件

class文件转dex文件,第1张

1.使用工具

android sdk目录下的build-tools选择一个版本(如:D:\ProgramFiles\Sdk\build-tools\28.0.2),找到dx.bat文件

2.通过命令行:cmd进入dx.bat工具目录,输入编译命令 :

dx --dex --output=目录1 目录2

注:目录1:最后dex文件生成的路径;目录2:class文件所在的路径(只需要定位到包名的根路径即可)

如上图class所在地址,目录2只需要定位到\classes就可以了(如果单独把class文件拷贝到空目录,记得自己创建它的完整包名路径)。

备注:如只需要将其中的某个class打包成dex文件,目录2需要定位到

具体包名下的class文件(如:\classes\com\enjoy\plugin\xxx.class)

(自我记录下...)

一、找到apk中的class.dex:

把apk文件改名为.zip,然后解压缩其中的class.dex文件,它就是java文件编译再通过dx工具打包成的。

1、把class.dex拷贝到dex2jar.bat所在目录,直接拖动class.dex到dex2jar.bat,生成classes.dex.dex2jar.jar。

或者:1.在cmd下进入dex2jar.bat所在路径,然后输入“dex2jar.bat XXX”,XXX指的是你要反编译的apk中的classes.dex文件所在路径及名称,比如:我的dex2jar.bat在D:\Android\apk_decode\dex2jar-0.0.7-SNAPSHOT路径下, classes.dex在D:\Android下,所以: 你进入dex2jar.bat路径下后,输入dex2jar.bat D:\Android\classes.dex,这样会生成一个jar文件。

2.用rar解压出jar文件中的class文件,然后用jad或DJ Java Decompiler反编译工具将.class文件反编译成.java文件

3、运行JD-GUI工具,打开上面的jar文件,在File下有个Save JAR Source,它可以生成src源代码。

Java 文件 ----- - 应用程序源文件

android 本身相当一部分都是用 java 编写而成 ( 基本上架构图里头蓝色的部份都是用

Java 开发的 ) , android 的应用必须使用 java 来开发。

Class 文件 ------Java 编译后的目标文件

不像 J2se , java 编译成 class 就可以直接运行, android 平台上 class 文件不能直接

在 android 上运行。由于 Google 使用了自己的 Dalvik 来运行应用,所以这里的 class 也

肯定不能在 AndroidDalvik 的 java 环境中运行, android 的 class 文件实际上只是编译

过程中的中间目标文件,需要链接成 dex 文件后才能在 dalvik 上运行。

Dex 文件-----Android 平台上的可执行文件

Android 虚拟机 Dalvik 支持的字节码文件格式 Google 在新发布的 Android 平台上使用

了自己的 Dalvik 虚拟机来定义,这种虚拟机执行的并非Java 字节码,而是另一种字节码:

dex 格式的字节码。在编译 Java 代码之 后 ,通过 Android 平台上的工具可以将 Java 字

节码转换成 Dex 字节码。虽然 Google 称 Dalvik 是为了移动设备定做的,但是业界很多人

认为这是为了规避向 sun 申请 Javalicense 。这个 DalvikVM 针对手机程式 /CPU 做过 最

佳化,可以同时执行许多 VM 而不会占用太多 Resource 。

Apk 文件 -Android 上的安装文件

Apk 是 Android 安装包的扩展名,一个 Android 安装包包含了与某个 Android 应用程序相

关的所有文件。 apk 文件将 AndroidManifest.xml 文件、应用程序代码 (.dex 文件 ) 、

资源文件和其他文件打成一个压缩包。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12041953.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存