Dalvik虚拟机相关的可执行程序
当Java程序运行时,都是一个虚拟机解释java的字节码,将这些字节码翻译成本地CPU的指令吗,然后执行。对Java程序而言,负责解释并执行的就是一个虚拟机。
dalvikvm的作用就是创建一个虚拟机并执行参数中指定的Java类,说明该程序的使用方法:
1.首先新建一个名为Foo.java的文件
class Foo{
public static void main(String[] args){
sysout("hello dalvik");
}
}
2.然后编译文件Foo.java并生成Jar文件
javac Foo.java
$Path=
$dx --dex --output=foo.jar Foo.class
dx工具的作用是将.class转换为.dex文件,因为Dalvik虚拟机所执行的程序不是标准的Jar文件,而是将Jar文件转换以提高执行效率,而转换后的文件就是dex文件。
2.dvz
dvz的作用是从Zygote进程中孵化出一个新的进程,新的进程也是一个Dalvik虚拟机。
1.dvz -classpath 包名称 类名
我们不能再函数Main()内部构造一个Welcome对象的方法达到运行该APK的目的。
3. app_process
Framwork在启动时需要加载并运行如下两个类:
ZygoteInit.java SystemServer.java ,系统提供了一个app_process进程,该进程会自动运行这两个类,app_process的本质就是使用dalvikvm启动ZygoteInit.java。并在启动收加载Framework中的大部分类和资源。
2.接下来app_process中是如何创建虚拟机并执行指定的class文件的。其源代码在文件frameworks/base/cmds/app_main.cpp中,该文件中的关键代码又两处:
1.先创建一个AppRutime对象
2.调用runtime的start()方法指定的class
Dalvik虚拟机相关的可执行程序相关推荐
- Android上的Dalvik虚拟机
本文是Android虚拟机系列文章的第二篇,会介绍Andorid系统上曾经使用过的Dalvik虚拟机.后面还会有一篇文章讲解Android系统上现在使用的虚拟机:ART. 也许有人会问,既然Dalvi ...
- 关于Dalvik虚拟机你需要知道的15个问题
Dalvik是Android系统中另一个重要的部分,包括虚拟机和一组重要的运行环境.它的设计非常巧妙,是个很好的一个手机终端的底层应用.本文就简单介绍Dalvik相关的15个问题. 1.大部分jvm是 ...
- 进入Android Dalvik虚拟机之Dalvik指令集
为什么80%的码农都做不了架构师?>>> 1. 指令特点 Dalvik指定在调用格式上模仿了C语言的调用约定.Dalvik指令的语法与助词符有如下特点: 参数采用从目标(des ...
- 【Java 虚拟机原理】Dalvik 虚拟机 ( 打包 Jar 文件和 Dex 文件 | 反编译 Dex 文件 | 分析 Dex 文件反编译结果 )
文章目录 前言 一.打包 Jar 文件和 Dex 文件 1.示例代码 2.打包 Jar 文件 3.打包 Dex 文件 二.反编译 Dex 文件 三.分析 Dex 文件 1.Student 类相关信息 ...
- 【Java 虚拟机原理】Dalvik 虚拟机 ( 简介 | CPU 指令集 | Dalvik 虚拟机内存 )
文章目录 一.Dalvik 虚拟机简介 二.CPU 指令集 三.Dalvik 虚拟机内存 一.Dalvik 虚拟机简介 Android 5.05.05.0 之前使用的是 Dalvik 虚拟机 , 5. ...
- android -------- java虚拟机和Dalvik虚拟机
2019独角兽企业重金招聘Python工程师标准>>> java虚拟机 虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的.Java虚拟机有自己完善的硬体 ...
- Dalvik虚拟机的运行过程分析
在前面一篇文章中,我们分析了Dalvik虚拟机在Zygote进程中的启动过程.Dalvik虚拟机启动完成之后,也就是在各个子模块初始化完成以及加载了相应的Java核心类库之后,就是可以执行Java代码 ...
- Android安全与逆向之Java虚拟机和Dalvik虚拟机的区别
Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野.它对内存的高效使用,和在低速CPU上表现出的高性能,确实令 ...
- Dalvik虚拟机简要介绍和学习计划
出自:http://blog.csdn.net/luoshengyang/article/details/8852432 我们知道,Android应用程序是运行在Dalvik虚拟机里面的,并且每一个应 ...
最新文章
- iOS10 UI教程子视图和父视图UI层次结构和Views继承
- Pytorch网络结构可视化
- 随想:如果手机与手机之间具备了无线电测距测向功能
- 【数据结构与算法】之深入解析“最小栈”的求解思路与算法示例
- [转载]一个游戏程序员的学习资料
- csv文件设置每个cell大小_Python对文本文件和Excel的处理机制
- 文本相似度-相似度度量
- 特斯拉已撤回德国电池工厂建厂补贴申请 原有望获得近13亿美元
- T-SQL基础--TOP
- 剑指 Offer——和为 S 的两个数字
- 插入、删除和随机查询时间复杂度都为O(1) leetcode 381
- Visio绘制神经网络层Layer
- excel宏破解方法
- 关闭445端口即关闭共享文件功能
- win8配置JDK1.8环境变量
- 机器学习算法:K近邻(k-nearest neighbors)
- js清除浏览器缓存的几种方法(项目总结)
- 【gpt】免费部署个人gpt平台(无需tz)
- o2o项目部署前,阿里云的申请与环境搭建
- 木工加工中心操作教程
热门文章
- 集群、分布式、负载均衡区别与联系
- Windows域的管理
- [Python从零到壹] 十一.数据分析之Numpy、Pandas、Matplotlib和Sklearn入门知识万字详解(1)
- [译] APT分析报告:08.漏洞利用图谱–通过查找作者的指纹来寻找漏洞
- SwiftUI之深入解析布局如何自定义AlignmentGuides
- TensorFlow模型持久化
- SpaceX完成“星舰”空中悬停,距载人探火星还远吗?
- 96. Unique Binary Search Trees 不同的二叉搜索树
- 排序算法 —— 选择排序
- 百练2811:熄灯问题