栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

移动安全-Android中的dex、davlik讲解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

移动安全-Android中的dex、davlik讲解

jvm的执行

我们编写java代码都是.java格式的,但是jvm并不能识别.java文件,它只能加载、执行.class文件, 所以我们要通过javac命令将.java文件编译成.class文件,然后通过java命令运行.class文件

dalvik的执行

dalvik与jvm差不多,区别就是dalvik只能加载、运行.dex文件(至于如何识别、运行,后面会讲到)。我们的Android程序也 是用java编写的,生成的也是.java文件,所以需要把.java文件转换成.dex文件,dalvik才能执行。IDE编译、打包的过程, 就是将.java文件转换成.dex文件的过程,我们可以简单看一下编译过程

一个APP的目录结构

各文件的作用

下面是官方介绍的打包流程图:

总结一下,主要就是这几步:

1、根据res目录下的资源文件、AndroidManifest.xml生成R.java文件;

2、处理.aidl文件,生成对应的java文件,如果没有aidl,则跳过;

3、将前两步生成的java文件和src目录下源码一起编译成class文件;

4、通过dex将class文件生成成dex文件;

5、将资源文件和dex文件一起打包,生成初始apk;

6、对初始apk签名 ;

最后概括就是classes.dex文件就是我改APP的所有源代码的dex可执行文件

APP的安装过程

apk的安装过程,就是把apk解压成第4步中的dex文件和原始资源文件(比如图片),运行过程就是dalvik加载、运行dex文件 的过程。这里有两个过程,一个是加载,一个是运行

Dex文件的生成过程

通过命令“javac HelloWorld.java”可以生成HelloWorld.class文件。

再通过命令“dx –dex –output=HelloWorld.dex HelloWorld.class”就会生成HelloWorld.dex文件了。

dex文件的加载是通过DexClassLoader、PathClassLoader等类来完成的

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/760002.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号