美文网首页热修复 和 插件化
一、class文件与dex文件解析

一、class文件与dex文件解析

作者: ad9e96e0131b | 来源:发表于2017-08-15 09:53 被阅读0次

1、class文件

【概念】能够被JVM识别,加载并执行的文件格式。

【生成class文件】

通过IDE自动帮我们build;

手动通过javac去生成class文件;

通过Java命令去执行class文件;

【class文件作用】记录一个类文件的所有信息,记住是所有!

【class文件结构】

一种是8字节的二进制流文件;

各个数据按顺序紧密的排列,无间隙(好处:减少class的体积,加载class文件时,更快速);

每个类或接口都单独占据一个class文件(好处:每个类或接口都可以独自管理自己内部的内容,无需相互交叉);

1)access_flags

2)constant_pool

3)范例

【class文件弊端】

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

2、dex文件

【概述】能够被DVM识别,加载并执行的文件格式。

【如何生成一个dex文件】

1)通过IDE自动帮我们build生成; 配置dex环境变量;/sdk/build-tools/26.0.0/dx;

2)手动通过dx命令去生成dex文件;

3)手动运行dex文件在手机;

【dex文件作用】记录整个工程中所有类文件的信息,记住是整个工程!

【dex文件结构】

一种是8字节的二进制流文件;

各个数据按顺序紧密的排列,无间隙;

整个应用中所有Java源文件都放在一个dex中;

3、class和dex对比

本质上他们都是一样的,dex是从class文件演变而来的;

class文件存在许多沉余,并整合;

相关文章

网友评论

    本文标题:一、class文件与dex文件解析

    本文链接:https://www.haomeiwen.com/subject/xocprxtx.html