Wear OS 6에서는 고급 시계 화면 게시 사용 사례를 위한 기회를 제공하는 새로운 API인 워치 페이스 푸시를 도입합니다.
워치 페이스 푸시를 사용해야 하는 경우 파악
시계 화면 푸시는 Wear OS의 API로, 개발자가 시계 화면을 직접 추가, 업데이트 또는 삭제할 수 있습니다. 표준 시계 화면 개발에는 필요하지 않습니다.
워치 페이스 푸시와 함께 사용되는 시계 화면은 워치 페이스 형식을 사용하여 작성해야 합니다. 여기에는 시계 화면 스튜디오를 사용하여 디자인된 시계 화면이나 워치 페이스 형식을 사용하는 시계 화면을 생성하는 기타 도구가 포함될 수 있습니다.
Watch Face Push API는 여러 가지 방법으로 사용할 수 있지만 다음 표는 주요 사용 사례에 관한 가이드로 사용해야 합니다.
사용 사례 | 추천 해결책 | 복잡성 |
---|---|---|
개별 시계 화면을 만들어 게시하고 싶습니다. | 워치 페이스 형식을 직접 사용하거나 워치 페이스 스튜디오와 같은 도구를 통해 사용하고 Google Play에 게시합니다. | 낮음 |
사용자가 선별된 컬렉션에서 시계 화면을 선택하거나 Wear OS 시계에 직접 설치할 시계 화면을 디자인하고 맞춤설정할 수 있는 휴대전화 앱을 만들고 싶습니다. | 시계에서 시계 화면 푸시 API를 사용하여 시계와 휴대전화 모두를 위한 앱을 만듭니다. | 높음 |
목적
Watch Face Push API의 표준 사용 사례는 마켓플레이스 앱을 만드는 것입니다. 이 앱에서 사용자는 휴대전화의 선별된 컬렉션에서 시계 화면을 선택하고 연결된 시계에 이러한 시계 화면을 설치하는 것을 직접 제어할 수 있습니다.
고려사항
시계 화면 빌드에 관한 자세한 내용은 워치 페이스 형식 가이드를 참고하세요. 워치 페이스 푸시를 사용하여 배포된 시계 화면은 일반 워치 페이스 형식 시계 화면입니다.
시계 화면을 빌드할 때는 다음 사항을 고려하세요.
패키지 이름
워치 페이스 푸시를 사용하여 설치된 시계 화면은 다음 규칙을 준수해야 합니다.
<app name>.watchfacepush.<watchface name>
여기서 <app name>
은 워치 페이스 푸시 API를 호출하는 앱의 패키지 이름입니다.
예를 들어 패키지 이름이 com.example.mymarketplace
인 앱의 경우 다음은 유효한 시계 화면 패키지 이름입니다.
com.example.mymarketplace.watchfacepush.watchface1
com.example.mymarketplace.watchfacepush.watchface2
com.example.mymarketplace.watchfacepush.another_watchface
이 규칙을 준수하지 않는 시계 화면은 API에서 거부됩니다.
패키지 콘텐츠
APK 콘텐츠가 엄격하게 적용됩니다. 워치 페이스 형식이 다음 제약 조건을 준수하도록 주의해야 합니다. 무해한 메타데이터 파일 및 기타 아티팩트가 포함된 워치 페이스 형식 APK를 제작하는 것은 기술적으로 가능하며, 이러한 APK는 Google Play에서 허용될 수 있지만 워치 페이스 푸시 유효성 검사를 통과하지 못합니다 (아래 참고).
각 시계 화면 APK에서는 다음 파일/경로만 허용됩니다.
/AndroidManifest.xml
/resources.arsc
/res/**
/META-INF/**
또한 AndroidManifest.xml
파일에는 다음 태그만 허용됩니다.
<manifest>
<uses-feature>
<uses-sdk>
<application>
<property>
<meta-data>
마지막으로 패키지는 33
이상의 minSdk
를 지정해야 하며 <application>
태그는 android:hasCode="false"
속성을 지정해야 합니다.
유효성 검사
Google Play를 통해 배포되는 일반 시계 화면과 달리 각 시계 화면이 올바르게 형성되고 성능이 우수한지 확인하는 시계 화면 푸시 검사는 마켓플레이스 앱의 책임입니다.
Google Play에서는 시계 화면 푸시를 사용하는 각 시계 화면의 품질을 확인하기 위해 다음과 같은 유효성 검사를 사용합니다.
- 워치 페이스 푸시 API를 통해 설치되거나 업데이트되는 모든 시계 화면은 워치 페이스 푸시 유효성 검사 도구를 통과해야 합니다.
- API와 함께 사용할 유효성 검사 토큰을 생성하는 데는 공식 유효성 검사 도구만 사용할 수 있습니다.
- 사용되는 검증 도구는 검증을 실행할 때 최신 버전이어야 합니다.
변경되지 않은 APK는 다시 검증할 필요가 없습니다. 사용된 유효성 검사 도구의 버전이 대체되더라도 토큰은 만료되지 않습니다.
동시에 검사기가 주기적으로 업데이트되므로 한 번에 한 번씩 검사를 다시 실행하는 것이 좋습니다.
검사기 실행
시계 화면 APK에서 검사기를 실행하려면 다음 단계를 따르세요.
- Google의 Maven 저장소에서 검사기를 가져옵니다.
다음과 같이 도구를 실행합니다.
java -jar validator-push-cli-1.0.0-alpha01.jar \ --apk_path=youwatchface.apk \ --package_name=<your marketplace package name>
성공하면 시계 화면을 추가하거나 업데이트할 때 Watch Face Push API에 제공해야 하는 유효성 검사 토큰이 출력에 포함됩니다.
오류가 발생하면 실패한 특정 검사에 관한 세부정보가 출력에 포함됩니다.
검사기 CLI 도구를 Gradle 빌드에 통합하는 예는 GitHub의 시계 화면 푸시 샘플을 참고하세요.
APK 크기
시계 화면 푸시 시계 화면의 경우 APK 크기를 최소로 유지하는 데 특히 주의해야 합니다. 시계 화면 APK는 블루투스를 통해 휴대전화 앱에서 시계 앱으로 전송될 수 있으며, 이 과정에서 속도가 느려질 수 있습니다.
APK가 너무 크면 전송하는 데 상당한 시간이 걸릴 수 있으며, 이는 사용자 환경을 저하시키고 배터리를 소모합니다.
pngquant
와 같은 적절한 라이브러리를 사용하여 이미지 파일 크기를 최소로 유지합니다.- 시계 화면 컬렉션 빌드 프로세스에 포함
- 이미지의 크기가 사용될 크기에 적합한지 확인합니다.
- 주변 배경을 삭제할 수 있도록 이미지가 적절하게 잘렸는지 확인합니다.
- 글꼴 파일 크기 줄이기
- 예를 들어 시간을 표시하는 데만 특정 글꼴을 사용하는 경우
HH:MM
형식으로pyftsubset
와 같은 도구를 사용하여 필요한 글꼴만 포함되도록 글꼴 파일을 제한할 수 있습니다. 이렇게 하면 결과 글꼴 파일과 APK의 크기를 크게 줄일 수 있습니다. 다른 경우에는 이 블로그 게시물에서 글꼴 파일 크기 최소화에 관한 자세한 내용을 확인하세요.
- 예를 들어 시간을 표시하는 데만 특정 글꼴을 사용하는 경우
APK 크기를 최소로 유지하는 방법에 관한 추가 제안사항은 메모리 사용량 최적화 가이드를 참고하세요.
APK 서명
일반 APK와 마찬가지로 모든 시계 화면에는 서명이 필요합니다. 기본 앱에 사용된 키와 다른 키를 만들고 모든 시계 화면에 다른 키를 사용합니다.
아키텍처
시스템의 세 가지 기본 구성요소를 살펴보겠습니다.
- 클라우드 기반 저장소: 표준 Marketplace 앱에서는 시계 화면이 빌드되고 클라우드에 저장되므로 사용자가 바로 사용할 수 있습니다. 시계 화면은 다음과 같습니다.
- 일반 워치 페이스 형식 APK로 사전 빌드됨
- 각각 하나의 워치 페이스 형식 기반 시계 화면만 포함
- 시계 화면 푸시 유효성 검사 프로세스를 사용하여 유효성 검사를 거쳤으며 연결된 유효성 검사 토큰과 함께 저장됩니다.
- 필요할 때 휴대전화 앱에서 가져올 수 있습니다.
- 전화 앱: 전화 앱은 사용자가 시스템과 상호작용하는 기본적인 방법입니다. 이를 통해 다음 작업을 할 수 있습니다.
- 시계 화면 카탈로그 탐색 및 검색
- 시계에 시계 화면 설치 또는 교체하기
- 시계 앱: 시계 앱에는 일반적으로 중요한 사용자 인터페이스가 없을 수 있습니다. 이 API는 기본적으로 휴대전화 앱과 시계 화면 푸시 API 간의 다리 역할을 하며 다음과 같은 기능을 제공합니다.
- Watch Face Push API를 사용하여 시계 화면 설치/업데이트 또는 교체
- 필요한 권한 요청 및 사용자 메시지 표시
- 기본 시계 화면 제공
- 최소한의 시계 화면 캐시 제공
- 휴대전화-시계 통신: 휴대전화와 시계 앱 간의 통신은 전반적인 환경의 성공에 매우 중요합니다. 다음을 허용하는 Wear OS 데이터 영역 API를 사용하세요.
- 설치 감지: 기능과
CapabilityClient
를 사용하여 전화 앱은 시계 앱의 부재를 감지할 수 있으며 그 반대의 경우도 마찬가지입니다. 그런 다음 Play 스토어로 인텐트를 실행하여 누락된 폼 팩터를 설치할 수 있습니다. - 상태 관리:
DataClient
또는MessageClient
를 사용하면 휴대전화를 시계의 상태와 동기화할 수 있습니다. 예를 들어 휴대전화가 설정된 시계 화면을 인식하도록 할 수 있습니다. - APK 전송:
ChannelClient
또는MessageClient
를 사용하여 APK를 휴대전화에서 시계로 전송할 수 있습니다. - 원격 호출: 휴대전화는
Messageclient
를 사용하여 시계 화면을 설치하는 등 시계 화면 푸시 API를 호출하도록 시계에 지시할 수 있습니다.
- 설치 감지: 기능과
자세한 내용은 Data Layer API 안내를 참고하세요.