Condividi tramite


Caratteristiche di Oreo

Come iniziare a usare Xamarin.Android per sviluppare app per la versione più recente di Android.

Android 8.0 Oreo è la versione più recente di Android disponibile da Google. Android Oreo offre molte nuove funzionalità di interesse per gli sviluppatori Xamarin.Android. Queste funzionalità includono canali di notifica, badge di notifica, tipi di carattere personalizzati in XML, tipi di carattere scaricabili, riempimento automatico e immagine nell'immagine (PIP). Android Oreo include nuove API per queste nuove funzionalità e queste API sono disponibili per le app Xamarin.Android quando si usa Xamarin.Android 8.0 e versioni successive.

Immagine di Android Oreo Hero

Questo articolo è strutturato per iniziare a sviluppare app Xamarin.Android per Android 8.0 Oreo. Viene illustrato come installare gli aggiornamenti necessari, configurare l'SDK e creare un emulatore (o dispositivo) per il test. Fornisce anche una descrizione delle nuove funzionalità in Android 8.0 Oreo, con collegamenti ad app di esempio che illustrano come usare le funzionalità di Android Oreo nelle app Xamarin.Android.

Requisiti

Per usare le funzionalità di Android Oreo nelle app basate su Xamarin, è necessario quanto segue:

  • Visual Studio : se si usa Windows, è necessaria la versione 15.5 o successiva di Visual Studio. Se si usa un Mac, è necessario Visual Studio per Mac versione 7.2.0.

  • Xamarin.Android : Xamarin.Android 8.0 o versione successiva deve essere installato e configurato con Visual Studio.

  • Android SDK : Android SDK 8.0 (API 26) o versione successiva deve essere installato tramite Android SDK Manager.

Introduzione

Per iniziare a usare Android Oreo con Xamarin.Android, è necessario scaricare e installare gli strumenti e i pacchetti SDK più recenti prima di poter creare un progetto Android Oreo:

  1. Eseguire l'aggiornamento alla versione più recente di Visual Studio.

  2. Installare i pacchetti e gli strumenti Android 8.0.0 (API 26) o versioni successive tramite SDK Manager.

  3. Creare un nuovo progetto Xamarin.Android destinato ad Android Oreo (API 26).

  4. Configurare un emulatore o un dispositivo per il test delle app Android Oreo.

Ognuno di questi passaggi è illustrato nelle sezioni seguenti:

Aggiornare Visual Studio e Xamarin.Android

Per aggiungere il supporto di Android Oreo a Visual Studio, seguire questa procedura:

  • Per Visual Studio 2019, usare SDK Manager per installare il livello API 26.0 o versione successiva.

  • Se si usa Visual Studio 2017:

    1. Eseguire l'aggiornamento a Visual Studio 2017 versione 15.7 o successiva (vedere Aggiornare Visual Studio 2017).

    2. Usare SDK Manager per installare il livello API 26.0 o versione successiva.

Per altre informazioni sul supporto di Xamarin per Android Oreo, vedere le note sulla versione di Xamarin.Android 8.0.

Installare Android SDK

Per creare un progetto con Xamarin.Android 8.0, è prima necessario usare Xamarin Android SDK Manager per installare la piattaforma SDK per Android 8.0 - Oreo o versione successiva. È anche necessario installare Android SDK Tools 26.0 o versione successiva.

  1. Avviare SDK Manager (in Visual Studio fare clic su Strumenti > Android > SDK Manager).

  2. Installare i pacchetti Android 8.0 - Oreo . Se si usa l'emulatore Android SDK, assicurarsi di includere le immagini di sistema x86 necessarie:

    Selezione di pacchetti Android 8.0 in Android SDK Manager

  3. Installare Android SDK Tools 26.0.2 o versione successiva, Android SDK Platform-Tools 26.0.0 o versione successiva e Android SDK Build-Tools 26.0.0 (o versione successiva):

    Selezione di Android SDK Tools 26 in Android SDK Manager

Avviare un progetto Xamarin.Android

Creare un nuovo progetto Xamarin.Android. Se non si ha familiarità con lo sviluppo android con Xamarin, vedere Hello, Android per informazioni sulla creazione di progetti Xamarin.Android.

Quando si crea un progetto Android, è necessario configurare le impostazioni della versione per Android 8.0 o versioni successive. Ad esempio, per impostare come destinazione il progetto per Android 8.0, è necessario configurare il livello API Android di destinazione del progetto su Android 8.0 (API 26). È consigliabile impostare anche il livello del framework di destinazione su API 26 o versione successiva. Per altre informazioni sulla configurazione dei livelli di livello API Android, vedere Informazioni sui livelli api Android.

Configurare un emulatore o un dispositivo

Se si tenta di avviare l'AVD Manager predefinito basato su GUI google dopo l'installazione di Android SDK Tools 26.0 o versione successiva, è possibile che venga visualizzata la finestra di dialogo di errore seguente, che indica di usare lo strumento avdmanager della riga di comando avdmanager :

Questo messaggio viene visualizzato perché Google non fornisce più un gestore AVD GUI autonomo che supporta l'API 26.0 e versioni successive. Per Android 8.0 Oreo, è necessario usare Xamarin Android Emulator Manager o lo strumento da riga di comando avdmanager per creare dispositivi virtuali per Android Oreo.

Per usare il Gestione dispositivi Android per creare e gestire dispositivi virtuali, vedere Gestione dei dispositivi virtuali con il Gestione dispositivi Android. Per creare dispositivi virtuali senza android Gestione dispositivi, seguire la procedura descritta nella sezione successiva.

Creazione di dispositivi virtuali con avdmanager

Per usare avdmanager per creare un nuovo dispositivo virtuale, seguire questa procedura:

  1. Aprire una finestra del prompt dei comandi e impostare JAVA_HOME il percorso di Java SDK nel computer. Per un'installazione tipica di Xamarin, è possibile usare il comando seguente:

    setx JAVA_HOME "C:\Program Files\Java\jdk1.8.0_131"
    
  2. Aggiungere il percorso della cartella Android SDK bin all'oggetto PATH. Per un'installazione tipica di Xamarin, è possibile usare il comando seguente:

    setx PATH "%PATH%;C:\Program Files (x86)\Android\android-sdk\tools\bin"
    
  3. Chiudere la finestra del prompt dei comandi e aprire una nuova finestra del prompt dei comandi. Creare un nuovo dispositivo virtuale usando il comando avdmanager . Ad esempio, per creare un AVD denominato AVD-Oreo-8.0 usando l'immagine di sistema x86 per il livello API 26, usare il comando seguente:

    avdmanager create avd -n AVD-Oreo-8.0 -k "system-images;android-26;google_apis;x86"
    
  4. Quando viene richiesto di creare un profilo hardware personalizzato [no] è possibile immettere no e accettare il profilo hardware predefinito. Se si dice , avdmanager ti chiederà un elenco di domande per personalizzare il profilo hardware.

Dopo aver creato il dispositivo virtuale avdmanager , verrà incluso nel menu a discesa del dispositivo:

Nuovo AVD aggiunto al menu a discesa del dispositivo

Per altre informazioni sulla configurazione di un emulatore Android per il test e il debug, vedere Debug nell'emulatore Android.

Se usi un dispositivo fisico, ad esempio Nexus o Pixel, puoi aggiornare il dispositivo tramite gli aggiornamenti OTA (Automatic Over The Air) o scaricare un'immagine di sistema e lampeggiare direttamente il dispositivo. Per altre informazioni sull'aggiornamento manuale del dispositivo ad Android Oreo, vedi Immagini di fabbrica per nexus e dispositivi pixel.

Nuove funzionalità

Android Oreo introduce una varietà di nuove funzionalità e funzionalità, ad esempio canali di notifica, badge di notifica, tipi di carattere personalizzati in XML, tipi di carattere scaricabili, riempimento automatico e immagine in-picture. Le sezioni seguenti evidenziano queste funzionalità e forniscono collegamenti che consentono di iniziare a usarle nell'app.

Canali di notifica

I canali di notifica sono categorie definite dall'app per le notifiche. È possibile creare un canale di notifica per ogni tipo di notifica che è necessario inviare ed è possibile creare canali di notifica per riflettere le scelte effettuate dagli utenti dell'app. La nuova funzionalità dei canali di notifica consente di fornire agli utenti un controllo granulare su diversi tipi di notifiche. Ad esempio, se si implementa un'app di messaggistica, è possibile creare canali di notifica separati per ogni gruppo di conversazioni creato da un utente.

Canali di notifica spiega come creare un canale di notifica e usarlo per la pubblicazione di notifiche locali.

Badge di notifica

I badge di notifica sono piccoli punti che vengono visualizzati sulle icone dell'app, come illustrato in questo screenshot:

Badge di notifica di esempio nelle icone dell'app

Questi punti indicano che sono presenti nuove notifiche per uno o più canali di notifica nell'app associata all'icona dell'app. Si tratta di notifiche che l'utente non ha ancora ignorato o agito. Gli utenti possono premere a lungo su un'icona per visualizzare immediatamente le notifiche associate a un badge di notifica, ignorare o agire sulle notifiche dal menu di pressione prolungata che appeaars.

Per altre informazioni sulle notifiche di notifica, vedere l'argomento Notifiche per sviluppatori Android.

Tipi di carattere personalizzati in XML

Android Oreo introduce i tipi di carattere in XML, che consente di incorporare tipi di carattere personalizzati come risorse. Sono supportati i formati di carattere OpenType (.otf) e TrueType (.ttf). Per aggiungere tipi di carattere come risorse, eseguire le operazioni seguenti:

  1. Creare una cartella Resources/font .

  2. Copiare i file di tipo di carattere (ad esempio, .ttf e .otf file) in Risorse/tipo di carattere.

  3. Se necessario, rinominare ogni file di tipo di carattere in modo che rispetti le convenzioni di denominazione dei file Android (ad esempio, usare solo caratteri minuscoli a-z, 0-9 e caratteri di sottolineatura nei nomi di file). Ad esempio, il file Pacifico-Regular.ttf di tipo di carattere può essere rinominato in un elemento simile pacifico.ttfa .

  4. Applicare il tipo di carattere personalizzato usando il nuovo android:fontFamily attributo nel codice XML di layout. Ad esempio, la dichiarazione seguente TextView usa la risorsa del tipo di carattere aggiunta pacifico.ttf :

    <TextView
      android:text="Example Text in Pacifico Regular"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:fontFamily="@font/pacifico" />
    

È anche possibile creare un file XML della famiglia di caratteri che descrive più tipi di carattere, nonché dettagli di stile e spessore. Per altre informazioni, vedere l'argomento Tipi di carattere per sviluppatori Android in XML .

Tipi di carattere scaricabili

A partire da Android Oreo, le app possono richiedere tipi di carattere da un provider invece di raggrupparli nell'APK. I tipi di carattere vengono scaricati solo dalla rete in base alle esigenze. Questa funzionalità riduce le dimensioni dell'APK, conservando la memoria del telefono e l'utilizzo dei dati cellulari. È anche possibile usare questa funzionalità nelle versioni 14 e successive dell'API Android installando il pacchetto Android Support Library 26.

Quando l'app richiede un tipo di carattere, crea un FontsRequest oggetto (specificando il tipo di carattere da scaricare) e quindi passalo a un FontsContract metodo per scaricare il tipo di carattere. I passaggi seguenti descrivono il processo di download dei tipi di carattere in modo più dettagliato:

  1. Creare un'istanza di un oggetto FontRequest .

  2. Sottoclasse e creare un'istanza di FontsContract.FontRequestCallback.

  3. Implementare il metodo FontRequestCallback.OnTypeFaceRetrieved , che viene usato per gestire il completamento della richiesta di tipo di carattere.

  4. Implementare il metodo FontRequestCallback.OnTypeFaceRequestFailed, che viene usato per informare l'app di eventuali errori che si verificano durante il processo di richiesta del tipo di carattere.

  5. Chiamare il metodo FontsContract.RequestFonts per recuperare il tipo di carattere dal provider di tipi di carattere.

Quando si chiama il RequestFonts metodo , verifica innanzitutto se il tipo di carattere viene memorizzato nella cache locale (da una chiamata precedente a RequestFont). Se non viene memorizzato nella cache, chiama il provider di tipi di carattere, recupera il tipo di carattere in modo asincrono e quindi passa i risultati all'app richiamando il OnTypeFaceRetrieved metodo.

Per altre informazioni sul download dei tipi di carattere, vedere l'argomento Tipi di carattere scaricabili per sviluppatori Android.

Riempimento automatico

Il nuovo framework di riempimento automatico in Android Oreo semplifica la gestione delle attività ripetitive, ad esempio l'accesso, la creazione di account e le transazioni con carta di credito. Gli utenti dedicano meno tempo alla ridetipazione delle informazioni (che possono causare errori di input). Prima che l'app possa funzionare con il framework di riempimento automatico, è necessario abilitare un servizio di riempimento automatico nelle impostazioni di sistema (gli utenti possono abilitare o disabilitare il riempimento automatico).

Per altre informazioni sulla nuova funzionalità di riempimento automatico e su come ottimizzare l'app per il riempimento automatico, vedere l'argomento Android Developer Autofill Framework .

Immagine in immagine (PIP)

Android Oreo consente a un'attività di avviare in modalità PIP (Picture-In-Picture), sovrapponendo la schermata di un'altra attività. Questa funzionalità è destinata alla riproduzione video.

Per specificare che l'attività dell'app può usare la modalità PIP, impostare il flag seguente su true nel manifesto Android:

android:supportsPictureInPicture

Per specificare il comportamento dell'attività quando è in modalità PIP, usare il nuovo oggetto PictureInPictureParams . PictureInPictureParams rappresenta un set di parametri usati per inizializzare e aggiornare un'attività in modalità PIP, ad esempio le proporzioni preferite dell'attività. In Android Oreo sono stati aggiunti Activity i nuovi metodi PIP seguenti:

  • EnterPictureInPictureMode: inserisce l'attività in modalità PIP. L'attività viene posizionata nell'angolo dello schermo e il resto della schermata viene riempito con l'attività precedente visualizzata sullo schermo.

  • SetPictureInPictureParams: Aggiornamenti le impostazioni di configurazione PIP dell'attività, ad esempio una modifica delle proporzioni.

Altre funzionalità

Android Oreo contiene molte altre nuove funzionalità, ad esempio la libreria di supporto emoji, l'API Location, i limiti di sfondo, il colore wide-gamut per le app, i nuovi codec audio, i miglioramenti di WebView, il supporto per la navigazione tramite tastiera migliorata e una nuova API AAudio (pro audio) per audio a bassa latenza ad alte prestazioni, per altre informazioni su queste funzionalità, vedere l'argomento Android Developer Android Oreo Features and APIs ( Funzionalità e API Android Oreo).

Differenze di funzionamento

Android Oreo include un'ampia gamma di modifiche del comportamento di sistema e API che possono avere un impatto sulle funzionalità delle app esistenti. Queste modifiche sono descritte di seguito.

Limiti di esecuzione in background

Per migliorare l'esperienza utente, Android Oreo impone limitazioni sulle operazioni che le app possono eseguire durante l'esecuzione in background. Ad esempio, se l'utente sta guardando un video o riproducendo un gioco, un'app in esecuzione in background potrebbe compromettere le prestazioni di un'app a elevato utilizzo di video in esecuzione in primo piano. Di conseguenza, Android Oreo pone le restrizioni seguenti per le app che non interagiscono direttamente con l'utente:

  1. Limitazioni del servizio in background: quando un'app è in esecuzione in background, ha una finestra di alcuni minuti in cui è ancora consentita la creazione e l'uso dei servizi. Alla fine di tale finestra, Android arresta il servizio in background dell'app e lo considera inattiva.

  2. Limitazioni di trasmissione: Android 7.0 (API 25) ha posto limitazioni alle trasmissioni registrate da un'app per la ricezione. Android Oreo rende queste limitazioni più rigorose. Ad esempio, le app Android Oreo non possono più registrare ricevitori di trasmissione per le trasmissioni implicite nei propri manifesti.

Per altre informazioni sui nuovi limiti di esecuzione in background, vedere l'argomento Limiti di esecuzione in background per sviluppatori Android.

Modifiche di rilievo

Le app destinate ad Android Oreo o versione successiva devono modificare le app per supportare le modifiche seguenti, se applicabile:

  • Android Oreo depreca la possibilità di impostare la priorità delle singole notifiche. È invece necessario impostare un livello di importanza consigliato durante la creazione di un canale di notifica. Il livello di importanza assegnato a un canale di notifica si applica a tutti i messaggi di notifica inviati.

  • Per le app destinate ad Android Oreo, PendingIntent.GetService() non funziona a causa di nuovi limiti posti sui servizi avviati in background. Se hai come destinazione Android Oreo, devi usare invece PendingIntent.GetBroadcast .

Video

Sviluppo di Android 8.0 Oreo con C#

Riepilogo

Questo articolo ha introdotto Android Oreo e spiegato come installare e configurare gli strumenti e i pacchetti più recenti per lo sviluppo Xamarin.Android in Android Oreo. Ha fornito una panoramica delle funzionalità principali disponibili in Android Oreo, con collegamenti a codice sorgente di esempio per diverse nuove funzionalità. Sono inclusi collegamenti alla documentazione dell'API e agli argomenti per sviluppatori Android per iniziare a creare app per Android Oreo. Ha anche evidenziato le modifiche più importanti del comportamento di Android Oreo che potrebbero influire sulle app esistenti.