Android のパフォーマンス最適化

Android デバイスでリソース使用量を最小限に抑え、パフォーマンスを最適化するには、このセクションの手順を実施します。また、Android を最大限に活用する作業の一環として、パフォーマンスの評価で説明した多くのテストとツールを利用します。

APK キャッシュ

このドキュメントでは、A/B パーティションをサポートするデバイスにプリロードされたアプリを迅速にインストールするための、APK キャッシュ ソリューションの設計について説明します。OEM は、新しい A/B パーティション デバイスのほとんど空の B パーティションに保存された APK キャッシュに、プリロードと一般的なアプリを配置できます。その際ユーザー向けのデータスペースに影響が生じることはありません。

起動時間

Android 8.0 では、さまざまなコンポーネントで複数の改善がサポートされており、起動時間を短縮できます。このドキュメントでは、特定の Android デバイスの起動時間を改善するためのパートナー ガイダンスを提供します。

ヘルス

Android 9 には、health@1.0 HAL からのメジャー バージョン アップグレードである android.hardware.health HAL 2.0 が含まれています。この新しい HAL は、フレームワークとベンダーコードをより明確に分離し、ヘルス情報レポートをベンダーがカスタマイズする自由度を高め、電池だけでなくデバイスのヘルス情報を提供します。

lowmemorykiller

ユーザー空間の lmkd プロセスは同じ機能を実装していますが、メモリ プレッシャーを検出して推定するために既存のカーネル メカニズムを使用します。カーネルによって生成された vmpressure イベントを使用して、メモリ プレッシャー レベルに関する通知を取得します。

低 RAM

Android は、最小で 512 MB の RAM を搭載したデバイスをサポートします。このドキュメントは、OEM が低メモリデバイス向けに Android の最適化と設定を行うのに役立ちます。

プロファイルに基づく最適化

Android ビルドシステムは、ブループリント ビルドルールを持つネイティブ Android モジュールで、Clang のプロファイルに基づく最適化(PGO)を使用できます。

タスク スナップショット

タスク スナップショットは Android O で導入されたインフラストラクチャで、Recents Thumbnails のスクリーンショットとウィンドウ マネージャーの Saved Surfaces を組み合わせます。Recents Thumbnails は、Recents ビュー内のタスクの最後の状態を表します。

ログ先行書き込み

Android 9 には、互換性 WAL という SQLiteDatabase の特別なモードが導入されています。これにより、データベースごとに最大 1 つの接続を維持する動作を保ちつつ、データベースで journal_mode=WAL を使用できます。