dex文件介绍

分类: 英国365bet娱乐 时间: 2025-09-24 19:13:24 作者: admin 阅读: 961
dex文件介绍

大家好,又见面了,我是你们的朋友全栈君。

文章目录1, 什么是dex文件2, 如何生成一个dex文件3, dex文件的作用4, dex文件格式详解5, 与class对比1, 什么是dex文件能被 dvm识别, 加载并执行的文件格式

2, 如何生成一个dex文件通过ide工具自动build生成手动通过dx命令去生成dex文件

– de命令在sdk文件下build-tools下相应的版本文件夹下

– javac Hello.java 生成class文件

– dx --dx --output Hello.dex Hello.class 生成dex文件手机中手动运行dex文件

– adb push Hello.dex /sdcard push到手机sd卡目录下

– adb shell 进入手机shell

– dalvikvm -cp /sdcard/Hello.dex Hello 执行dex文件3, dex文件的作用记录整个工程中所有类文件的信息

4, dex文件格式详解是一种8位字节的二进制流文件各个数据按顺序紧密的排列, 无间隙整个应用中所有class源文件都放在一个dex文件中dex文件结构图:

dex文件头:

在这里插入图片描述用010editor 查看信息如下:

struct header_item dex_header: 头文件信息, 包含了头文件中的字段struct string_id_list dex_string_ids: 记录整个应用中的字符串struct type_id_list dex_type_ids: 类型索引struct proto_id_list dex_proto_ids: 方法申明索引struct field_id_list dex_field_ids: 字段索引struct method_id_list dex_method_ids: 方法索引, 包含当前类的所有方法, 所引用的方法及父类的所有方法struct class_def_item_list dex_class_defs: dex文件中所有类的申明struct map_list_type dex_map_list: 对头文件的校验5, 与class对比本质上它们是一样的, dex是从class文件演变而来class文件存在许多冗余信息, dex会去除冗余, 并整合

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/153507.html原文链接:https://javaforall.cn

相关文章

Marvell,好大的口气
发动机“可变气门正时”到底是啥技术,可变气门正时是啥技术
三包服务中产品折旧怎么算(三包法退货规定折旧费怎么算出来的)