アプリケーションの基礎から
デバイスにインストールされると、各Androidアプリケーションは独自のセキュリティサンドボックスに配置されます。
Androidオペレーティングシステムは、各アプリケーションが異なるユーザーであるマルチユーザーLinuxシステムです。
デフォルトでは、システムは各アプリケーションに一意のLinuxユーザーIDを割り当てます(IDはシステムによってのみ使用され、アプリケーションには認識されません)。システムは、アプリケーション内のすべてのファイルにアクセス許可を設定して、そのアプリケーションに割り当てられたユーザーIDのみがそれらのファイルにアクセスできるようにします。
各プロセスには独自の仮想マシン(VM)があるため、アプリケーションのコードは他のアプリケーションから分離して実行されます。
デフォルトでは、すべてのアプリケーションは独自のLinuxプロセスで実行されます。Androidは、アプリケーションのコンポーネントのいずれかを実行する必要があるときにプロセスを開始し、不要になったとき、またはシステムが他のアプリケーションのメモリを回復する必要があるときにプロセスをシャットダウンします。
このようにして、Androidシステムは最小特権の原則を実装します。つまり、各アプリケーションは、デフォルトでは、作業を実行するために必要なコンポーネントにのみアクセスでき、それ以上はアクセスできません。これにより、アプリケーションが許可されていないシステムの部分にアクセスできない、非常に安全な環境が作成されます。
総括する:
各アプリは、独自のIDと権限を持つ独自のユーザーであり、他のアプリから分離された独自のVMで実行されます。
したがって、アプリがクラッシュした場合、他のアプリは独自の完全に異なる仮想化コンテキストで実行されており、クラッシュしたアプリは影響を与えないため、このイベントを認識または気にする必要はありません(によって処理されるファイルなどのリソースを共有している場合を除く)開発者スキルとシステムレベルの例外処理の組み合わせ)。
これは、Androidでアプリの分離が維持される方法です。