Este guia inclui etapas sobre as ferramentas necessárias para configurar um mostrador de relógio usando o formato de mostrador do relógio, algumas sugestões sobre a estrutura do projeto e um guia detalhado para aplicar as ferramentas e criar essa estrutura.
Pré-requisitos
Para preparar seu ambiente de desenvolvimento para o uso do formato de mostrador do relógio, realize as seguintes etapas de configuração:
- Instale o SDK para o Android 13 (nível 33 da API) ou versões mais recentes. O SDK contém
outras ferramentas necessárias, incluindo
aapt2
eandroid.jar
. - Instale o programa de linha de comando
bundletool
. - Assine a versão de depuração do app que contém o design do mostrador do relógio. Você pode gerar um Android App Bundle assinado no Android Studio ou assinar o build de depuração manualmente.
Estrutura do projeto
Quando você cria um mostrador personalizado que usa o formato de mostrador do relógio, o Android App Bundle que inclui o arquivo de mostrador personalizado precisa ser completamente separado do Android App Bundle que contém a lógica do seu app para Wear OS. Algumas app stores, incluindo o Google Play, impedem que você faça upload de um Android App Bundle que inclua a lógica do Wear OS e um mostrador do relógio personalizado.
Criar pacote de mostrador do relógio
Para criar um Android App Bundle que tenha um arquivo de mostrador do relógio, siga as etapas mostradas nas seções a seguir.
Declarar o uso do formato de mostrador do relógio
No arquivo de manifesto do novo app (AndroidManifest.xml
), adicione uma propriedade
que indique o uso do formato do mostrador do relógio:
<?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>
Declarar metadados do mostrador do relógio
No diretório de recursos res/xml
do app, crie um novo arquivo chamado
watch_face_info.xml
. É nesse arquivo que você define os metadados do mostrador do relógio:
<?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>
Os campos do arquivo representam os seguintes detalhes:
Preview
- Faz referência ao drawable que contém uma imagem de visualização do mostrador do relógio.
Category
Define a categoria do mostrador do relógio. Precisa ser uma string ou uma referência a uma string, como
@string/ref_name
. Cada fabricante de dispositivo pode definir o próprio conjunto de categorias de mostradores de relógio.Valor padrão:
empty_category_meta
, que agrupa esse mostrador do relógio com outros mostradores de "categoria vazia" na parte inferior da visualização do seletor.AvailableInRetail
Indica se o mostrador do relógio está disponível no modo de demonstração na loja do dispositivo. Precisa ser um valor booleano ou uma referência a um valor booleano, como
@bool/watch_face_available_in_retail
.Valor padrão:
false
MultipleInstancesAllowed
Indica se o mostrador do relógio pode ter vários favoritos. Precisa ser um valor booleano ou uma referência a um valor booleano, como
@bool/watch_face_multiple_instances_allowed
.Valor padrão:
false
Editable
Indica se o mostrador do relógio é editável, o que significa que ele tem uma configuração ou pelo menos uma complicação não fixa. Isso é usado para mostrar ou ocultar o botão Edit do mostrador do relógio na lista de favoritos.
Valor padrão: false
Declarar o nome do mostrador do relógio
No arquivo de manifesto do app (AndroidManifest.xml
), defina o atributo android:label
como o nome do mostrador do relógio:
<application android:label="@string/watch_face_name" >
Declarar suporte a formas do mostrador do relógio
No diretório de recursos res/xml
do app, declare o conjunto de formas
aceitas do mostrador do relógio:
<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>
Declarar detalhes do mostrador do relógio
No diretório de recursos res/raw
do app, crie arquivos correspondentes aos valores do atributo
file
usados ao declarar suporte a formas
de mostradores de relógio. É aqui que você define a aparência e o comportamento do mostrador do relógio
para cada formato.
Usando o exemplo desta página, os arquivos XML brutos seriam:
res/raw/watchface.xml
res/raw/watchface_large_circle.xml
res/raw/watchface_rectangle.xml
O elemento raiz é sempre 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>
Identificar o editor do mostrador do relógio (opcional)
Como opção, declare uma string arbitrária no arquivo de manifesto do seu app para identificar o editor do mostrador do relógio ou o nome e a versão da ferramenta que você está usando:
<application ...> ... <property android:name="com.google.wear.watchface.format.publisher" android:value="{toolName}-{toolVersion}" /> </application>
Criar o pacote de apps do mostrador do relógio
Para criar o Android App Bundle que contenha o mostrador do relógio, use o
bundletool
. Saiba mais sobre como criar um app usando o
bundletool
.
Consulte os exemplos do GitHub (link em inglês) sobre como preparar seu pacote de apps para publicação, além das ferramentas de validação para verificar a exatidão antes de enviar ao Google Play.
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado.
- Aparecer na seção "Recentes" e em "Retomar apps"
- Adicionar uma tela de apresentação
- Interagir com blocos