`

Android DVM简介

 
阅读更多

Dalvik概述

Dalvik是Google公司自己设计用于Android平台的Java虚拟机。它可以支持已转换为.dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,可以减少整体文件尺寸,提高I/o操作的类查找速度所以适合内存和处理器速度有限的系统。

Dalvik虚拟机(DVM)和Java虚拟机(JVM)首要差别

Dalvik 基于寄存器,而JVM 基于栈。性能有很大的提升。基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。

寄存器的概念

寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC),在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。

栈的概念

栈是线程独有的,保存其运行状态和局部自动变量的(所以多线程中局部变量都是相互独立的,不同于类变量)。栈在线程开始的时候初始化(线程的Start方法,初始化分配栈),每个线程的栈互相独立。每个函数都有自己的栈,栈被用来在函数之间传递参数。操作系统在切换线程的时候会自动的切换栈,就是切换SS/ESP寄存器。栈空间不需要在高级语言里面显式的分配和释放。

DVM进程的设计规则

1)每个应用程序都运行在它自己的Linux空间。在需要执行该应用程序时Android将启动该进程,当不再需要该应用程序,并且系统资源分配不够时,则系统终止该进程。

2)每个应用程序都有自己的(DVM),所以任一应用程序的代码与其他应用程序的代码是相互隔离的。

3)默认情况下,每个应用程序都给分配一个唯一的Linux用户ID。所以应用程序的文件只能对该应哟程序可见。

所以说么个应用程序都拥有一个独立的DVM,而每个DVM在Linux中又是一个进程,所以说DVM进程和Linux进程可以说是一个概念。

Android 应用程序的编译

Android所有类都通过JAVA编译器编译,然后通过Android SDK的“dex文件转换工具”转换为“dex”的字节文件,再由DVM载入执行。



原文地址: http://www.zuiniuwang.com/?p=163

分享到:
评论

相关推荐

    Android中Dalvik(DVM)的详解

    Android中Dalvik(DVM)的详解 Dalvik是Google公司自己设计用于Android平台的Java虚拟机

    百度Android工程师面试题.pdf

    1、 Android dvm 的进程和 Linux 的进程, 应用程序的进程是否为同一个概念 DVM 指 dalivk 的虚拟机。每一个 Android 应用程序都在它自己的进程中运行, 都拥有一个独立的 Dalvik 虚拟机实例。而每一个 DVM 都是在 ...

    Android期末复习题01

    4、下面关于Android dvm的进程和Linux的进程,应用程序的进程说法正确的是 ( ) DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中...

    零基础入门Android(安卓)逆向-rar

    34.Android dvm 脱壳3 H2 X- A# M4 s+ A6 K- b 35.Dalvik dex处理分析 ) x+ l1 l1 J R2 N) T" R) ^2 o 36.IDA脱壳脚本编写1) O7 `% E" Q. @1 X! o ~ 37.Odex修复方法 38.IDAOdex修复脚本编写 " X' w1 h: w3 N" u8 P5...

    Android背诵87题-总结.docx

    1、 Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念 DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个...

    百度Android开发面试题

    这是一份来自百度android开发面试题(包括答案).Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念?handler机制的原理?Activity的生命周期...

    进入 Android Dalvik 虚拟机

    进入 Android Dalvik 虚拟机,android dalvik介绍 Dalvik 虚拟机的特点——掌握 Android 程序的运行原理 Android 系统的架构采用分层思想,这样的好处是拥有减少各层之间的依赖性、便于独 立分发、容易收敛问题和...

    Android5.1 Art Hook

    Android5.1 Art Hook 支持4.0到5.1的dvm和art hook。美中不足是编写hook函数比较麻烦

    Android基础01

    Android核心基础01思维导图文件(.mmpa格式),包含demo代码(电话拨号器和短信发送器)。... Android版本简介 Android体系结构 JVM和DVM的区别 常见adb命令操作 Android工程目录结构 点击事件的四种形式

    java7hashmap源码-Android-Interview:Android面试题大全

    DVM指Dalivk的虚拟机,每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalivk虚拟机实例。而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念。 SIM卡的 EF 文件有何作用? sim卡的...

    Android招聘面试题解答

    Android dvm的进程和Linux的进程,应用程序的进程是否为同一个概念?DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个进程...

    android脱壳思路.png

    记录了市面上移动端安卓一代壳的脱壳主要思路:针对dvm模式和art模式脱壳方法进行了一系列总结,希望对初学者有帮助

    android_os_MessageQueue.rar_android

    native object attached to the DVM MessageQueue.

    android_view_InputChannel.rar_android

    native object attached to the DVM InputChannel.

    Android dex文件通用自动脱壳器

    之前做了一个Android dex的通用脱壳器,主要思想是以AOP的模式对运行时ART和DVM进行定制,附件中是在HITCON上演讲的ppt。 源码地址:https://github.com/zyq8709/DexHunter 代码较挫,大家可以看看,有兴趣的可以...

    浅谈Android中关于静态变量(static)的使用问题

    项目中,在不停地接收串口数据很长一段时间(几小时)后,会偶然性的...在Android中,用的DVM也是一样的,不过Android中不太突出进程的概念,所以对静态变量的生命周期就是感觉模糊,这种模糊对于值类型是无所谓的,如

    SpanDex-_Secure_Password_Tracking_for_Android.pdf

    这篇文章提出的SpanDex,是一个Android DVM的扩展集,用于保证应用程序不会泄露用户的密码。 SpanDex解决的主要技术问题是准确、完整、有效的处理隐式信息流(如程序控制流传送的信息)。具体方法是借助符号执行技术...

    android笔试题目汇总及答案

    android笔试题目汇总及答案: 1.关于线程下面描述错误的是:( D ) A. 如果线程处于死亡状态,则它不是Runnable线程 B. 线程可以将控制权交给较低优先级的线程 C. 在Java中,较高优先级的Runnable线程应抢在较低...

    Java收银机源码-android-interview-questions-by-firoz:这里收集了印度不同公司针对经验丰富的Androi

    Java收银机源码android-java-interview-questions-by-firoz 这里收集了在印度不同公司提出的所有面试问题,供新手到有经验的 android 开发人员使用。 问:什么是安卓? Android 是一种基于 Linux 的开源操作系统,可...

Global site tag (gtag.js) - Google Analytics