dex文件详解
文件 详解 Dex
2023-06-13 09:12:33 时间
大家好,又见面了,我是你们的朋友全栈君。
1、基本概念
能被DVM虚拟机识别,加载并执行的文件格式
2、生成dex文件
1、通过IDE自动帮我们build 生成 2、手动通过dx命令去生成dex文件 3、在手机上手动运行dex文件
3、使用dx命令来生成dex文件
首先得要先配置dx环境变量,这个环境变量怎么配呢?找到的sdk的安装目录,然后进入build-tools目录,这里是你电脑上的所有sdk的安装目录,随便选择一个进去,就可以知道dx.bat,然后将他配置到环境变量中去,就可以使用dx命令了。
先生成java字节码文件
![这里写图片描述](https://img-blog.csdn.net/20170717222550583?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHFfc3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
然后生成dex文件
![这里写图片描述](https://img-blog.csdn.net/20170717222812708?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHFfc3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
使用adb命令,将文件放到手机上去
![这里写图片描述](https://img-blog.csdn.net/20170717222941672?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHFfc3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
执行dex文件,首先得通过adb命令来登陆到手机中,进入手机的控制台,最后通过dalvikvm来执行dex文件
![这里写图片描述](https://img-blog.csdn.net/20170717223459876?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHFfc3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
4、dex文件的作用
记录整个工程中所有类文件的信息,而class文件是一个的类的所有信息
5、dex文件的结构
1、一种8位字节的二进制流文件
2、各个数据按顺序紧密的排列,无间隙
3、整个应用中所有的java源文件都放在一个dex中(不考虑android multidex)
![这里写图片描述](https://img-blog.csdn.net/20170717224700268?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHFfc3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
6、dex文件和class文件的异同
1、本质上他们都是一样的,dex是通过class文件演变而来
2、class文件存在许多冗余的信息,dex去冗余,并整合
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/153524.html原文链接:https://javaforall.cn
相关文章
- java下载文件_java下载文件到本地[通俗易懂]
- HTML5 FormData 方法介绍以及实现文件上传
- 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | RawDexFile.cpp 分析 | dvmRawDexFileOpen函数读取 DEX 文件 )
- IOS截取屏幕到文件中详解手机开发
- python删除特定文件详解编程语言
- springMVC上传多个文件带参数详解编程语言
- Java读取文件详解编程语言
- Linux下利用SCP快捷传输文件(linux命令scp)
- JAVA 获取网页源代码保存到本地文件详解编程语言
- Java NIO(6):通道和文件通道详解编程语言
- 搭配SSM框架的5个必备框架环境文件详解编程语言
- spring boot上传文件错误The temporary upload location [/tmp/tomcat.******/work/Tomcat/localhost/ROOT] is not valid详解编程语言
- Linux文件特殊权限(SUID、SGID和SBIT)设置详解
- Linux快速搜索文件的实用方法(linux快速搜索文件)
- Linux 中删除文件的正确姿势(linux删除文件字符)
- MySQL使用命令行快速导入SQL文件(mysql导入sql命令)
- Linux中list,快速操作文件和目录列表(linux中list)
- Linux系统下快速复制所有文件(linux复制所有文件)
- 利用Redis构建高效的转存文件系统(redis设置转存文件)
- 使用HttpHead方法获取文件长度的实现方法详解