Androidプラットフォームのコードの正確さは、各Androidリリースのセキュリティ、安定性、品質の観点から最も重要な側面です。 CおよびC ++コードで見つかったメモリ安全性のバグは、依然としてクリーンアップが最も困難です。 Googleは、この種のバグを検出して排除し、それらからの害を減らし、Androidリリースのバグをできるだけ少なくするように、多大な努力とリソースを費やしています。ただし、これらすべての対策にもかかわらず、メモリの安全性に関連するバグが安定性の問題の主な原因であり続けています。これらは常に、 Androidの最も深刻な脆弱性の約70%を占めています。
継続的 かつ 計画的 メモリのバグ検出を改善するための努力、Googleはまた、それらを防止するための取り組みを強化しています。メモリセーフ言語は、この問題を解決するための最も効率的で費用効果の高い手段です。Androidオープンソースプロジェクト(AOSP)は、オペレーティングシステム自体を開発するために、メモリセーフなJavaおよびKotlin言語であるRustをサポートするようになりました。
システムプログラミング
JavaやKotlinなどのマネージド言語は、Androidアプリケーションの開発に最適です。これらの言語は、使いやすさ、移植性、セキュリティを念頭に置いて設計されています。Androidランタイム(ART) は、開発者が指定したとおりにメモリを管理します。 AndroidオペレーティングシステムはJavaを広範囲に使用し、Androidプラットフォームの大部分をメモリのバグから効果的に保護します。残念ながら、Android OSのレベルが低い場合、JavaとKotlinは無力です。
, C, C++ Rust. . . , .
C C++ . , , .
Rust , , , . , , C C++.
C C++ , Rust, . Android , , , . : , .
Android , , C/C++ , . , , . – ; , , . , , .
, , , Rust, :
, .
, , .
C++?
, , C/C++.
, ( ) , Android , C/C++. , , 50% .
, , , . , , , , , . , .
, , , . , .
Rust , :
– .
-
– (., , ).
– . , . , C++ const, . , Rust , , .
– Result, , . Rage Against the Cage, - . ? Result , Rust , .
– , . , Android 3-5% , . Android 11, , C/C++. , , , , . Rust , . . Clang C/C++, Rust , .
– Rust , wrapping_add, , saturating_add – . Android. , : .
Android – . , , , . . . Google.