如何安卓应用程序不会打扰另一个

时间:2013-01-15 11:13:09

标签: android memory-management operating-system

我对android很新。我对android中的操作系统操作有疑问。

在Symbian OS中,当应用程序崩溃时,设备将被关闭并自行开启。

在android when an application gets crashed it does not disturbs the other one中,如何发生这种情况,任何人都可以解释这个并建议我学习android的基础知识的教程......

4 个答案:

答案 0 :(得分:1)

来自Application Fundamentals

  

安装在设备上后,每个Android应用程序都位于自己的安全沙箱中:

     
      
  • Android操作系统是一个多用户Linux系统,每个应用程序都是不同的用户。

  •   
  • 默认情况下,系统会为每个应用程序分配一个唯一的Linux用户ID(该ID仅供系统使用,并且应用程序不知道)。系统为应用程序中的所有文件设置权限,以便只有分配给该应用程序的用户ID才能访问它们。

  •   
  • 每个进程都有自己的虚拟机(VM),因此应用程序的代码与其他应用程序隔离运行。

  •   
  • 默认情况下,每个应用程序都在自己的Linux进程中运行。当需要执行任何应用程序的组件时,Android会启动该过程,然后在不再需要该过程时或系统必须为其他应用程序恢复内存时关闭该过程。

  •   
     

通过这种方式,Android系统实现了最小权限原则。也就是说,默认情况下,每个应用程序只能访问其工作所需的组件,而不能访问它们。这创建了一个非常安全的环境,在该环境中,应用程序无法访问未获得许可的系统部分。

总结一下:

每个应用程序都是它自己的用户,拥有自己的ID和权限,并且运行在与其他应用程序隔离的自己的VM中。

因此,如果应用程序崩溃,其他应用程序无需知道或关心此事件,因为它们在完全不同的虚拟化上下文中运行,而崩溃的应用程序不会影响它们(除非它们共享某些资源,如文件,由开发人员技能和系统级异常处理组合处理)。

这就是在Android中维护应用程序分离的方式。

答案 1 :(得分:0)

Android OS正在为每个应用推出一个dalvik机器的新实例。 Dalvik是用于安卓的类型的JVM

当应用程序运行时,它会在其自己的dalvik实例中运行。

同时,Android操作系统不断观看" dalvik机器"的所有实例。每当其中一个没有响应时(5或10秒内),Android操作系统就会杀死" dalvik实例"并且应用程序崩溃了,但是其他正在运行的应用程序都没有受到影响,因为它们在其他dalvik实例中运行。

答案 2 :(得分:0)

Android在自己的dalvik VM中运行每个应用程序,并采用非常严格的方法进行进程间通信。因此,如果一个应用程序崩溃,它不会影响任何其他应用程序,除非您自己引入依赖项(如依赖于某个后台应用程序的应用程序)。

答案 3 :(得分:0)

Android在Linux上运行;符合POSIX标准的现代操作系统。

我认为你能读到的最好的东西是Process management from Wikipedia