Wear OS での Compose のパフォーマンス

多くの Wear OS デバイスは大型のモバイル デバイスに比べて CPU と GPU のリソースが限られるため、Wear OS でのパフォーマンスは、アプリに関する検討を行ううえで不可欠な要素です。多くの手法が類似しているため、Jetpack Compose の知識を活用することで、Wear OS 向け Compose でのパフォーマンスが向上するようにアプリを構成、開発できます。ただし、Wear OS でのアプリのパフォーマンスをテストする方法について理解することが重要です。

パフォーマンスのコンセプトについて理解を深めるには、YouTube でパフォーマンスに関するベスト プラクティスWear OS 向けに電力効率の良い優れたアプリを作成する方法についての動画をご覧ください。

パフォーマンスを向上させる手法

アプリのパフォーマンスを正確に把握するために、アプリをリリースモードで実行してみましょう。デバッグモードは多くの問題を見つけるために役立ちますが、パフォーマンスに多大なコストがかかるため、パフォーマンスの低下につながる可能性のある他のコードの問題を特定することが困難になる場合があります。さらに、デバッグモードではベースライン プロファイルを使用しないため、パフォーマンスがさらに低下する可能性があります。また、R8 コンパイラを使用してアプリを圧縮し、最適化する必要もあります。未使用のリソースを削除する方法について詳しくは、リソースの圧縮をご覧ください。

ライブ編集、Compose プレビュー、Wear OS エミュレータを含め、Android Studio ツールに慣れておきましょう。スマートウォッチでのアプリのデバッグ時間を短縮できるため、生産性が向上します。Android Studio にはスマートウォッチ AVD が付属しています。アプリがほぼ期待どおりに動作するまで Compose プレビューとライブ編集でテストしてから、アプリのパフォーマンスが正確に反映されるかどうかをデバイスでテストしてください。

JankStats ライブラリを使用して、アプリのパフォーマンスの問題を追跡、分析します。例については、GitHub の JankStats のサンプルをご覧ください。

ベースライン プロファイルを使用する

ベースライン プロファイルを使用して、クリティカル ユーザー ジャーニーに必要なクラスとメソッドを定義することで、アプリのパフォーマンスを向上させます。このトピックの詳細なガイドについては、ベースライン プロファイルをご覧ください。Wear OS 向け Compose の各ライブラリには、それぞれプロファイル ルールが付属しています。アプリがライブラリに依存している場合、ライブラリ プロファイル ルールは自動的にアプリの APK と統合されて配布され、デバイス上で事前にコンパイルされます。これにより、起動時間の短縮や、ジャンクのあるフレームのカットなど、パフォーマンスを向上させることができます。

アプリの独自のプロファイルを定義する場合は、Macrobenchmark テストを作成してパフォーマンスの向上を確認します。例については、GitHub のパフォーマンスのサンプルをご覧ください。

ベースライン プロファイルのコマンド

ベースライン プロファイルを扱う際に役立つ便利なコマンドがいくつかあります。まず、次のコマンドを実行してプロファイルのステータスを確認します。

adb shell dumpsys package dexopt | grep -A 1 $PACKAGE_NAME

ステータスが status=speed-profile でない場合は、アプリを最適化するためのルールがまだ適用されていません。

Wear OS 向け Compose のプロファイル ルールは、デバイスが充電されてアイドル状態になっているときに実行されるバックグラウンド ジョブを使用して適用されます。これは、アプリが起動し、プロファイル インストーラがバックグラウンドでプロファイルをブートストラップするのに十分な時間が経過した後、次のコマンドを実行することで手動でトリガーできます。これには通常 40 秒ほどかかります。

adb shell cmd package bg-dexopt-job

その後、前のコマンドを再実行すると、ステータスが speed-profile になったことを確認できます。

インストール時に最適化が行われる状況については、ベースライン プロファイルをサイドローディングするをご覧ください。