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 イベントを使用して、メモリ プレッシャー レベルに関する通知を取得します。

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

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

タスク スナップショット

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

ログ先行書き込み

Android 9 では、SQLiteDatabase の特別なモードである互換性 WAL(ログ先行書き込み)が導入されています。これにより、データベースあたり最大 1 つの接続を維持しながら、データベースで journal_mode=WAL を使用できます。