Android手机的apk文件中的class.dex文件是什么?是做什么用的呢?

Android手机的apk文件中的class.dex文件是什么?是做什么用的呢?,第1张

简单说就是优化后的android版.exe。每个apk安装包里都有。相对于PC上的java虚拟机能运行.class;android上的Davlik虚拟机能运行.dex。

作用

让dalvik能够运行。

dex好处

可以直接用DexClassLoader类加载,动态加载。于是只要在dex上加壳,在程序运行时脱壳,就可以规避静态反编译的风险。

扩展资料

使用dex文件的原因

在Android系统中,锋游一个App的所有代码都在一个Dex文件里面。Dex是一个类似Jar的包,存储了很多Java编译字节码的慎基困归档文件。

因为Android系统使用Dalvik虚拟机,所以需要把使用宽念Java Compiler编译之后的class文件转换成Dalvik能够执行的class文件。

注:写这篇文章是为了让那些学习android 热修复的童鞋了解下,当然如果是大牛可以略过。

点击Build -->Rebuild project,点击完成后需要打包成jar 的class文件会在下面所示的目录中显示,指出的就是我们需要打包的class文件,生成的class文件在app/build/intermediates/classes中

先做个例子:这边取个.class文件,例如Test.class,用来生成dex 

.class生成dex 需要用到androidstudio 支持的dx.bat ,我们找到android SDK 目录下的

build-tools文件目录。

打开空嫌cmd 运行 命令:

dx --dex --output  需要生成dex的目录和名称   class文件所在的目录

例如:我需要生成dex文件在C盘的一个文件夹目录下,而class 文件在斗郑手C盘的一个目录中

这时候只要在--dex 后面加上--no-strict 就可以了。

让编译器监测不那么严丛团格。

如下:dx --dex --no-strict --output 

编译通过,成功生成dex文件。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存