モジュラー システム コンポーネント

Android 10 以降では、一部の Android システム コンポーネントをモジュール化しており、Android の通常のリリース サイクル以外で更新できます。エンドユーザー デバイスは、Google Play ストアのインフラストラクチャまたはパートナーが提供する無線(OTA)メカニズムを使用して、モジュール化されたシステム コンポーネントのアップデートを受信できます。

モジュラー システム コンポーネントについて

Google と Android のパートナーは、モジュラー システム コンポーネントを使用して、エンドユーザー デバイスに対し、非公開の形で広範囲、迅速、かつシームレスにアップデートを配布できます。たとえば、メディア コーデックの断片化と致命的なバグが重なると、アプリの利用率とユーザー エンゲージメントが著しく低下する可能性があります。メディア関連のモジュールを頻繁に更新すると、コーデックの断片化が緩和されます。さまざまな Android デバイス間でメディアアプリが安定して動作するようになり、重大なバグが修正されてユーザーの信頼を構築できます。

Android 12 の更新

新しいモジュール

既存のモジュールの更新

次に、Android 12 リリースのモジュール固有の変更について説明します。

モジュール 変更
adbd モジュールの境界を更新しました。
DocumentsUI ファイル ブラウジングを無効にしました。
ExtServices
  • DisplayHashingService を追加しました。
  • モジュールの境界を更新しました。
メディア 新しいメディア コンポーネントを追加しました。
NNAPI Runtime モジュールの境界を更新しました。
PermissionController
  • PermissionController モジュールを完全にモジュール化しました。
  • モジュールの境界を更新しました。
SDK Extensions
  • モジュールの責任を更新しました。
  • 新しいコンポーネントを追加しました。
Statsd モジュールの境界を更新しました。
Tethering
  • 機能を追加しました。
  • モジュールの境界を更新しました。
Time Zone Data パッケージ形式を更新しました。
Wi-Fi モジュールの境界を更新しました。

アーキテクチャ

Android 10 以降では、特定のシステム コンポーネントがモジュールに変換されています。一部のモジュールは APEX コンテナ形式(Android 10 で導入)を使用し、その他のモジュールは APK 形式を使用します。モジュラー アーキテクチャにより、下位レベルのベンダー実装や上位レベルのアプリとサービスに影響を与えることなく、システム コンポーネントを随時更新して、重大なバグの修正やその他の改善を行うことができます。

モジュラー システム コンポーネント

図 1. モジュール化されたシステム コンポーネント

モジュール アップデートでは、新しい API は導入されません。互換性テストスイート(CTS)で保証されている SDK と System API のみを使用します。相互に対する通信のみを行い、安定版の C API または安定版の AIDL インターフェースのみを使用します。

更新されたモジュラー システム コンポーネントをまとめてパッケージ化し、Google(Google Play ストア インフラストラクチャを使用)または Android パートナー(パートナーが提供する OTA メカニズムを使用)を通じてエンドユーザー デバイスにプッシュできます。モジュール パッケージは「アトミック」にインストールされ、ロールバックされます。つまり、更新が必要なモジュールがすべて更新されるか、またはすべて更新されません。たとえば、なんらかの理由で更新できないモジュールがある場合は、パッケージ内のどのモジュールもデバイスにインストールされません。

利用可能なモジュール

Android には次のモジュールが含まれています。

モジュール名 パッケージ名 タイプ 導入されたリリース
adbd com.android.adbd APEX Android 11
ART com.android.art APEX Android 12
Captive Portal Login com.android.captiveportallogin APK Android 10
CellBroadcast com.android.cellbroadcast APEX Android 11
Conscrypt com.android.conscrypt APEX Android 10
Device Scheduling com.android.scheduling APEX Android 12
DNS Resolver com.android.resolv APEX Android 10
DocumentsUI com.android.documentsui APK Android 10
ExtServices com.android.ext.services APK(Android 10)
APEX(Android 11)
Android 10
IPsec/IKEv2 Library com.android.ipsec APEX Android 11
Media Codecs com.android.media.swcodec APEX Android 10
Media com.android.media APEX Android 10(extractor、MediaSession API)
Android 11(MediaParser API)
MediaProvider com.android.mediaprovider APEX Android 11
ModuleMetadata com.android.modulemetadata APK Android 10
Network Stack Permission Configuration com.android.networkstack.permissionconfig APK Android 10
Network Components com.android.networkstack APK Android 10
NNAPI Runtime com.android.neuralnetworks APK Android 11
PermissionController com.android.permissioncontroller APK Android 10
SDK Extensions com.android.sdkext APEX Android 11
Statsd com.android.os.statsd APEX Android 11
Tethering com.android.tethering APK Android 11
Time Zone Data com.android.tzdata APEX Android 10
Wi-Fi com.android.wifi.apex APEX Android 11