이 가이드에는 워치 페이스 형식을 사용하여 시계 화면을 구성하는 데 필요한 도구에 관한 단계, 프로젝트 구조에 관한 몇 가지 제안사항, 해당 구조를 만드는 도구를 적용하는 단계별 안내가 포함되어 있습니다.
기본 요건
워치 페이스 형식을 사용하기 위한 개발 환경을 준비하려면 다음 설정 단계를 완료하세요.
- Android 13(API 수준 33) 이상용 SDK를 설치합니다. SDK에는
aapt2
및android.jar
를 비롯한 다른 필수 도구가 포함되어 있습니다. bundletool
명령줄 프로그램을 설치합니다.- 시계 화면 디자인이 포함된 앱의 디버그 버전에 서명합니다. Android 스튜디오에서 서명된 Android App Bundle을 생성하거나 디버그 빌드에 수동으로 서명할 수 있습니다.
프로젝트 구조
워치 페이스 형식을 사용하는 맞춤 시계 화면을 만들 때 맞춤 시계 화면 파일이 포함된 Android App Bundle은 Wear OS 앱 로직이 포함된 Android App Bundle과 완전히 분리되어야 합니다. Google Play를 비롯한 일부 앱 스토어에서는 Wear OS 로직과 맞춤 시계 화면을 둘 다 포함하는 Android App Bundle을 업로드할 수 없습니다.
시계 화면 번들 만들기
시계 화면 파일이 포함된 Android App Bundle을 만들려면 다음 섹션에 나온 단계를 완료하세요.
워치 페이스 형식 사용 선언
새 앱의 매니페스트 파일(AndroidManifest.xml
)에 워치 페이스 형식의 용도를 나타내는 애플리케이션 속성을 추가합니다.
<?xml version="1.0" encoding="utf-8" standalone="no"?> <manifest ...> <application ...> <property android:name="com.google.wear.watchface.format.version" android:value="1" /> </application> </manifest>
시계 화면 메타데이터 선언
앱의 res/xml
리소스 디렉터리에 watch_face_info.xml
이라는 새 파일을 만듭니다. 여기에서 시계 화면의 메타데이터를 정의합니다.
<?xml version="1.0" encoding="utf-8"?>
<WatchFaceInfo>
<!-- Only "Preview" is required. -->
<Preview value="@drawable/watch_face_preview" />
<Category value="CATEGORY_EMPTY" />
<AvailableInRetail value="true" />
<MultipleInstancesAllowed value="true" />
<Editable value="true" />
</WatchFaceInfo>
이 파일의 필드는 다음 세부정보를 나타냅니다.
Preview
- 시계 화면의 미리보기 이미지가 포함된 드로어블을 참조합니다.
Category
시계 화면의 카테고리를 정의합니다. 문자열이거나 문자열 참조(예:
@string/ref_name
)여야 합니다. 각 기기 제조업체는 고유한 시계 화면 카테고리 집합을 정의할 수 있습니다.기본값은
empty_category_meta
로, 이 시계 화면을 시계 화면 선택 도구 뷰 하단에 있는 다른 '빈 카테고리' 시계 화면과 함께 그룹화합니다.AvailableInRetail
기기의 소매 데모 모드에서 시계 화면을 사용할 수 있는지 여부입니다. 불리언 값이거나 불리언 값 참조(예:
@bool/watch_face_available_in_retail
)여야 합니다.기본값은
false
입니다.MultipleInstancesAllowed
시계 화면에 즐겨찾기가 여러 개 있을 수 있는지 여부입니다. 불리언 값이거나 불리언 값 참조(예:
@bool/watch_face_multiple_instances_allowed
)여야 합니다.기본값은
false
입니다.Editable
시계 화면을 수정할 수 있는지 여부입니다. 즉, 시계 화면에 설정 또는 하나 이상의 고정되지 않은 정보 표시가 있습니다. 즐겨찾기 목록에서 시계 화면의 수정 버튼을 표시하거나 숨기는 데 사용됩니다.
기본값은 false입니다.
시계 화면 이름 선언
앱의 매니페스트 파일(AndroidManifest.xml
)에서 android:label
속성을 시계 화면의 이름으로 설정합니다.
<application android:label="@string/watch_face_name" >
시계 화면 모양 지원 선언
앱의 res/xml
리소스 디렉터리에서, 지원되는 시계 화면 모양 집합을 선언합니다.
<WatchFaces>
<!-- The default shape is "CIRCLE". -->
<WatchFace shape="CIRCLE" width="300" height="300"
file="@raw/watchface"/>
<WatchFace shape="CIRCLE" width="450" height="450"
file="@raw/watchface_large_circle"/>
<WatchFace shape="RECTANGLE" width="380" height="400"
file="@raw/watchface_rectangle"/>
</WatchFaces>
시계 화면 세부정보 선언
앱의 res/raw
리소스 디렉터리에서 시계 화면 모양 지원을 선언할 때 사용되는 file
속성 값에 상응하는 파일을 만듭니다. 여기에서 시계 화면 모양과 각 시계 화면 모양의 동작을 정의합니다.
이 페이지의 예를 사용하면 원시 XML 파일은 다음과 같습니다.
res/raw/watchface.xml
res/raw/watchface_large_circle.xml
res/raw/watchface_rectangle.xml
루트 요소는 항상 WatchFace
입니다.
<WatchFace width="450" height="450" shape="CIRCLE">
<!-- Remainder of your Watch Face Format definition here. -->
<!-- If this file defines a watch face for a circular device shape, place
resources used in this file in the "/res/drawable-nodpi" directory. -->
<!-- If this file defines a watch face for a rectangular or other
non-circular shape, place resources ued in this file in the
"/res/drawable-notround-nodpi" directory. -->
</WatchFace>
시계 화면 게시자 식별(선택사항)
필요한 경우 앱의 매니페스트 파일에서 시계 화면의 게시자 또는 사용 중인 도구 이름과 버전을 식별하는 데 사용할 수 있는 임의의 문자열을 선언하세요.
<application ...> ... <property android:name="com.google.wear.watchface.format.publisher" android:value="{toolName}-{toolVersion}" /> </application>
시계 화면의 App Bundle 빌드
시계 화면이 포함된 Android App Bundle을 빌드하려면 bundletool
을 사용하세요. bundletool
을 사용하여 앱을 빌드하는 방법을 자세히 알아보세요.
게시를 위해 App Bundle을 준비하는 방법은 GitHub 샘플과 Google Play에 제출하기 전에 정확성을 확인하는 검사기 도구를 참고하세요.
추천 서비스
- 참고: JavaScript가 사용 중지되어 있으면 링크 텍스트가 표시됩니다.
- 최근에 사용한 앱 및 다시 사용한 앱에 표시
- 스플래시 화면 추가
- 카드와 상호작용