Android十八章:Dalvik和Art区别

前言,安卓可以运行多个app,对应运行了多个dalvik实例,每一个应用都有一个独立的linux进程,独立的进程可以防止虚拟机崩溃造成所有程序都关闭。就像一条电灯泡上的电灯都是并联关系的,一个灯泡坏了其他灯泡不受影响,一个程序崩溃了其他程序也不受影响。

Android 虚拟机

安卓的虚拟机是啥? 安卓虚拟就就是运行在linux系统上的一个程序,一个独立的linux进程,一个dalvik虚拟机。

Dalvik

dalvik是一个跑在android手机上的一个java虚拟机,他是将java字节码转化为android手机系统的机器语言,在内存足够大,可以跑多个dalvik实例,并且互不影响。每次运行程序都要将java字节码转化为android系统机器语言。占用rom空间比Art小。

Art

Art也是一个跑在android手机上的一个java版本,是dalvik2.0版本。他能够在第一次安装的时候把java字节码全部转化为android系统机器语言。以后每次打开应用都不用再次编译java字节码了,打开速度快,运行效率高,省电。占Rom体积大。

总结

  1. Art一次编译,终身受用,提高app加载速度,运行速度,省电;不过安装时间略长,占Rom体积略大
  2. Dalvik占用Rom体积小,安装略快,不过加载app时间长,运行慢,更加耗电。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏H2Cloud

C++ 多线程编程总结

C++ 多线程编程总结          在开发C++程序时,一般在吞吐量、并发、实时性上有较高的要求。设计C++程序时,总结起来可以从如下几点提高效率: l ...

3766
来自专栏linux驱动个人学习

静态链接-空间与地址分配

当我们有两个目标文件时,如何将它链接起来成一个可执行文件?这个过程发生了什么?这基本上就是链接的核心内容:静态链接。 我们以使用下面源文件“a.c”和“b.c...

3046
来自专栏编程

Nutch重要命令使用说明

之前几篇博文对nucth抓取周期的几个命令做了说明,本篇博文将对nutch抓取周期以外的几个重要的命令的使用进行详细的说明。 1. mergesegs 合并多个...

2025
来自专栏Java编程技术

深入浅出一致性Hash原理

在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息),起到负载...

821
来自专栏PHP实战技术

Linux下自动化监控内存、存储空间!

距离上一次更新文章已经过去一段时间了,小编在这段时间因为一些琐事,加上身体生病不能及时更新文章,今天身体逐渐恢复就急忙来更新文章,今天思梦给大家...

3486
来自专栏Python、Flask、Django

python中用requests获取API参数

2096
来自专栏大数据智能实战

ubuntu14.0环境下matplotlib中ImportError: No module named _tkinter问题解决

Matplotlib是一个Python下的图形框架,可以很方便地进行图形化显示。可以说是做图像处理和数据分析必装的库。 但是在实际应用过程中,经常发现有这样的错...

2767
来自专栏Java技术栈

Java 中的伪共享详解及解决方案

1163
来自专栏linux驱动个人学习

编译选项含义

编译选项: 现在我们Makefile中的编译选项有: ? -g :可执行程序包含调试信息;(给gdb调试使用) -O2:该优化选项会牺牲部分编译速度,除了执行-...

4886
来自专栏日常分享

RabbitMQ基本模式

   最近用到了一些RabbitMQ的东西,看了官方的Get Started,以此为模板总结一下。

2992

扫码关注云+社区

领取腾讯云代金券