dex文件介绍

dex文件介绍搭建环境Ubuntu18.04.1LTSandroid-ndk-r17-beta2FFmpeg4.0.2编译FFmpeg修改configure配置编译脚本报错调整错误1:错误2:错误3:错误4:错误5:搭建环境Ubuntu18.04.1LTS需要安装yasm:sudoapt-getinstallyasmand…

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

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文件介绍
dex文件头:
dex文件介绍
在这里插入图片描述用010editor 查看信息如下:
dex结构图

  • 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会去除冗余, 并整合
    dex文件介绍
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 倒立摆仿真_基于matlab单摆运动仿真模拟

    倒立摆仿真_基于matlab单摆运动仿真模拟本博文主要学习目的为倒立摆PID控制入门,面向matlab小白,所以挑选最简单的模型和例子写了一篇文章模型已经上传到网上,附上文件链接https://github.com/Yanchuan913/-/blob/main/Inverted_Pendulum_P.slx效果展示倒立摆PID控制matlabsimulink仿真,最简单版本效果展示,内模型的框图总框架包括物理模型部分、控制器部分、环境部分(环境部分都是这么设置的,就不多说)物理模型首先来看物理.

    2022年8月18日
    17
  • 截图bat文件_dos批处理

    截图bat文件_dos批处理******批处理bat命令快速截图********set”p=E:\Test\”::设置截图保存的路径,注意结尾要有\sett=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%::设置当前的时间,用于截图的命名adbshell/system/bin/screencap-p/sdc…

    2022年9月23日
    3
  • MDK5 (Keil5)注册机破解[通俗易懂]

    MDK5 (Keil5)注册机破解[通俗易懂]下载个破解注册机网上到处都是!   1、以管理员身份定位打开KeiluVision5软件   2、打开后如下操作        3、显示如下,图中箭头空白说明未破解过            4、运行上面的注册机 将下面的ComputerID复制到打…

    2022年6月11日
    276
  • w ndows无法连接到System,电脑无法连接到System Event Notification Service服务[通俗易懂]

    w ndows无法连接到System,电脑无法连接到System Event Notification Service服务[通俗易懂]很多用户表示,在使用电脑的时候,电脑右下角任务栏提示“未能连接一个Windows服务,Windows无法连接到SystemEventNotificationService服务”,这是怎么回事呢?电脑提示无法连接到SystemEventNotificationService服务该怎么解决呢?下面,就跟随U大侠小编一起来看看电脑提示无法连接到SystemEventNotificatio…

    2022年5月14日
    100
  • com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException异常解决方法

    com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException异常解决方法在使用MySQL驱动进行JDBC时候出现了以下异常Exceptioninthread”main”com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Couldnotcreateconnectiontodatabaseserver. atsun.reflect.NativeConstru…

    2022年6月23日
    43
  • Tensorflow2实现像素归一化与频谱归一化[通俗易懂]

    Tensorflow2实现像素归一化与频谱归一化[通俗易懂]归一化技术的改进是生成对抗网络(GenerativeAdversarialNetworks,GAN)中众多改进的一种,本文介绍常用于当前GAN中的像素归一化(Pixelnormalization,或称为像素规范化)和频谱归一化(Spectralnormalization,或称频谱规范化),在高清图片生成中,这两种归一化技术得到了广泛使用,最后使用Tensorflow2实现像素归一化和频谱归一化。

    2022年8月31日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号