API per Android 3.2

Livello API: 13

Android 3.2 (HONEYCOMB_MR2) è una release incrementale della piattaforma che aggiunge nuove funzionalità per utenti e sviluppatori. Le sezioni seguenti forniscono una panoramica delle nuove funzionalità e delle API per sviluppatori.

Per gli sviluppatori, la piattaforma Android 3.2 è disponibile come componente scaricabile per l'SDK Android. La piattaforma scaricabile include una libreria Android e un'immagine di sistema, nonché una serie di skin di emulazione altro ancora. Per iniziare a sviluppare o testare soluzioni rispetto ad Android 3.2, usa Android SDK Manager per scaricare la piattaforma nell'SDK.

Aspetti principali della piattaforma

Funzionalità per nuovi utenti

  • Ottimizzazioni per una gamma più ampia di tablet

    Android 3.2 include una serie di ottimizzazioni del sistema per garantire un'esperienza utente ottimale su una gamma più ampia di tablet.

  • Zoom di compatibilità per app di dimensioni fisse

    Android 3.2 introduce una nuova modalità di zoom di compatibilità che offre agli utenti un nuovo modo per visualizzare le app di dimensioni fisse su dispositivi più grandi. La nuova modalità offre un'alternativa basata su pixel allo stretching dell'interfaccia utente standard per le app non progettate per funzionare su schermi di dimensioni maggiori, ad esempio sui tablet. La nuova modalità accessibile agli utenti da un'icona di menu nella barra di sistema, per le app che richiedono per la compatibilità.

  • Sincronizzazione dei contenuti multimediali da scheda SD

    Sui dispositivi che supportano una scheda SD, ora gli utenti possono caricare direttamente i file multimediali dalla scheda SD alle app che le usano. Una struttura di sistema rende i file accessibile alle app dal media store di sistema.

Nuove funzionalità per gli sviluppatori

  • API estesa per la gestione del supporto degli schermi

    Android 3.2 introduce estensioni nell'API di supporto dello schermo della piattaforma per offrono agli sviluppatori altri modi per gestire l'UI delle applicazioni in tutta la gamma Dispositivi con tecnologia Android. L'API include nuovi qualificatori delle risorse e nuovi attributi manifest che ti consentono di avere un controllo più preciso sulla modalità di visualizzazione delle tue app su dimensioni diverse, anziché fare affidamento su categorie di dimensioni generalizzate.

    Per garantire la migliore visualizzazione possibile per le app di dimensioni fisse e le app con supporto limitato per varie dimensioni dello schermo, la piattaforma fornisce anche una nuova modalità di compatibilità con lo zoom che esegue il rendering dell'interfaccia utente su un'area dello schermo più piccola, quindi la ridimensiona per riempire lo spazio disponibile sul display. Per ulteriori informazioni sui l'API di supporto dello schermo e i controlli che fornisce, consulta le sezioni di seguito.

Panoramica dell'API

API di supporto di Screens

Android 3.2 introduce nuove API di supporto per le schermate che ti consentono di avere un maggiore controllo sulla modalità di visualizzazione delle applicazioni su schermi di dimensioni diverse. L'API si basa sull'API di supporto delle schermate esistente, incluso il modello di densità dello schermo generalizzato della piattaforma, ma lo estende con la possibilità di scegliere come target specifiche gamme di schermi in base alle loro dimensioni, misurate in unità di pixel indipendenti dalla densità (ad es. larghezza di 600 dp o 720 dp), anziché in base alle dimensioni dello schermo generalizzate (ad es. grande o molto grande)

Quando progetti l'interfaccia utente di un'applicazione, puoi comunque fare affidamento sulla piattaforma per fornire l'astrazione della densità, il che significa che le applicazioni non devono compensare le differenze nella densità effettiva dei pixel tra i dispositivi. Tu puoi progettare l'interfaccia utente dell'applicazione in base alla quantità di spazio disponibile. La piattaforma esprime la quantità di spazio disponibile utilizzando tre nuovi caratteristiche: smallestwidth, width e height.

  • La dimensione smallestwidth di uno schermo è la dimensione minima fondamentale, misurate in unità di pixel indipendenti dalla densità ("dp"). L'altezza o la larghezza dello schermo, la più corta delle due. Per uno schermo con orientamento verticale, il valore smallestwidth si basa normalmente sulla larghezza, mentre nell'orientamento orizzontale si basa sulla sua altezza. In tutti i casi, smallestWidth è dedotto da una caratteristica fissa dello schermo e il valore non cambia, indipendentemente dall'orientamento. Il valore più piccolo è importante per le applicazioni perché rappresenta la larghezza più corta possibile in cui dovrà essere tracciata l'interfaccia utente dell'applicazione, escluse le aree dello schermo riservate dal sistema.
  • Al contrario, la larghezza e l'altezza di uno schermo rappresentano lo spazio orizzontale o verticale corrente disponibile per il layout dell'applicazione, misurato in unità "dp", senza includere le aree dello schermo riservate dal sistema. La larghezza l'altezza di uno schermo cambia quando l'utente cambia l'orientamento orizzontale e verticale.

L'API di supporto delle nuove schermate è progettata per consentirti di gestire l'interfaccia utente dell'applicazione in base alla larghezza minima della schermata corrente. Puoi anche gestire l'UI in base alla larghezza o all'altezza corrente, in base alle tue esigenze. A questo scopo, l'API fornisce i seguenti strumenti:

  • Nuovi qualificatori di risorse per il targeting di layout e altre risorse a un valore minimo minimo di larghezza, larghezza o altezza,
  • Nuovi attributi del file manifest, per specificare il valore massimo intervallo compatibilità schermo

Inoltre, le applicazioni possono comunque interrogare il sistema e gestire l'interfaccia utente delle risorse in fase di runtime, come nelle versioni precedenti della piattaforma.

Poiché la nuova API consente di scegliere come target gli schermi in modo più diretto larghezza e altezza, è utile capire i valori tipici caratteristiche dei diversi tipi di schermo. La tabella seguente fornisce alcuni esempi, misurati in unità "dp".

Tabella 1. Dispositivi tipici, con densità e dimensioni in dp.

Digitazione Densità (generalizzata) Dimensioni (dp) smallestWidth (dp)
Telefono di riferimento mdpi 320 x 480 320
Tablet piccolo/telefono di grandi dimensioni mdpi 480 x 800 480
tablet da 7 pollici MDPI 600x1024 600
tablet da 10 pollici mdpi 800 x 1280 800

Le sezioni seguenti forniscono ulteriori informazioni sui nuovi qualificatori dello schermo. e gli attributi del file manifest. Per informazioni complete su come utilizzare l'API di supporto dello schermo, consulta Supporto di più schermi.

Nuovi qualificatori delle risorse per il supporto degli schermi

I nuovi qualificatori delle risorse in Android 3.2 ti consentono di scegliere meglio come target i layout per intervalli di dimensioni dello schermo. Utilizzando i qualificatori, puoi creare configurazioni di risorse progettate per una larghezza minima, una larghezza corrente o un'altezza corrente specifiche, misurate in pixel indipendenti dalla densità.

I nuovi qualificatori sono:

  • swNNNdp: specifica la larghezza minima minima su cui deve essere utilizzata la risorsa, misurata in unità "dp". Come detto in precedenza, la larghezza più piccola dello schermo è costante, indipendentemente dall'orientamento. Esempi: sw320dp, sw720dp e sw720dp.
  • wNNNdp e hNNNdp: specifica la soglia minima larghezza o altezza su cui deve essere utilizzata la risorsa, misurata in "dp" unità. Come come detto in precedenza, la larghezza e l'altezza di uno schermo sono relative all'orientamento sullo schermo e cambia ogni volta che l'orientamento cambia. Esempi: w320dp, w720dp, h1024dp.

Se necessario, puoi anche creare più configurazioni di risorse sovrapposte. Ad esempio, potresti taggare alcune risorse da utilizzare su schermi di larghezza superiore a 480 dp, altri per più di 600 dp e altri per più di 720 dp. Quando più configurazioni delle risorse sono idonee per una determinata schermata, il sistema seleziona la configurazione più adatta. Per un controllo preciso quali risorse vengono caricate in una determinata schermata, puoi taggare le risorse con qualificatore o combinare diversi qualificatori nuovi o esistenti.

In base alle dimensioni tipiche elencate in precedenza, ecco alcuni esempi di come puoi utilizzare i nuovi qualificatori:

res/layout/main_activity.xml   # For phones
res/layout-sw600dp/main_activity.xml   # For 7” tablets
res/layout-sw720dp/main_activity.xml   # For 10” tablets
res/layout-w600dp/main_activity.xml   # Multi-pane when enough width
res/layout-sw600dp-w720dp/main_activity.xml   # For large width

Le versioni precedenti della piattaforma ignoreranno i nuovi qualificatori, quindi puoi combinarli in base alle tue esigenze per assicurarti che la tua app sia perfetta su qualsiasi dispositivo. Ecco alcuni esempi:

res/layout/main_activity.xml   # For phones
res/layout-xlarge/main_activity.xml   # For pre-3.2 tablets
res/layout-sw600dp/main_activity.xml   # For 3.2 and up tablets

Per informazioni complete su come utilizzare i nuovi qualificatori, consulta Utilizzare i nuovi quantificatori delle dimensioni.

Nuovi attributi del file manifest per la compatibilità delle dimensioni dello schermo

Il framework offre un nuovo insieme di attributi manifest <supports-screens> che consentono di puoi gestire il supporto dell'app per schermi di dimensioni diverse. In particolare, puoi specificare gli schermi più grandi e più piccoli su cui la tua app è progettato per essere eseguito, nonché lo schermo più grande su cui è progettato senza bisogno della nuova schermata del sistema modalità di compatibilità. Come i qualificatori delle risorse descritti sopra, il nuovo gli attributi del file manifest specificano l'intervallo di schermate supportate dall'applicazione, come specificato dal valore smallestwidth.

I nuovi attributi manifest per il supporto dello schermo sono:

  • android:compatibleWidthLimitDp="numDp" - Questo consente di specificare il valore smallestwidth massimo su cui l'applicazione può essere eseguita senza bisogno della modalità di compatibilità. Se lo schermo corrente è più grande di il valore specificato, il sistema visualizza l'applicazione in modalità normale consente all'utente di passare facoltativamente alla modalità di compatibilità tramite un'impostazione in nella barra di sistema.
  • android:largestWidthLimitDp="numDp" - Questo consente di specificare il valore smallestwidth massimo su cui l'applicazione è progettato per essere eseguito. Se la schermata corrente è più grande del valore specificato, il sistema forza l'applicazione in modalità di compatibilità dello schermo per garantire visualizzata nella schermata corrente.
  • android:requiresSmallestWidthDp="numDp" - Questo consente di specificare la minima larghezza minima su cui l'applicazione possono essere eseguiti. Se lo schermo corrente è più piccolo del valore specificato, il sistema considera l'applicazione incompatibile con il dispositivo, ma non ne impedisce l'installazione e l'esecuzione.

Nota: al momento Google Play non filtra le app in base a nessuno degli attributi sopra indicati. Il supporto per i filtri sarà aggiunto in una release successiva della piattaforma. Le applicazioni che richiedono il filtro in base alle dimensioni dello schermo possono utilizzare gli attributi <supports-screens>esistenti.

Per informazioni complete su come utilizzare i nuovi attributi, consulta Dichiarare il supporto delle dimensioni dello schermo.

Modalità di compatibilità dello schermo

Android 3.2 fornisce una nuova modalità di compatibilità dello schermo per le applicazioni che dichiarano esplicitamente di non supportare schermi di dimensioni uguali a quelle su cui sono in esecuzione. Questa nuova funzione di "zoom" è in scala in pixel, visualizza l'applicazione su uno schermo più piccolo e ridimensiona i pixel a occupa la schermata corrente.

Per impostazione predefinita, il sistema offre la modalità di compatibilità dello schermo come opzione utente per le app che lo richiedono. Gli utenti possono attivare e disattivare la modalità zoom utilizzando un controllo disponibile nella barra di sistema.

Poiché la nuova modalità di compatibilità dello schermo potrebbe non essere appropriata per tutte le applicazioni, la piattaforma consente all'applicazione di disattivarla utilizzando gli attributi manifest. Quando la funzionalità è disattivata dall'app, il sistema non offre lo "zoom" compatibilità disponibile come opzione per gli utenti quando l'app è in esecuzione.

Nota: per informazioni importanti su come controllare la modalità di compatibilità nelle tue applicazioni, consulta l'articolo Nuova modalità per le app su schermi di grandi dimensioni nel blog Android for Developers.

Nuova densità dello schermo per TV 720p e dispositivi simili

Per soddisfare le esigenze delle applicazioni in esecuzione su TV 720p o simili con screen di densità moderata, Android 3.2 introduce una nuova densità generalizzata,tvdpi, con un dpi approssimativo di 213. Le applicazioni possono interrogare la nuova densità in densityDpi e può utilizzare il nuovo qualificatore tvdpi per taggare le risorse per televisori e con dispositivi simili. Ad esempio:

res/drawable-tvdpi/my_icon.png   # Bitmap for tv density

In generale, le applicazioni non dovrebbero funzionare con questa densità. Per le situazioni in cui è necessaria l'uscita per uno schermo a 720p, gli elementi dell'interfaccia utente possono essere scalati automaticamente dalla piattaforma.

Framework UI

  • Frammenti
    • La nuova classe Fragment.SavedState contiene le informazioni sullo stato recuperate da un'istanza del frammento tramite saveFragmentInstanceState().
    • Nuovo metodo saveFragmentInstanceState() salva lo stato attuale dell'istanza per il Frammento. Lo stato può essere utilizzato in un secondo momento durante la creazione di una nuova istanza del frammento che corrisponde allo stato corrente.
    • Nuovo metodo setInitialSavedState() imposta lo stato salvato iniziale per un Frammento quando viene creato per la prima volta.
    • Il nuovo metodo di callback onViewCreated() avvisa il Frammento che onCreateView() ma prima che qualsiasi stato salvato venga ripristinato nella vista.
    • Il metodo isDetached() determina se il frammento è stato scollegato esplicitamente dalla UI.
    • I nuovi metodi attach() e detach() consentono a un'applicazione di ricollegare o scollegare i frammenti nell'interfaccia utente.
    • Un nuovo metodo di sovraccarico di setCustomAnimations() ti consente di impostare animazioni specifiche per le operazioni di entrata e uscita, in particolare quando facendo aprire il gruppo posteriore. L'implementazione esistente non tiene conto il diverso comportamento dei frammenti quando viene aperto lo stack posteriore.
  • Informazioni sulle dimensioni dello schermo in ActivityInfo e ApplicationInfo
  • Aiuto per ottenere le dimensioni di visualizzazione da WindowManager
    • I nuovi metodi getSize() e getRectSize() consentono alle applicazioni di ottenere le dimensioni non elaborate del display.
  • Nuovi stili pubblici "olografici"
    • La piattaforma ora espone una serie di elementi "olografici" pubblici stili per testo, widget e schede nella barra delle azioni e altro ancora. Consulta R.style per un elenco completo.
  • LocalActivityManager, ActivityGroup e LocalActivityManager sono ora deprecati
    • Le nuove applicazioni dovrebbero usare Fragments al posto di queste classi. A continuano a essere eseguite su versioni precedenti della piattaforma, puoi usare la versione 4 Libreria (libreria di compatibilità), disponibile nell'SDK Android. L'assistenza v4 La libreria fornisce una versione dell'API Fragment compatibile con Android 1.6 (livello API 4).
    • Per le app che si sviluppano a partire da Android 3.0 (livello API 11) o successive, in genere le schede vengono presentate nell'interfaccia utente usando il nuovo ActionBar.newTab() e API correlate per posizionare le schede nell'area della barra delle azioni.

Framework multimediale

  • Le applicazioni che utilizzano il provider di contenuti multimediali della piattaforma (MediaStore) ora possono leggere i dati multimediali direttamente dal scheda SD rimovibile, se supportata dal dispositivo. Le applicazioni possono inoltre interagire direttamente con i file della scheda SD utilizzando l'API MTP.

Grafica

framework IME

  • Nuovo metodo getModifiers() per recuperando lo stato attuale dei tasti di modifica.

Framework USB

  • Nuovo metodo getRawDescriptors() per recuperando i descrittori USB non elaborati per il dispositivo. Puoi utilizzare il metodo per accedere ai descrittori non supportati direttamente tramite le API di livello superiore.

Rete

Telefonia

Utilità principali

  • Società di servizio cedibili in lotto
  • Binder e IBinder
    • Il nuovo metodo dumpAsync() in Binder e IBinder consente alle applicazioni di eseguire il dump in un file specificato, garantendo l'esecuzione asincrona del target.
    • Il nuovo IBinder codice transazione del protocollo TWEET_TRANSACTION consente alle applicazioni di inviare un tweet all'oggetto di destinazione.

Costanti delle nuove caratteristiche

La piattaforma aggiunge nuove costanti di funzionalità hardware che puoi dichiarare nei file manifest dell'applicazione, per informare entità esterne come Google Riproduzione delle funzionalità hardware e software richieste. Dichiari questi elementi e altre costanti di funzionalità negli elementi manifest di <uses-feature>.

Google Play filtra le applicazioni in base ai relativi attributi <uses-feature> per assicurarsi che siano disponibili solo sui dispositivi su cui sono soddisfatti i relativi requisiti.

  • Costanti delle funzionalità per i requisiti orizzontali e verticali

    Android 3.2 introduce nuove costanti di funzionalità che consentono alle applicazioni di specificare se devono essere visualizzate con orientamento orizzontale, verticale o entrambi. La dichiarazione di queste costanti indica che l'applicazione non deve essere installata su un dispositivo che non offre l'orientamento associato. Al contrario, se una o entrambe le costanti non sono dichiarate, significa che l'applicazione non ha una preferenza per gli orientamenti non dichiarati e potrebbe essere installata su un dispositivo che non li offre.

    In genere, un'applicazione che funziona correttamente sia in orizzontale che in verticale non deve dichiarare un requisito di orientamento. Piuttosto, un'applicazione progettata principalmente per un orientamento, ad esempio un'app progettata per una televisione, potrebbe dichiarare una delle costanti per assicurarsi che non sia disponibile per i dispositivi che non forniscono quell'orientamento.

    Se una qualsiasi delle attività dichiarate nel file manifest richiede che venga eseguita in un orientamento specifico, utilizzando l'attributo android:screenOrientation, dichiara anche che l'applicazione lo richiede questo orientamento.

  • Altre costanti delle caratteristiche

Report sulle differenze dell'API

Per una visualizzazione dettagliata di tutte le modifiche API in Android 3.2 (API Livello 13), consulta la sezione sull'API Report Differenze.

Livello API

La piattaforma Android 3.2 fornisce una versione aggiornata dell'API del framework. API per Android 3.2 viene assegnato un identificatore intero, 13, ossia archiviati nel sistema stesso. Questo identificatore, chiamato "livello API", consente al sistema di determinare correttamente se un'applicazione è compatibile con il sistema prima di installarla.

Per utilizzare le API introdotte in Android 3.2 nella tua applicazione, devi compilare l'applicazione in base alla libreria Android fornita nella piattaforma SDK Android 3.2. A seconda delle tue esigenze, potresti anche dover aggiungere un attributo android:minSdkVersion="13" all'elemento <uses-sdk> nel manifest dell'applicazione.

Per saperne di più, consulta la pagina Che cos'è l'API Livello?