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
になったことを確認できます。
インストール時に最適化が行われる状況については、ベースライン プロファイルをサイドローディングするをご覧ください。
あなたへのおすすめ
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-08-27 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-08-27 UTC。"],[],[],null,["Performance on Wear OS is an essential app consideration, as many Wear OS\ndevices have limited CPU and GPU resources compared to larger mobile devices.\nYou can use your knowledge from [Jetpack Compose](/jetpack/compose/performance) to configure and develop\nyour app to improve performance with Compose for Wear OS, as many of the\ntechniques are similar. However, it's important to understand how to test your\napp's performance on Wear OS.\n\nTo better understand performance concepts, watch\n[Performance best practices](https://www.youtube.com/watch?v=EOQB8PTLkpY) and\n[Create beautiful, power efficient apps for Wear OS](https://www.youtube.com/watch?v=jpUVamtoKOs&t=1052s) on YouTube.\n\nTechniques to improve performance\n\nTo accurately understand your app's performance, try running your app in\n[release mode](/studio/run#changing-variant). Debug mode is useful for spotting lots of problems, but it\nimposes a significant performance cost, and can make it hard to spot other code\nissues that might be hurting performance. In addition, debug mode does not use\nbaseline profiles, which can further deteriorate performance. You should also\nuse the [R8 compiler](/studio/build/shrink-code) to shrink and optimize your app. For more information\non removing unused resources, see [Shrink your resources](/studio/build/shrink-code#shrink-resources).\n\nFamiliarize yourself with [Android Studio tools](/jetpack/compose/tooling)\nincluding Live Edit, Composable Preview, and Wear OS emulator. This can reduce\nthe amount of time spent debugging your app on a watch, which can improve your\nproductivity. Android Studio ships with a watch AVD. Test with Compose Previews\nand Live Edit until your app is largely working as expected, then test on a\ndevice for an accurate reflection of your app's performance.\n\nUse the [JankStats library](/topic/performance/jankstats) to track and analyze\nperformance problems in your applications. For an example, see the\n[JankStats sample](https://github.com/android/performance-samples/tree/main/JankStatsSample) on GitHub.\n\nUse a baseline profile\n\n[Use a baseline profile](/jetpack/compose/performance#use-baseline) to improve your app's performance by defining\nclasses and methods needed on critical user journeys. For an in depth guide on\nthis topic, see [Baseline profiles](/topic/performance/baselineprofiles). Each\nCompose for Wear OS library ships with its own profile rules. When your app\ndepends on a library, the library profile rules are automatically merged and\ndistributed with your app's APK and are compiled ahead of time on device. This\ncan reduce start-up times, cut down janky frames, and otherwise improve\nperformance.\n\nIf you choose to define your own profile for an app, verify that it does\nimprove performance by writing Macrobenchmark tests.\nFor an example, see\n[Performance samples](https://github.com/android/performance-samples/blob/main/MacrobenchmarkSample/baseBenchmarks/src/main/java/com/example/benchmark/macro/base/startup/StartupBenchmark.kt) on GitHub.\n\nBaseline profile commands\n\nThere are some useful commands you can use to help working with baseline\nprofiles. First, determine the status of your profile by running the\nfollowing: \n\n adb shell dumpsys package dexopt | grep -A 1 $PACKAGE_NAME\n\nIf the status is not `status=speed-profile`, the rules have not yet been applied\nto optimize the app.\n\nCompose for Wear OS profile rules are applied using a background job which runs\nwhen the device is charged and idle. You can manually trigger this by running\nthe following command after the app has been launched and enough time has passed\nto allow the profile-installer to bootstrap the profile in the background. This\ntypically takes around 40 seconds. \n\n adb shell cmd package bg-dexopt-job\n\nYou can then re-run the previous command to check that the status is now\n`speed-profile`.\n\nFor situations when the optimisation is performed at install, see\n[Sideload the baseline profile](/topic/performance/baselineprofiles#measuring-baseline).\n\nRecommended for you\n\n- Note: link text is displayed when JavaScript is off\n- [Overview of measuring app performance](/topic/performance/measuring-performance)"]]