美文网首页
dex文件与class文件如何生成

dex文件与class文件如何生成

作者: 蒋帅Android | 来源:发表于2017-12-01 21:11 被阅读0次

一、dex文件与class文件如何生成
Class文件:可以被JVM所识别的文件。记录一个类文件的所有信息。
文件结构:a)一种8位字节的二进制流文件。
b)各个数据按顺序紧密的排列,无间隙。
c)每个类或接口都单独占据一个class文件。

Dex文件:可以被DVM所识别的文件。记录整个工程所有类的信息。
文件结构:a)一种8位字节的二进制流文件。
b)各个数据按顺序紧密的排列,无间隙。
c)整个应用所有的java源文件都放在一个dex中。

Class文件生成:
1、Javac Hello.java (生成.class)
2、Java Hello (执行.class文件)

Dex文件的生成:
3、dx --dex--output Hello.dex Hello.class 生成了我们的.dex文件
4、adb push Hello.dex /storage/emulated/0 将.dex文件push到手机上
5、adb shell 进入手机控制台
6、dalvikvm -cp /sdcard/Hello.dex Hello 执行.dex文件

二、为什么Android虚拟机加载的是dex文件?
Class文件弊端:1)内存占用大,不适合移动端。
2)堆栈的加栈模式,加载速度慢。
3)文件IO操作多,类查找慢。

三、两者之间的异同:
1、本质上他们都是一样的,都是由java源文件编译所来。
2、Dex是class文件演变而来。
3、Class文件有许多冗余信息,dex会去除冗余,并整合。

相关文章

  • 热修复与插件化基础——dex与class

    一、dex/class浅析 1、class与dex对比 2、生成class与dex文件的指令 生成并运行class...

  • dex文件与class文件如何生成

    一、dex文件与class文件如何生成Class文件:可以被JVM所识别的文件。记录一个类文件的所有信息。文件结构...

  • android打包流程

    summary 编译src文件,生成class文件 将class文件编译成为dex文件 编译资源文件(不包括ass...

  • 32. 热修复-QQ空间超级补丁方案

    .class生成dex 注:在我们测试过程中,需要将class生成dex文件,这个生成的过程很烦人,可能会出现绝对...

  • 手动构建apk

    aapt 编译R文件 javac 将java文件生成.class文件 dex 编译资源,将 res下面的资源打...

  • 粗谈Java虚拟机之原理与结构

    前言 1. class文件与dex文件解析 在学习java虚拟机之前,我们有必要先来了解下下class文件与dex...

  • Gradle transform api 简介

    前言 在打包流程中,我们知道生成.class文件后,利用dx工具生成.dex文件,而利用Transform API...

  • 插件化开发 -- 类加载

    java文件在编译后会生成一个class文件,而在Android中会将代码编译后生成多个dex文件,在通过zip打...

  • Android热修复【实战一】

    说了那么多的原理,也该手写撸撸代码去实现一下。 1、生成Dex文件 将class文件打包成dex文件 1.1 dx...

  • class与dex文件

    class class文件是一种被JVM识别,加载并且执行的文件格式。主要在平台无关性和网络移动性方面使Java更...

网友评论

      本文标题:dex文件与class文件如何生成

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