点击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文件。
简单说就是优化后的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文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)