Androidアプリ開発でよく用いられているJavaやKotlinは、アプリケーションの開発には適しているものの、OSの下位層における開発では、CやC++、Rustといったシステムプログラミング言語が必要となる。 これらのシステムプログラミング言語は、低レベルのシステムリソースとハードウェアへのアクセスが可能で、より少ないリソースで、より予測可能なパフォーマンス特性を備える一方で、CとC++ではメモリの有効期間を管理する必要があり、とりわけ複雑なマルチスレッドのコードベースでは、誤りを犯しやすい。 しかし、Rustならコンパイル時のチェックでオブジェクトの存続期間/所有権を制限し、ランタイムチェックでメモリアクセスが有効であることを確認するという組み合わせで、メモリの安全性を保証している。 また、コードがC/C++で記述されており、信頼できない入力を解析する場合、Androidでは厳しく制