为什么Dalvik虚拟机需要在每个过程中运行? -- dalvik 领域 和 processes 领域 android 相关 的问题

Why does Dalvik virtual machine need to run in every process?


简体版||繁體版
2
vote

问题

中文

JVM和DVM都提供虚拟环境。 JVM不需要在每个过程中。 为什么DVM需要在每个过程中? 谢谢。

英文原文

JVM and DVM both provide virtual environment. JVM doesn't need to be in every process. why DVM need to be in every process? Thanks.

     

回答列表

7
 
vote

DVM和JVM都不在每个进程上运行。本身编译的应用程序(例如,您看到的内部仿真器的应用程序)与任何DVM或JVM无关。

甚至当您只计算Android"APK" 应用程序时,在(几乎)每个进程的地址空间上具有JVM / DVM的开销是最小的,因为它们是共享动态库,因此Linux将在副本中巧妙地将它们加载一次 - 为整个操作系统编写缓冲区。

 

Neither DVM nor JVM runs on every processes. Natively compiled applications (e.g. the ones you see inside Terminal Emulator) are not associated with any DVM or JVM.

And even when you only count Android "apk" applications, the overhead of having JVM/DVM on (nearly) every process' address space is minimal since they are a shared dynamic library so Linux will smartly load them once in a copy-on-write buffer for the whole OS.

 
 
       
       
4
 
vote

Android应用程序运行Dalvik字节码,因此DVM需要运行。就像如何运行PC上的Java字节码,需要JVM运行。

 

Android applications run Dalvik bytecode, so the DVM needs to be running. Just like how running Java bytecode on a PC requires a JVM to run.

 
 
   
   

相关问题

3  Android 4.0.3迟缓:NANDD进程劫持CPU  ( Android 4 0 3 sluggish nandd process hogging cpu ) 
我有一个Allwinner A10平板电脑克隆。在平板电脑上"冻结" 定期,但在2到15秒之间的时间间隔时间不会太过频繁。描述了不同的描述:平板电脑是可用的,但漂亮的"液体" 工作流程突然瞬间中断... 情况: e .g。在Firefox中打开一个额外的选项卡,当已经打开时, 在下载文件时使用平板电脑时,这些冻...

0  仍然是一个谜。 Thumbdata3文件空间和性能猪  ( Still a mystery thumbdata3 file space performance hog ) 
我只是不知道如何解决这个问题。 我几乎尝试了一切并放弃了。 如果存在 abcdefghijklmn.thumbdata3 文件,我已经阅读了其他线程。占用了很多空间的文件。我的文件占用了近20 GB,我买不起那个空间浪费。 我已经做了以下事情来尝试和规避,但没有任何作品 以相同的名称创建一个空文件。 该空文件最终...

3  “system_server” - Bluetoothphoneservice会导致高CPU使用率  ( System server bluetoothphoneservice causes high cpu usage ) 
我在Nexus 4上使用Android 5.1,几个月前将注意到电池排水量快。思考我需要将Android更新到较新版本我决定首先检查CPU使用情况,并发现进程"System_server" - BluetoothPhoneservice会导致高CPU使用率: 在其他论坛和其他有同样的论坛上进行了研究,但我没...

7  如何为Android任务设置CPU关联  ( How to set cpu affinity for android tasks ) 
我有一个双核android设备。 是否有任何方法可以为Android任务设置CPU关联? ...

42  是否有限制背景过程的缺点或风险?  ( Are there any downsides or risks to limiting background processes ) 
我在我的三星Galaxy Grand Duos上启用了开发人员选项,然后将"限制背景处理" 选项从标准限制更改为无后台处理。 之后,我的手机正常工作,没有悬挂问题或者没有像以前没有缓慢的。 但我的怀疑是,这种变化会影响任何可能导致错误或失败的流程,更新,应用程序或任何可能吗? ...

3  如何查看特定应用程序请求的网络流量?  ( How to view network traffic requested by a specific app ) 
有很多关于如何查看哪个应用程序请求网络连接的讨论。我尝试了以下应用程序: tcapturepacket wifi monitor connection tracker 但是,它们都没有有用。例如,在短时间内,我上传了一个30kb的PCAP文件,可以被视为 < / a>。我仍然没有找到哪个应用程序请求连接以及...

1  未启用的应用程序条目出现在电池历史记录中。可疑的?  ( Unlabled app entries appearing in battery history suspicious ) 
今天早上我注意到我的电池历史中的奇怪的无标题条目,我以前从未见过。我也不确定为什么一些行没有显示百分比。 (点击时,条目详细信息视图显示百分比。)条目具有与Android OS条目相同的代码/齿轮图标: 相同的图标 条目/详细/与Android操作系统相同/相同的图标(点击较大变体的图像) 这些不是在现在的...

5  根终端命令杀死或停止服务?  ( Root terminal command to kill or stop a service ) 
最新的 liveview应用程序对于我的设备,即使LiveView设备未连接,也会在状态栏上保持在状态栏上。由于我找不到任何禁用此行为的方法,我想通过Tasker为自己创建修复。我制作了它,以便在设备断开连接时终止LiveView流程。但是,虽然这成功杀死了应用程序,但在几秒钟或几分钟后,它再次启动并坐在类似于之前的...

19  查看Android 7(Nougat)的运行进程和CPU使用情况?  ( View running processes and cpu usage in android 7 nougat ) 
在先前版本的Android时,当我的手机电池快速下降时,我可以打开一个像 OS监视器,看看使用很多CPU的过程(通常它是Evernote或Maps.me),然后杀死该过程。 但是,OS监视器和类似的应用程序不再使用Android 7,我猜是由于系统的一些变化。 所以我想知道,有一种方法可以让我看看最新版本的Andro...

2  为什么Dalvik虚拟机需要在每个过程中运行?  ( Why does dalvik virtual machine need to run in every process ) 
JVM和DVM都提供虚拟环境。 JVM不需要在每个过程中。 为什么DVM需要在每个过程中? 谢谢。 ...




© 2022 it.wenda123.org All Rights Reserved. 问答之家 版权所有