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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • idea2021.2.8激活码-激活码分享

    (idea2021.2.8激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html83PVI25FMO-eyJsa…

  • .vue文件结构(vue框架项目)

    build文件夹里面是对webpack开发和打包的相关设置,包括入口文件、输出文件、使用的模块等;build.js文件构建环境下的配置:loading动画、删除创建目标文件夹、webpack编译、输出信息’usestrict’//js的严格模式require(‘./check-versions’)()//node和npm的版本检查process.env.NODE_ENV…

  • nps是什么、怎么计算、有什么用

    nps是什么、怎么计算、有什么用前言NPS中文为净推荐值,全名为NetPromoterScore,由美国贝恩咨询提出。用一个简单的问题,了解客户是不是愿意推荐你的产品,评估口碑。也可以用来评估用户体验和客户满意度。通过了解客户的反馈,你也可以迭代、优化自己的产品。做好NPS可以让客户裂变,让每个客户都变成你的自来水、产品代言人。NPS是什么我们经常看到下面的问题,“你向朋友推荐XXX产品的可能性有多大?”,“我们可以如何提高”或者”是什么让你愿意向朋友推荐我们的产品”Windows10的NPS调查..

  • java set集合详解

    java set集合详解参考地址:https://blog.csdn.net/qq_33642117/article/details/52040345一,SetSet:注重独一无二的性质,该体系集合可以知道某物是否已近存在于集合中,不会存储重复的元素用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复。对象的相等性  引用到堆上同一个对象的两个引用是相等的。如果对两个引用调用hashCode方…

  • 【图解算法】模板+变式——带你彻底搞懂字典树(Trie树)

    【图解算法】模板+变式——带你彻底搞懂字典树(Trie树) 啥是字典树?【字典树】(TrieTree)是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串)。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。                                                    ——百度·百科so?所以到底什么是字典树? 还好,它还有其他的名字,更能表述出它的实质:前缀树、单词查找树&nbs

  • kali linux 云服务器,云服务器安装kali linux

    kali linux 云服务器,云服务器安装kali linux前言在网上可以搜索到2种在腾讯云服务器上安装kali系统的方法:第一种方法:通过挂载云硬盘到云服务器上,将kali镜像刻录到挂载的云硬盘中,利用VNC可视化安装kali系统;查看详情第二种方法:在本地搭建好kali虚拟机环境,然后通过制作符合腾讯云的kali镜像上传到腾讯云对象存储桶,利用重置系统自定义镜像功能进行安装kali;查看详情以上两中方法博主都尝试过,第一种方法安装成功过一次,而…

发表回复

您的电子邮箱地址不会被公开。

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