Inizia a creare app per ChromeOS

I dispositivi ChromeOS, come i Chromebook, supportano il Google Play Store e le app Android. Questo articolo presuppone che tu abbia già un'app per Android progettata per smartphone o tablet che vuoi ottimizzare per Chromebook. Per conoscere le nozioni di base sulla creazione di app per Android, consulta Creare la tua prima app per Android.

Aggiorna il file manifest dell'app

Per iniziare, aggiorna il file manifest in modo da tenere conto di alcune differenze hardware e software fondamentali tra Chromebook e altri dispositivi con Android.

A partire dalla versione M53 di ChromeOS, tutte le app per Android che non richiedono esplicitamente la funzionalità android.hardware.touchscreen funzionano anche sui dispositivi ChromeOS che supportano la funzionalità android.hardware.faketouch. Tuttavia, per assicurarti che la tua app funzioni su tutti i Chromebook, aggiorna il file manifest in modo che la funzionalità android.hardware.touchscreen non sia richiesta, come mostrato nell'esempio seguente.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          ... >
    <!-- Some Chromebooks don't support touch. Although not essential,
         it's a good idea to explicitly include this declaration. -->
    <uses-feature android:name="android.hardware.touchscreen"
                  android:required="false" />
</manifest>

I diversi dispositivi hardware sono dotati di insiemi diversi di sensori e i Chromebook potrebbero non avere tutti i sensori presenti nei dispositivi Android portatili, come GPS e accelerometri. Tuttavia, in alcuni casi la funzionalità di un sensore viene fornita in un altro modo. Ad esempio, i Chromebook potrebbero non avere sensori GPS, ma forniscono dati sulla posizione in base alle connessioni Wi-Fi. Consulta la panoramica dei sensori per saperne di più sui sensori supportati dalla piattaforma Android.

Se vuoi che la tua app venga eseguita su Chromebook indipendentemente dalla disponibilità dei sensori, aggiornate il file manifest in modo che non siano richiesti sensori.

Alcune funzionalità software non sono supportate su Chromebook. Ad esempio, le app che forniscono IME personalizzati, widget per app, sfondi animati e app di avvio non sono supportate e non possono essere installate su Chromebook. Per un elenco completo delle funzionalità software non supportate su Chromebook, consulta Funzionalità software incompatibili.

Aggiorna l'SDK target

Aggiorna l'attributo targetSdkVersion della tua app all'ultimo livello API disponibile per sfruttare tutti i miglioramenti della piattaforma Android. Esamina i miglioramenti della piattaforma Android nelle diverse versioni.

Verifica i requisiti di networking

I Chromebook eseguono l'intero sistema operativo Android in un contenitore, in modo simile a Docker o LXC. Ciò significa che Android non ha accesso diretto all'interfaccia LAN del sistema. Il traffico IPv4 passa invece attraverso un livello interno di Network Address Translation (NAT) e il traffico unicast IPv6 viene instradato tramite un hop aggiuntivo.

Le connessioni unicast in uscita da un'app per Android a internet funzionano per lo più così come sono. In genere, le connessioni in entrata sono bloccate. I pacchetti multicast o di trasmissione da Android non vengono inoltrati alla LAN tramite il firewall.

Come eccezione alla limitazione del multicast, ChromeOS esegue un servizio che inoltra il traffico mDNS tra Android e l'interfaccia LAN, pertanto le API standard di rivelazione dei servizi di rete sono il modo consigliato per rilevare altri dispositivi nel segmento LAN. Dopo aver trovato un dispositivo sulla LAN, un'app per Android può utilizzare socket unicast TCP o UDP standard per comunicare con il dispositivo.

Le connessioni IPv4 provenienti da Android utilizzano l'indirizzo IPv4 dell'host ChromeOS. All'interno, l'app per Android vede un indirizzo IPv4 privato assegnato all'interfaccia di rete. Le connessioni IPv6 provenienti da Android utilizzano un indirizzo diverso da quello dell'host ChromeOS, perché il contenitore Android ha un indirizzo IPv6 pubblico dedicato.

Utilizzare in modo efficace lo spazio di archiviazione locale e sul cloud

I Chromebook consentono agli utenti di eseguire facilmente la migrazione da un dispositivo all'altro. Se un utente smette di usare un Chromebook e inizia a usare un altro, deve solo accedere e tutte le sue app vengono visualizzate.

Grazie a questa funzionalità, esegui il backup dei dati dell'app sul cloud per attivare la sincronizzazione su più dispositivi. Tuttavia, non fare affidamento su una connessione a internet per il normale funzionamento della tua app. Salva invece il lavoro dell'utente localmente quando il dispositivo è offline e sincronizzalo con il cloud quando il dispositivo è di nuovo online.

I Chromebook possono essere condivisi anche tra un numero elevato di persone, ad esempio nelle scuole. Poiché lo spazio di archiviazione locale non è infinito, interi account, insieme allo spazio di archiviazione associato, possono essere rimossi dal dispositivo in qualsiasi momento. Per le scuole, è bene tenere presente questo scenario.

Sviluppare nuovi scenari di test per l'app

Per sviluppare casi di test per la tua app, assicurati innanzitutto di specificare i flag manifest appropriati. In particolare, valuta la possibilità di impostare screenOrientation su unspecified. Se vuoi specificare un'orientamento orizzontale, valuta la possibilità di utilizzare sensorLandscape per assicurarti che l'esperienza su un tablet sia ottimale.

Se hai esigenze speciali per le dimensioni o l'orientamento per gli ambienti desktop, valuta la possibilità di aggiungere meta tag come suggerimenti per le dimensioni o l'orientamento. Per includere le dimensioni e l'orientamento su telefoni, specifica gli attributi layoutdefaultHeight,defaultWidth o minHeight.

Se ti interessa la gestione di dispositivi di input specifici per categorie di dispositivi specifiche, specifica android.hardware.type.pc per disattivare la modalità di compatibilità dell'input.

Se utilizzi qualsiasi tipo di rete, assicurati che l'app possa riconnettersi alla rete dopo la risoluzione di un problema di connessione o il risveglio del dispositivo dalla modalità sospensione.

Ti consigliamo di controllare l'elenco degli scenari di test per le app Android su ChromeOS, che puoi utilizzare nel tuo piano di test. I casi di test coprono scenari comuni per i quali le app Android devono essere preparate se è previsto che vengano eseguite su dispositivi ChromeOS.

Modifiche al multi-finestra e all'orientamento

L'ambiente multi-finestra di ChromeOS può rendere più evidenti i problemi di persistenza e richiamo dello stato. Utilizza ViewModel per salvare e ripristinare lo stato, se opportuno.

Per testare la persistenza dello stato, riduci a icona l'app per un po' di tempo, avvia un'altra procedura che richiede molte risorse e ripristina l'app per verificare che torni allo stato in cui l'avevi lasciata.

Prova a modificare le dimensioni della finestra premendo il tasto a schermo intero (F4), ingrandisci e ripristina. Per testare il ridimensionamento libero, attivalo prima nelle opzioni per gli sviluppatori e poi controlla che l'app ridimensioni senza problemi senza arrestarsi in modo anomalo.

Se il tuo dispositivo ChromeOS lo supporta, passa dalla modalità laptop alla modalità tablet per verificare se tutto funziona come previsto. Ruota il dispositivo una volta in modalità tablet per verificare le modifiche dell'orientamento, quindi torna alla modalità laptop. Ripeti questo passaggio per alcune volte.

Assicurati che la barra superiore non interrompa l'app spostando gli elementi dell'interfaccia utente o l'input tocco basato sulla posizione. Per i dispositivi ChromeOS, assicurati che la tua app non inserisca informazioni importanti nell'area della barra di stato.

Se utilizzi la fotocamera o un'altra funzionalità hardware, come la penna, assicurati che funzioni correttamente quando esegui le modifiche alla finestra e al dispositivo descritte in precedenza.