0

我对安卓很陌生。我对android中的操作系统操作有疑问。

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

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

4

4 回答 4

1

应用基础

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

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

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

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

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

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

总结一下:

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

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

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

于 2013-01-15T11:26:50.233 回答
0

Android OS 正在为每个应用程序启动一个新的 dalvik 机器实例。Dalvik 是一种适用于 android 的 JVM。

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

同时,android OS 也在持续监视“dalvik machine”的所有实例。每当其中一个没有响应(在 5 或 10 秒内)时,Android 操作系统就会终止“dalvik 实例”并且应用程序崩溃,但其他正在运行的应用程序都不会受到影响,因为它们在其他 dalvik 实例中运行。

于 2013-01-15T11:20:16.767 回答
0

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

于 2013-01-15T11:21:47.927 回答
0

Android 在 Linux 上运行;现代 POSIX 兼容的操作系统。

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

于 2013-01-15T11:22:29.623 回答