class文件和dex文件

热修复学习一:class文件和dex文件 一、热修复=====热修复的使用:目前市场上流行的两种方案,阿里系的和腾讯系的热修复解决的问题:刚发布的应用就发现了比较严重的bug有一些小的功能想即时地推送给用户去使用二、插件化=====插件化的使用:比较有代表性有三家:美团、淘宝和酷狗,其中美团和淘宝使用的是自己的方案,酷狗使用的是一个开源方案。插件化解决的问题:解决应用越来越大所带来的各种技术限制,比如:方法数超过了65535的限制解决应用越来越大带来的合作开发问题三、class文件详解什么是class文件。 阅读详情

Class文件

1、什么是class文件
能够被JVM识别,加载并执行的文件格式。
2、class文件的生成

这里写图片描述

3、如何生成一个class文件(必须配置好java环境变量)
    通过IDE自定帮我们build
    手动通过javac去生成class文件
    通过java命令去生成class文件

这里写图片描述

4、class文件作用
    记录一个类文件的所有信息,记住所有。例如记住了当前类的引用this、父类super等等。class文件记录的信息往往比java文件多。
5、class文件的结构
    8位字节的二进制流文件
    各个数据紧密排列,无间隙,减少了文件体积,加快加载速度
    每个类或者接口单独占据一个class文件,每个类单独管理,没有交叉

使用010Editor可以查看class文件的详细信息(注意需要安装模板):
这里写图片描述
class文件中的字段如下所示:

magic 加密字段,虚拟机判断当前的class文件是否被篡改过
minor_version 支持最低版本的jdk
major_version 编译使用的jdk版本
constant_pool_count 常量池的数量,一般为一个
cp_info constant_pool 常量池的结构体,数量不定(类型是cp_info结构体)
access_flags 访问级别,例如public等
this_class 当前类
super_class 父类
interfaces_count 类实现接口的数量
fields_count 类成员变量的数量
methods_count 类方法的数量
method_info methods 类方法的结构体
attributes_count 类属性的数量
attribute_info attributes 类属性的结构体

其中,access_flags如下:
这里写图片描述

constant_pool包括:

CONSTANT_Integer_info、CONSTANT_Long_info、CONSTANT_String_info等等
CONSTANT_Class_info:类的相关信息,包括当前类、引用到的类的信息
CONSTANT_Fieldref_info:类的域信息
CONSTANT_Methodref_info:类的方法信息

6、class文件的弊端
    内存占用大,不适合移动端
    堆栈的加栈模式,加载速度慢。
    文件IO操作多,类加载慢。

dex文件

1、什么是dex文件
能够被DVM或者Art虚拟机执行并且加载的文件格式。
2、dex文件的生成(需要配置android的adb环境变量)
先生成class文件(注意执行低版本的JDK版本,否则手机无法运行),然后执行:
dx --dex --output Test.dex Test.class
然后把生成的dex文件拷贝到手机:
adb push C:\Users\Administrator\Desktop\Test.dex /storage/emulated/0
adb shell
dalvikvm -cp /sdcard/Test.dex Test
3、dex文件的作用
 dex文件的作用是记录整个工程(通常是一个Android工程)的所有类文件的信息。
4、dex文件的结构
    8位字节的二进制流文件
    各个数据紧密排列,无间隙,减少了文件体积,加快加载速度
    整个工程的类信息都存放在一个dex文件中(不考虑dex分包的情况下)

同样的,可以通过010Editor来查看dex文件信息:
这里写图片描述
dex文件的结构如下图所示:
这里写图片描述

需要注意的是:
    文件头包含了dex文件的信息,所有数据的大致分布情况
    链接数据区:主要是指so库

dex文件头信息的详细信息如下:
这里写图片描述

class文件与dex文件的比较

本质上都是一样的,都是二进制流文件格式,dex文件是从class文件演变而来的
class文件存在冗余信息,dex文件则去掉了冗余,并且整合了整个工程的类信息。

结构对比图如下:
这里写图片描述

参考文献:https://www.jianshu.com/p/2eb518941681

DNN加速器脉动阵列轻量级瞬时故障检测 本文系统综述了面向深度神经网络(DNN)脉动阵列加速器的轻量级瞬时故障检测技术。通过分析比较算法级校验(ABFT)、数值异常监测(剪裁、中值滤波等)、硬件编码检错(AN码、剩余码)以及选择性冗余等方案,指出这些方法能以5%-10%的开销实现对权重和激活比特翻转的高效检测,远低于传统ECC/冗余计算的成本。研究显示,结合多种轻量技术可构建多层防护体系,在保障推理可靠性的同时保持加速器的高性能特性。该成果为安全关键领域的DNN加速器设计提供了重要参考。 阅读详情

相关推荐

【架构师面试-缓存与搜索-1】-缓存与缓存置换策略源码实现

1:什么是缓存 缓存:加速数据访问的存储,降低延迟(latency),提升吞吐量(Throughput)的利器。 1:缓存演进历史 1. 查库 2. ConcurrentHashMap 3. LRU 4. Guava Cache 5. 分布式缓存(redis,MemCache) 6. 多级缓存 2:在什么地方加缓存 缓存对于每个开发者来说是相当熟悉了,为了提高程序的性能我们会去加缓存,但是在什么地方加缓存,如何加缓存呢? 举个栗子:假设一个网站,需要提高性能,缓存可以放在浏览器,可以放

chongfa2008的博客 6440

Android 应用开发之Dex解析和类加载

APP安装 对于一个Android的apk应用程序,其主要的执行代码都在其中的class.dex文件中。在程序第一次被加载的时候,为了提高以后的启动速度和执行效率,Android系统会对这个class.dex文件做一定程度的优化, 并生成一个ODEX文件,存放在/data/dalvik-cache目录下。以后再运行这个程序的时候,就只要直接加载这个优化过的ODEX文件就行了,省去了每次都要优化的时

龙少爷的博客 2030

10-142 6-4 查询厂商“D“生产的PC和便携式电脑的平均价格

分数 10全屏浏览题目切换布局作者 lhm单位 河北农业大学本题目要求编写SQL语句,查询厂商D生产的PC和便携式电脑的平均价格。

dqd66的博客 2748

插件化框架解读之Class文件与Dex文件的结构(一)

代码真的是重质不重量,质量高的代码,是当前代码界提倡的,当然写出高质量的代码肯定需要一个相当高的专业素养,这需要在日常的代码书写中逐渐去吸收掌握,谁不是每天都在学习呀,目的还不是为了一个,为实现某个功能写出高质量的代码。所以,长征路还长,大家还是好好地做个务实的程序员吧。最后,小编这里有一系列Android提升学习资料,有兴趣的小伙伴们可以来看下哦~《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

2301_78416573的博客 621

【OpenClaw从入门到精通】第66篇:Skill开发进阶——从零打造一个跨境选品Skill(附完整代码)(2026实测版)

2026年跨境电商效率革命中,AI Agent已成为选品核心工具,但通用Skill难以适配个性化需求。本文以“跨境选品”为实战场景,从零讲解OpenClaw Skill的完整开发流程:从需求分析、目录结构设计、SKILL.md编写,到Python脚本开发(含1688商品搜索、销量分析、竞品对比核心功能),再到调试测试、安全审计与ClawHub发布。文中提供可直接复制的完整代码,覆盖多平台适配、异常处理、数据可视化等进阶功能,同时解决API调用、链接失效等实际问题。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 567

解决开着代理情况下pip或魔搭下载失败

最近由于经常配环境导致,老是要来回切clash关掉代理,非常的不方便如下面的,魔搭模型下载失败如下面的,pip换源后下载失败。

风吹落叶的博客 2950

3.插件化系列之动态加载class示例

上一篇文章我们介绍了安卓系统类加载流程,我们现在自己来动手实现一下动态加载dex。

qq_36017595的博客 1021

厉害了,华为推出下一代光传送网:fgOTN

2024年10月,在全球信息技术博览会(GITEX Global 2024)上,华为正式发布了其颠覆性的创新产品——端到端细粒度光传送网(fgOTN)解决方案。这一产品组合被誉为行业内首个fgOTN,旨在重塑光传送网络的格局,满足电力运输等行业日益增长的通信需求。在过去的近三十年中,同步数字体系(SDH)技术一直是电信和工业网络的支柱,因其可靠性、稳定性和低延迟而备受青睐。然而,随着数据需求的激增,SDH的最大带宽仅为10 Gbps,逐渐显露出局限性。

网络技术联盟站 636

class文件与dex文件解析

这篇笔记是我去年的时候创建的,结果放到草稿箱里给忘记了,大写的尴尬啊,所以急忙给补上了,此处鄙视一下自己!今天的正题——解析class文件和dex文件。

江湖人陆仁甲 8888

【ARM CoreLink 系列 3 -- CCI-550 控制器介绍 】

Arm CoreLink CCI-550 Cache Coherent Interconnect 扩展了 CoreLink CCI-500。它在 big.LITTLE 处理器集群之间提供完整的缓存一致性,并为其他代理(如 Mali GPU、网络接口或加速器)提供 I/O 一致性。CoreLink CCI-550 提供可扩展和可配置的互连,使 SoC 设计人员能够以尽可能小的面积和功耗满足性能目标,并且还增加了可降低整体系统延迟的监听滤波器。

CodingCos的博客 2210

提示工程架构师干货:AI上下文工程在社交媒体舆情溯源中的应用

在舆情溯源中,“上下文”不是单一的“文本内容”,而是多维度、多源的信息集合溯源时间:从事件爆发到找到源头,只用了24小时(传统方法需要3-5天);溯源准确性:100%(通过人工验证确认);后续行动:品牌X发布了澄清声明,揭露了品牌Y的恶意行为,舆情在48小时内平息。社交媒体舆情溯源是一个“复杂的系统工程”,需要结合数据、模型、上下文理解。AI上下文工程的出现,让我们从“被动应对”转向“主动溯源”,从“模糊判断”转向“精准分析”。

Java大师兄的博客 813

Android Dex VS Class:实例图解剖析两种格式文件结构、优劣

前段时间在了解Android代码混淆和反编译原理的时候,都涉及到了dex文件,该文件中保存着app中重要的数据信息,例如源码中使用的系统api,或者是否含有广告,更甚者通过解析AndroidManifest.xml知晓activity、service、receiver等四大组件数据信息(未混淆的情况下),而且一个程序应用的所有数据信息都存储在一个dex文件中,可见该格式文件存储信息的强大优势!说起信

lemonGuo的大脑皮层、小脑、海马体、杏仁核..... 3905

delphi fmx android 自动更新(一)

所以,如果是http 则,manifest.xml application 下,https无需添加。增加android:usesCleartextTraffic="true",不然无法使用http下载东西。1,REQUEST_INSTALL_PACKAGES 权限。4,WRITE_EXTERNAL_STORAGE 权限。3,READ_EXTERNAL_STORAGE 权限。一般是从http下载安装包 apk。2,INTERNET 权限。sFile为apk包路径。

全粘工程师 550

Class文件和Dex文件的初步解析

Class文件和Dex文件的初步解析

SKY_L的博客 1857

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Class文件和Dex文件的问题分析

Class文件 class文件就是能够被jvm识别,加载并执行的文件。 java,scala.python都可以生成class文件 IDE可以帮我们build class文件,javac可以生成class文件 class文件的作用:是记录一个类的所有信息 class文件的数据结构:八字节二进制流文件,各个数据有序紧密排列,每个类和接口单独占一个class文件。 class中的字段 M...

长歌的博客 324

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android中class文件和dex文件

class文件 jvm在生成class文件的时候,会默认给我们填充父类等信息,这就是为什么能够调用super关键字的原因。 majic:加密段,用来判断class文件是否被篡改过; minor_version:当前class文件最小适配的版本 maj constant_:常量池的数量 constant_pool:真正的常量池,cp_info结构体类型 access_flags:当前class文件的作用域标识,比如Public this_class: super_class:jvm虚拟机会默认给我们填充当前

wsb_2526的博客 729

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

热修复学习一:class文件和dex文件(1)

今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。还有。

2401_84149381的博客 686

Class文件和Dex文件

Class文件的基本概念:能够被jvm识别,加载并执行的文件格式。class文件的作用:记录一个类文件的所有信息,记住是所有信息class文件的结构:  是一种8位字节的二进制流文件   各个数据按顺序紧密的排列,无间隙每个类或接口都独占一个class文件在这张图中,每一行表示两个字节长度,按照从上到下、从左到右的顺序描述了class文件的结构。其中,浅颜色的部分是无符号数,深颜色的部分是表。下面...

zhengwanshi的博客 1132

class和dex文件解析

文章目录class文件什么是class文件如何生成一个class文件class文件格式详解dex文件什么是dex文件如何生成一个dex文件dex文件的作用dex文件结构class和dex对比总结 class文件 什么是class文件? 如何生成一个class文件? class文件的作用? class文件格式详解 什么是class文件 能够被jvm识别,加载并执行的文件格式。 如何生成一个clas...

hongxue8888的博客 605

插件化介绍一:class和dex文件的区别

以下内容来源于网络,整理在此作为自己的学习笔记: class文件的作用 class文件的作用是记录一个类文件的所有信息。 例如记住了当前类的引用this、父类super等等。class文件记录的信息往往比java文件多。 class文件结构: 1、一种8位字节的二进制流文件 2、各个数据按照顺序紧密的排列,无间隙 3、每个类或接口都单独占据一个class文件 class...

秦时明月 2558

java.class文件 和.dex文件

1.首先java.class文件是通过, javac 编译java源文件得到的 .class字节码文件。 2.java.class文件是jvm可识别的字节码文件。 3. .dex字节码文件是通过 d8编译器 java.class文件得到的。老版本的是通过(DX)编译器编译java.class编译得到。 4. .dex文件是 android Dalvik虚拟机可执行的文件。 5. .dex文件和.class文件都是可以进行修改的。修改这些文件可以动态的修改程序的执行。我们平时开发写的代码就是源代码。 6.

qq_40207976的博客 598

asm java 反编译_dex-tools-2.1-SNAPSHOT 反编译Java class文件和Android dex文件到Java源码的利器 - 下载 - 搜珍网...

压缩包 : fcef342f7efebdee9176000f148113.zip 列表dex-tools-2.1-SNAPSHOT/dex-tools-2.1-SNAPSHOT/lib/dex-tools-2.1-SNAPSHOT/lib/dex-tools-2.1-SNAPSHOT.jardex-tools-2.1-SNAPSHOT/lib/dex-translator-2.1-SNAPSHOT...

weixin_39838829的博客 685

Android热修复和插件化(一)class文件和dex文件解析

一、热修复解决的问题1、热修复所能解决的问题 1、刚发布的应用就出现比较严重的BUG 2、有一些小的功能即时推送给用户去使用 2、热修复所能解决的问题 1、解决应用越来越大所带来的技术限制 2、解决应用越来越大所带来的合作开发问题 3、class文件的解析 1、什么是class文件 能够被JVM识别,加载并执行的文件格式

Smile.L.B的博客 753
上一篇: Android 任务栈&activity的启动模式
下一篇: 虚拟机的深入理解
Li_Pine
博客等级 码龄12年 17粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值