Android 10 以降では、一部の Android システム コンポーネントをモジュール化しており、Android の通常のリリース サイクル以外で更新できます。エンドユーザー デバイスは、Google Play ストアのインフラストラクチャまたはパートナーが提供する無線(OTA)メカニズムを使用して、モジュール化されたシステム コンポーネントのアップデートを受信できます。
モジュラー システム コンポーネントについて
Google と Android のパートナーは、モジュラー システム コンポーネントを使用して、エンドユーザー デバイスに対し、非公開の形で広範囲、迅速、かつシームレスにアップデートを配布できます。たとえば、メディア コーデックの断片化と致命的なバグが重なると、アプリの利用率とユーザー エンゲージメントが著しく低下する可能性があります。メディア関連のモジュールを頻繁に更新すると、コーデックの断片化が緩和されます。さまざまな Android デバイス間でメディアアプリが安定して動作するようになり、重大なバグが修正されてユーザーの信頼を構築できます。
Android 12 の更新
新しいモジュール
既存のモジュールの更新
次に、Android 12 リリースのモジュール固有の変更について説明します。
モジュール | 変更 |
---|---|
adbd | モジュールの境界を更新しました。 |
DocumentsUI | ファイル ブラウジングを無効にしました。 |
ExtServices |
|
メディア | 新しいメディア コンポーネントを追加しました。 |
NNAPI Runtime | モジュールの境界を更新しました。 |
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 |