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

####class文件的作用
class文件的作用是记录一个类文件的所有信息。
例如记住了当前类的引用this、父类super等等。class文件记录的信息往往比java文件多。

####class文件结构:
1、一种8位字节的二进制流文件
2、各个数据按照顺序紧密的排列,无间隙
3、每个类或接口都单独占据一个class文件

####class文件的弊端
内存占用大,不适合于移动端
堆栈的加载模式导致加载速度慢
文件IO操作多,类查找慢

####DEX:Android平台上可执行文件的类型。
原文来自:
JVM和DVM区别 - CSDN博客
https://blog.csdn.net/u014623470/article/details/44524835

####区别一:
dvm执行的是.dex格式文件 jvm执行的是.class文件 android程序编译完之后生产.class文件,然后,dex工具会把 .class文件处理成 .dex文件,然后把资源文件和.dex文件等打包成.apk文件。apk就是android package的意思。 jvm执行的是.class文件。
####区别二:
dvm是基于寄存器的虚拟机 而jvm执行是基于虚拟栈的虚拟机。寄存器存取速度比栈快的多,dvm可以根据硬件实现最大的优化,比较适合移动设备。
####区别三:
.class文件存在很多的冗余信息,dex工具会去除冗余信息,并把所有的.class文件整合到.dex文件中。减少了I/O操作,提高了类的查找速度

####为什么dex更精简,更适合移动端呢?
因为.dex把所有.class的 header头(包含JDK)写成了一个,所有的常量放在一个池里, .dex只维护了一个索引.

JVM: .java --> javac --> .class --> jar --> .jar
架构: 堆栈

DVM: .java --> javac --> .class --> dx.bat --> .dex
架构: 寄存器(cpu上一块高速的缓存)

####dex文件的作用
dex文件的作用是记录整个工程(通常是一个Android工程)的所有类文件的信息。

####dex文件的结构
8位字节的二进制流文件
各个数据紧密排列,无间隙,减少了文件体积,加快加载速度
整个工程的类信息都存放在一个dex文件中(不考虑dex分包的情况下)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值