ニュース

ランタイム更新をモジュール化、「Android 12」以降なら古いデバイスでもセキュリティ・パフォーマンスで恩恵

「Google Play」のシステムアップデートで配信

公式ブログ「Android Developers Blog:」

 米Googleは8月21日(現地時間)、「Android Runtime」(ART)アップデートの改善を発表した。OSとランタイムのアップデートシステムを切り離し、古いOSからアップデートできないデバイスに対しても、パフォーマンスの改善や最新のセキュリティ修正を迅速に提供していくという。

 Android OSはデバイスメーカーがカスタマイズ可能で、アップデートの責任はデバイスメーカーが負う。しかし、すべてのメーカーがOSのアップデートやセキュリティパッチを迅速に提供できているわけではない。時代遅れで、セキュリティの低いまま放置されているデバイスが少なくないのが現状だ。

 そこで同社はOSをモジュール化し、更新できる部分だけでも更新できるようにする取り組みを進めてきた。

 Android OSは元々モノリシック(一枚岩)なアップデートを前提に設計されており、一部分だけを更新するといった運用は想定されていなかった。そこでOSとランタイムの依存関係を解きほぐし、両者を明確に定義し、APIの境界を設け、テスト可能にするといった作業が行われてきたわけだ。こうした作業は言うほど簡単ではなく、互換性を壊さずに行うのは至難の業だ。

 しかしその結果、「ART」のアップデートは「Google Play」のシステムアップデートを介して実施できるようになった。エコシステムパートナーからの追加作業もほとんど不要になっているという。

 「ART」はAndroid OSを支えるエンジンで、どのメーカーのAndroidデバイスでも共通だ。OSとアプリの橋渡しだけでなく、「Java」や「Kotlin」で書かれたコードも「ART」によってバイトコードにコンパイルされる。

 そのため、「ART」アップデートをモジュール化することで、OSのアップグレードなしに「OpenJDK」で行われたパフォーマンス改善、セキュリティ修正、コンパイラー最適化などを迅速にユーザーへ届けることができるようになった。

 また、開発者側にとっても、ユーザー環境にかかわらず最新の言語機能を利用できるというメリットがある。「ART 13」では「OpenJDK 11」のコア言語機能が提供されていたが、これはAndroidで史上最速の採用であるという。ちなみに、次期バージョンの「ART 14」では「OpenJDK 17」がサポートされる。コードサイズを削減しつつパフォーマンスを向上させる新しいコンパイラーおよびランタイムの最適化も含まれるとのこと。

「ART 13」では更新プログラムのランタイムとコンパイラー最適化により、一部のデバイスでアプリの起動が最大30&向上

 同社の開発チームは毎日1,800万以上のAPKをコンパイルし、アプリの互換性や起動・メモリパフォーマンスをテストしているとのこと。すべてのコンパイルモード、すべてのガベージコレクターアルゴリズム、サポートされるOSバージョンでこれらのテストをパスすれば、「ART 14」が段階的にリリースされるという。

「ART APEX」モジュールのテストとリリース工程