The Watch Face Format is required for watch faces to be installed on devices with Wear OS 5 or later pre-installed and for all new watch faces published on Google Play.
Starting in January 2026, the Watch Face Format will be required for watch faces to be installed on all Wear OS devices.
Learn more about the user-facing changes in this Help Center article.
ハードウェア アクセラレーションでウォッチフェイスのパフォーマンスを改善する
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
標準ビューを使用する Wear OS アプリでは、自動のハードウェア アクセラレーションによるグラフィック レンダリングが活用されています。ただし、ウォッチフェイスは通常、キャンバスを使用して実装されるため、ハードウェア アクセラレーションが自動的に適用されるわけではありません。
ウォッチフェイスでハードウェア アクセラレーション キャンバスを使用する理由
ほとんどの場合、ハードウェア アクセラレーション キャンバスを使用すると、ウォッチフェイスがより高いフレームレートでレンダリングされます。フレームレートを高い値に設定すると、アニメーションと遷移が滑らかに表示され、ユーザー エクスペリエンスが向上します。
ハードウェア アクセラレーション キャンバスを使用すると、ウォッチフェイスに関するその他の UI のパフォーマンス データにもアクセスできます。たとえば、UI パフォーマンスを測定するで説明されている詳細なフレーム情報には、ハードウェア アクセラレーション キャンバスを使用している場合にのみアクセスできます。
ウォッチフェイスがハードウェア アクセラレーションを使用しているかどうかを確認する
ウォッチフェイスがハードウェア アクセラレーションを使用しているかどうかは、開発者向けオプションまたは adb
を使用して確認できます。
開発者向けオプションを使用して確認する
開発者向けオプションを使用してウォッチフェイスがハードウェア アクセラレーションを使用しているかどうかを確認する手順は次のとおりです。
- Wear OS デバイスで、[設定] > [開発者向けオプション] に移動します。
[GPU プロファイリングをデバッグ] を有効にします。
このオプションは、表示可能なサーフェスの上にオーバーレイを描画し(サーフェスごとに 1 つ)、対象サーフェスの GPU レンダリングの各ステージで費やされた時間を表示します。
デバイスで、ウォッチフェイスに戻ります。
ウォッチフェイスがハードウェア アクセラレーション キャンバスを使用している場合は、ウォッチフェイスのレンダリングされたフレームごとに、右から左に移動する新しいバーが表示されます。
adb を使用して確認する
adb
を使用してウォッチフェイスがハードウェア アクセラレーションを使用しているかどうかを確認する手順は次のとおりです。
- Wear OS デバイスで、ウォッチフェイスをテスト対象のウォッチフェイスに変更します。
- インタラクティブ モードでウォッチフェイスを数秒間実行します。
次の adb
コマンドを実行して、ウォッチフェイスがハードウェア アクセラレーションを使用しているかどうかを確認します。
adb shell dumpsys gfxinfo [package-name]
コマンドを実行すると、次の例のような出力が表示されます。
Applications Graphics Acceleration Info:
Uptime: 2239933 Realtime: 13568751
** Graphics info for pid 1100 [package-name] **
Stats since: 59875589194ns
Total frames rendered: 1213
Janky frames: 0 (0.00%)
50th percentile: 7ms
90th percentile: 18ms
95th percentile: 25ms
99th percentile: 150ms
Number Missed Vsync: 0
Number High input latency: 0
Number Slow UI thread: 0
Number Slow bitmap uploads: 0
Number Slow issue draw commands: 0
Number Frame deadline missed: 0
...
このサンプル出力に、Total frames rendered
という行があります。通常、出力に表示されているレンダリングされたフレームの合計が 0 より大きい場合、ウォッチフェイスはアクセラレーション キャンバスを使用しています。それ以外の場合、レンダリングされたフレームの合計とレポートの他のフレームデータは通常 0 になります。
ただし、gfxinfo
はアプリのフルパッケージに対して出力されるため、ハードウェア アクセラレーション キャンバス以外(アプリが構成画面に使用する Activity
など)からフレーム時間情報が表示される場合があります。違いを見分けるには、ウォッチフェイスが表示可能な唯一のサーフェスであることを確認してから、adb shell dumpsys gfxinfo
コマンドを再実行して、Total frames rendered
の値が増加するかどうかを確認します。
おすすめの方法
ユーザーに可能な限り最適なエクスペリエンスを提供するには、以下のおすすめの方法に従ってください。
バッテリーの駆動時間を最大限に延ばす
ウォッチフェイスのアニメーションが長時間実行されている場合は、ハードウェア アクセラレーションを使用すると、デバイスのバッテリー駆動時間が大幅に短くなる可能性があります。ウォッチフェイスがフレームごとに描画しようとすると、この問題がさらに悪化する可能性があります。ユーザーに悪影響を与えないようにするため、ウォッチフェイスでは長時間実行されるアニメーションを使用しないでください。このガイドラインはハードウェア アクセラレーションの使用に特化しているわけではありませんが、ハードウェア アクセラレーションを使用すると描画可能なフレーム数が増加するため、準拠することがさらに重要になっています。詳細については、アニメーションに関するおすすめの方法をご覧ください。
サポートされている描画オペレーションを使用する
一部の描画オペレーションは、ハードウェア アクセラレーションを使用している場合にサポートされません。サポートされているものについては、ハードウェア アクセラレーションをご覧ください。サポートされていないオペレーションを使用する小さなコードパスがある場合は、ビットマップを使用するキャンバスを作成してから、canvas.drawBitmap()
を使用してビットマップをウォッチフェイスのキャンバスに描画できます。
ハードウェア アクセラレーションを使用する際に互換性を維持する
ハードウェア アクセラレーションは、Android 9(API レベル 28)以降を搭載した Wear OS デバイスで利用できます。ハードウェア アクセラレーションが利用できない古いデバイスで特定の描画オペレーションを回避する方法、ハードウェア アクセラレーション キャンバスでサポートされていない描画オペレーションを回避する方法については、Canvas.isHardwareAccelerated()
で代替機能をご確認ください。
あなたへのおすすめ
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-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-07-27 UTC。"],[],[],null,["# Improve your watch face performance with hardware acceleration\n\nWear OS apps that use standard views benefit from automatic hardware-accelerated\ngraphics rendering. But watch faces are usually implemented using\ncanvases, so they don't automatically get hardware acceleration.\n\nWhy use a hardware-accelerated canvas for your watch face?\n----------------------------------------------------------\n\nIn most cases, your watch face renders at a higher frame rate when using a\nhardware-accelerated canvas. At higher frame rates, animations and transitions\nappear smoother to the eye, providing a better user experience.\n\nWhen you use a hardware-accelerated canvas, you can also access more UI\nperformance data about your watch face. For example, you can only access the\ndetailed frame information described in [Measure UI\nperformance](/topic/performance/overview)\nwhen you are using a hardware-accelerated canvas.\n\nIs my watch face using hardware acceleration?\n---------------------------------------------\n\nYou can check whether your watch face is using hardware acceleration\nusing either the developer options or `adb`.\n\n### Check using developer options\n\nTo use developer options to check whether your watch face is using hardware acceleration,\nfollow these steps:\n\n1. On a Wear OS device, navigate to **Settings** \\\u003e **Developer options**.\n2. Enable **Debug GPU profiling**.\n\n This option draws an overlay on top of visible surfaces, one on each surface,\n to show the amount of time spent in each stage of GPU rendering for that\n surface.\n3. On the device, navigate back to your watch face.\n\n4. If your watch face uses a hardware-accelerated canvas, you see a new bar\n that moves from right to left for each rendered frame of your watch face.\n\n### Check using adb\n\nTo use `adb` to check whether your watch face is using hardware acceleration,\nfollow these steps:\n\n1. On a Wear OS device, change the watch face to your watch face that you want to test.\n2. Let the watch face run for a few seconds in interactive mode.\n3. Run the following `adb` command to check whether your watch face is using\n hardware acceleration:\n\n `adb shell dumpsys gfxinfo `\u003cvar translate=\"no\"\u003e[package-name]\u003c/var\u003e\n\nAfter running the command, you get output similar to the following\nexample: \n\n```\nApplications Graphics Acceleration Info:\nUptime: 2239933 Realtime: 13568751\n\n** Graphics info for pid 1100 [package-name] **\n\nStats since: 59875589194ns\nTotal frames rendered: 1213\nJanky frames: 0 (0.00%)\n50th percentile: 7ms\n90th percentile: 18ms\n95th percentile: 25ms\n99th percentile: 150ms\nNumber Missed Vsync: 0\nNumber High input latency: 0\nNumber Slow UI thread: 0\nNumber Slow bitmap uploads: 0\nNumber Slow issue draw commands: 0\nNumber Frame deadline missed: 0\n\n...\n```\n\nIn this sample output, notice the line reading `Total frames rendered`.\nGenerally, if your output shows total frames rendered greater than 0, then your\nwatch face uses an accelerated canvas. Otherwise the total frames rendered\nand other frame data in the report is normally 0.\n\nHowever, because the `gfxinfo` is output for your app's full package, you might\nsee some frame time information from something other than a hardware-accelerated\ncanvas, such as an `Activity` that your app uses for a configuration screen. To\ntell the difference, make sure that your watch face is the only surface that is\nvisible and then rerun the `adb shell dumpsys gfxinfo` command to check whether\nthe value for `Total frames rendered` increases.\n\nBest practices\n--------------\n\nFollow these best practices to ensure the best possible experience for your\nusers.\n\n### Maximize battery life\n\nIf your watch face has long-running animations, using hardware acceleration can\ngreatly lower the battery life of a device. This problem can get worse if\nyour watch face tries to draw in every frame. To avoid negatively impacting your\nusers, don't use long-running animations in your watch face. This\nguideline is not specific to using hardware acceleration, but because using\nhardware acceleration increases the number of frames you're able to draw, it is\neven more important to follow. For more information, see [Best practices for\nanimations](/training/wearables/watch-faces/performance#Animations).\n\n### Use supported drawing operations\n\nSome drawing operations are are not supported when using hardware acceleration.\nFor information on what is supported, see [Hardware\nacceleration](/topic/performance/hardware-accel#drawing-support).\nIf you have a small code path that uses an unsupported operation, you can create\na bitmap-backed canvas and then draw that bitmap into the watch face's canvas\nusing\n[`canvas.drawBitmap()`](/reference/android/graphics/Canvas#drawBitmap(android.graphics.Bitmap,%20android.graphics.Rect,%20android.graphics.RectF,%20android.graphics.Paint)).\n\n### Maintain compatibility when using hardware acceleration\n\nHardware acceleration is available on Wear OS devices that run Android 9 (API\nlevel 28) or higher. If you want to avoid a specific draw operation on older\ndevices, where hardware acceleration is not available, or an unsupported draw\noperation on a hardware accelerated canvas, you can check [`Canvas.isHardwareAccelerated()`](/reference/android/graphics/Canvas#isHardwareAccelerated()),\nthen provide the alternative functionality.\n\nRecommended for you\n-------------------\n\n- Note: link text is displayed when JavaScript is off\n- [dumpsys](/tools/dumpsys)\n- [Slow rendering](/topic/performance/vitals/render)\n- [Device compatibility mode](/guide/practices/device-compatibility-mode)"]]