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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • kafka–核心技术篇

    kafka–核心技术篇kafka生产者、broker原理及操作的深入讲解

    2022年6月26日
    24
  • 操作系统中进程调度算法详解及例题解释「建议收藏」

    操作系统中进程调度算法详解及例题解释「建议收藏」文章目录1.先来先服务(FCFS,firstcomefirstserve)1.1算法思想1.2算法规则1.3用于作业/进程调度1.4是否可抢占1.5优缺点1.6是否会导致饥饿2.短作业优先(SJF,shortestjobfirst)2.1算法思想2.2算法规则2.3用于作业/进程调度2.4是否可抢占2.5优缺点2.6是否会导致饥饿3.高响应比优先(HRRN)…

    2022年9月29日
    2
  • unity3d的入门教程_Unity3D缺点

    unity3d的入门教程_Unity3D缺点Unity3D新手入门初级教程U3D是由UnityTechnologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。可发布游戏至Windows、Mac、Wii、iPhone、Windowsphone8和Android平台。也可以利用Unitywebplayer插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Macwidgets所支持!U3D现已经占领了国内85%的手游

    2022年8月10日
    6
  • Windows网络编程

    Windows网络编程

    2021年12月7日
    50
  • 虚拟存储容量_虚存空间的最大容量

    虚拟存储容量_虚存空间的最大容量虚拟存储的容量受到下列哪一个因素的限制影响最大?DA. 磁盘空间大小B. 物理内存大小C. 数据存放的实际地址D. 计算机地址位数分析:这题应该是计算机地址位数才对。从影响上讲:虚存容量=min(2^计算机位数,内存+外存);  根据程序执行的互斥性和局部性两个特点,我们允许作业装入的时候只装入一部分,另一部分放在磁盘上,当需要的时候再装入到主存,这样以来,

    2022年9月26日
    1
  • 最详细的ensp安装及使用「建议收藏」

    最详细的ensp安装及使用「建议收藏」步骤一:ensp安装1:在华为官网下载全套的ensp(网址如下)2:输入链接后点击ensp最新版本如图·:3:具体软件安装见下图的软件安装指南:4.关于在ensp中使用几个特殊的设备时操作如下:(1).只要用到以下设备,都需要去官网下载相应的镜像文件(2).例如在ensp中选用usg6000v后,右键点击启动:(3).启动设备后会弹出导入设备包的对话框:(4),点击浏览————找到·从官网上下载到的镜像文件即可。步骤二:…

    2022年10月14日
    3

发表回复

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

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