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 프로파일링 디버그를 사용 설정합니다.
이 옵션은 표시되는 노출 영역 위에 오버레이를 그려서(노출 영역당 하나씩) 해당 노출 영역의 각 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()
를 확인하고 대체 기능을 제공합니다.
추천 서비스
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 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)"]]