Configurazione del formato per il quadrante dell'orologio

Questa guida include i passaggi relativi agli strumenti necessari per configurare un quadrante utilizzando il formato Watch Face, alcuni suggerimenti sulla struttura del progetto e una guida passo passo per applicare gli strumenti per creare questa struttura.

Prerequisiti

Per preparare l'ambiente di sviluppo per l'utilizzo del formato del quadrante, completa i seguenti passaggi di configurazione:

  1. Installa l'SDK per Android 14 (livello API 34) o versioni successive. Se il quadrante non si basa su funzionalità o comportamenti specifici della versione 2, puoi installare invece l'SDK per Android 13 (livello API 33).

    L'SDK contiene altri strumenti necessari, tra cui aapt2 e android.jar.

  2. In alternativa, installa Android Studio, che può fornire anche questi strumenti.

Struttura del progetto

Quando crei un quadrante personalizzato che utilizza il formato Watch Face, l'Android App Bundle che include il file del quadrante personalizzato deve essere completamente separato dall'Android App Bundle che contiene la logica della tua app per Wear OS. Alcuni store di app, tra cui Google Play, impediscono di caricare un app bundle Android che includa sia la logica Wear OS sia un quadrante personalizzato.

Crea bundle di quadranti

Per creare un app bundle per Android che includa un file del quadrante, completa i passaggi descritti nelle sezioni seguenti.

Dichiarare l'utilizzo di Watch Face Format

Nel file manifest della nuova app (AndroidManifest.xml), aggiungi una proprietà dell'applicazione che indichi l'utilizzo del Watch Face Format. A meno che tu non voglia limitare l'accesso al quadrante per i dispositivi con Wear OS 5 o versioni successive, crea due APK del quadrante diversi, uno che supporta la versione 2 e uno che supporta la versione 1. Scopri di più su come configurare le versioni della tua app.

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<manifest ...>
    <!--
        Use SDK version 34 for version 2 of WFF, and SDK version 33 for version
        1 of WFF
    -->
    <uses-sdk
        android:minSdkVersion="34"
        android:targetSdkVersion="34" />

    <!--
        WFF is a resource-only format, so the hasCode attribute should be set to
        false to reflect this.
    -->
    <application
        android:label="@string/watch_face_name"
        android:hasCode="false"
        ...>
        <property
            android:name="com.google.wear.watchface.format.version"
            android:value="2" />
    </application>
</manifest>

Dichiarare i metadati del quadrante

Nella directory delle risorse res/xml della tua app, crea un nuovo file denominato watch_face_info.xml. Qui puoi definire i metadati del quadrante:

<?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>

I campi di questo file rappresentano i seguenti dettagli:

Preview
Fa riferimento al drawable che contiene un'immagine di anteprima del quadrante.
Category

Definisce la categoria del quadrante. Deve essere una stringa o un riferimento a una stringa, ad esempio @string/ref_name. Ogni produttore di dispositivi può definire il proprio insieme di categorie di quadranti.

Valore predefinito: empty_category_meta, che raggruppa questo quadrante insieme ad altri quadranti di "categoria vuota" nella parte inferiore della visualizzazione del selettore di quadranti.

AvailableInRetail

Indica se il quadrante è disponibile nella modalità demo retail del dispositivo. Deve essere un valore booleano o un riferimento a un valore booleano come @bool/watch_face_available_in_retail.

Valore predefinito: false

MultipleInstancesAllowed

Indica se il quadrante può avere più preferiti. Deve essere un valore booleano o un riferimento a un valore booleano come @bool/watch_face_multiple_instances_allowed.

Valore predefinito: false

Editable

Indica se il quadrante è modificabile, il che significa che ha un'impostazione o almeno una complicazione non fissa. Viene utilizzato per mostrare o nascondere il pulsante Modifica per il quadrante nell'elenco dei preferiti.

Valore predefinito: false

Dichiara il nome del quadrante

Nel file manifest dell'app (AndroidManifest.xml), imposta l'attributo android:label sul nome del quadrante:

<application android:label="@string/watch_face_name" >

(Facoltativo) Dichiarare il supporto per le forme dei quadranti

Questo passaggio è necessario solo se vuoi supportare un comportamento diverso per le diverse dimensioni dei quadranti. Puoi saltare questo passaggio se non ti dispiace che il quadrante venga ridimensionato in base alle dimensioni dello smartwatch.

Nella directory delle risorse res/xml della tua app, dichiara l'insieme di forme del quadrante supportate in watch_face_shapes.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>

Dichiara i dettagli del quadrante

Nella directory delle risorse res/raw dell'app, crea file corrispondenti ai valori dell'attributo file utilizzati quando dichiari il supporto per le forme del quadrante.

È qui che definisci l'aspetto e il comportamento di ogni forma del quadrante. Se non hai definito un file delle forme, devi solo creare un file, watchface.xml.

Utilizzando l'esempio di questa pagina, i file XML non elaborati sarebbero:

  • res/raw/watchface.xml
  • res/raw/watchface_large_circle.xml
  • res/raw/watchface_rectangle.xml

L'elemento principale è sempre WatchFace:

<WatchFace width="450" height="450" clipShape="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>

(Facoltativo) Identificare l'editore del quadrante

Se vuoi, nel file manifest dell'app puoi dichiarare una stringa arbitraria che puoi utilizzare per identificare il publisher del quadrante o il nome e la versione dello strumento che stai utilizzando:

<application ...>
    ...
    <property
        android:name="com.google.wear.watchface.format.publisher"
        android:value="{toolName}-{toolVersion}" />
</application>

Verificare la correttezza e il rendimento del quadrante

Durante lo sviluppo e prima di caricarlo su Google Play, utilizza gli strumenti di convalida per controllare che il quadrante non presenti errori e che sia conforme ai consigli sull'utilizzo della memoria.

Creare app bundle per i quadranti

Per compilare l'Android App Bundle contenente il quadrante, utilizza il sistema di compilazione Gradle. Scopri di più su come creare un'app utilizzando Gradle.

Questo è dimostrato negli esempi GitHub.