API Android 3.2

Livello API: 13

Android 3.2 (HONEYCOMB_MR2) è una versione incrementale della piattaforma che aggiunge nuove 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.

Caratteristiche principali della piattaforma

Funzionalità per nuovi utenti

  • Ottimizzazioni per una gamma più ampia di tablet

    Android 3.2 include una serie di ottimizzazioni nell'intero 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 permette agli utenti un nuovo modo per visualizzare le app di dimensioni fisse sui dispositivi più grandi. La nuova modalità fornisce un'alternativa con scalabilità in pixel all'interfaccia utente standard per le app che non sono progettato per essere eseguito su schermi di dimensioni maggiori, come quelli dei 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 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 di risorse e nuovi manifestare attributi che ti consentono di avere un controllo più preciso sul modo in cui vengono visualizzate con dimensioni diverse, anziché fare affidamento categorie di dimensioni.

    Per garantire la migliore visualizzazione possibile per le app di dimensioni fisse e per le app con supporta diverse dimensioni dello schermo, la piattaforma offre anche un nuovo che esegue il rendering dell'UI su uno schermo più piccolo e poi la scala per riempire lo spazio disponibile sul display. Per ulteriori informazioni l'API di supporto dello schermo e i controlli che fornisce, consulta le sezioni di seguito.

Panoramica dell'API

API Screens Support

Android 3.2 introduce nuovi schermi che supportano le API che offrono controllo sulla modalità di visualizzazione delle loro applicazioni su schermi di dimensioni diverse. L'API si basa sull'API esistente che supporta gli schermi, inclusa la di densità dello schermo generalizzato, ma lo estende con la capacità di scegliere come target intervalli di schermate specifici in base alle dimensioni, misurate in unità pixel indipendenti dalla densità (ad esempio 600 dp o 720 dp di larghezza), anziché in base alle dimensioni generali dello schermo (ad esempio, large o xlarge)

Quando progetti l'interfaccia utente di un'applicazione, puoi comunque affidarti alla piattaforma per offrono l'astrazione della densità, il che significa che le applicazioni non devono compensare le differenze nell'effettiva densità 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"). Dell'altezza dello schermo è la più corta dei 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, l'elemento smallestwidth deriva da una caratteristica fissa del schermo e il valore rimane invariato, 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 spazio orizzontale o verticale corrente disponibile per il layout dell'applicazione, misurato in "dp" incluse le aree dello schermo riservate dal sistema. La larghezza l'altezza di uno schermo cambia quando l'utente cambia l'orientamento orizzontale e verticale.

La nuova API di supporto delle schermate è progettata per consentirti di gestire l'interfaccia utente dell'applicazione in base alla larghezza minima della schermata corrente. Puoi anche gestire UI in base alla larghezza o all'altezza correnti, a seconda delle 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 alcune esempi, misurati in "dp" unità.

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

Tipo Densità (generalizzata) Dimensioni (dp) smallestwidth (dp)
Telefono di riferimento MDPI 320x480 320
Tablet piccolo/telefono di grandi dimensioni MDPI 480x800 480
tablet da 7 pollici MDPI 600x1024 600
tablet da 10 pollici MDPI 800x1280 800

Le sezioni seguenti forniscono ulteriori informazioni sui nuovi qualificatori dello schermo. e gli attributi del file manifest. Per informazioni complete su come utilizzare lo schermo consulta l'articolo su come supportare Schermate.

Nuovi qualificatori delle risorse per il supporto degli schermi

I nuovi qualificatori delle risorse in Android 3.2 consentono di definire meglio il targeting dei layout per schermi di varie dimensioni. Utilizzando i qualificatori, puoi creare risorse progettate per una larghezza minima specifica, una larghezza corrente l'altezza corrente, misurata in pixel indipendenti dalla densità.

I nuovi qualificatori sono:

  • swNNNdp: specifica la dimensione minima più piccola su cui la risorsa deve essere utilizzata, misurata in "dp" unità. 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 e 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 sono qualificate più configurazioni di risorse per una determinata schermata, e seleziona la configurazione più pertinente. 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 potresti usare 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 ignorano i nuovi qualificatori, pertanto puoi mixali a seconda delle esigenze per assicurarti che la tua app venga visualizzata al meglio su qualsiasi dispositivo. Qui 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 Utilizzo di qualificatori di dimensione.

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 del file 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 la schermata corrente è più piccola del valore specificato, il sistema ritiene l'applicazione incompatibile con il dispositivo, ma non lo impedisce l'installazione e l'esecuzione.

Nota:al momento Google Play non filtra. alle app in base agli attributi indicati sopra. Il supporto per i filtri sarà aggiunto in una release successiva della piattaforma. Applicazioni che richiedono i filtri basati sulle dimensioni dello schermo possono utilizzare l'attuale <supports-screens> attributi.

Per informazioni complete su come utilizzare i nuovi attributi, consulta la sezione Dichiarazione dimensioni dello schermo.

Modalità di compatibilità dello schermo

Android 3.2 offre una nuova modalità di compatibilità dello schermo per le applicazioni dichiarando esplicitamente di non supportare schermi di dimensioni uguali a quelle del 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.

Perché la nuova modalità di compatibilità dello schermo potrebbe non essere appropriata per tutti applicazioni, la piattaforma consente all'applicazione di disabilitarla utilizzando il file manifest attributi. 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 per controllare la modalità di compatibilità nelle tue applicazioni, consulta l'articolo Nuova modalità per le app su schermi di grandi dimensioni su Android Blog degli sviluppatori.

Nuova densità dello schermo per i televisori con risoluzione 720p e dispositivi simili

Per soddisfare le esigenze delle applicazioni eseguite su televisori 720p o simili con gli schermi a densità moderata, Android 3.2 introduce una nuova densità generalizzata, tvdpi, con DPI approssimativi 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 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 situazioni in cui è necessario l'output per uno schermo da 720p, gli elementi UI possono essere ridimensionati automaticamente dalla piattaforma.

Framework UI

  • Frammenti
    • Il nuovo corso Fragment.SavedState contiene lo stato di informazioni recuperate da un'istanza di frammento 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.
    • Nuovo attach() e detach() consentono a un'applicazione di ricollegare o scollegare frammenti nella UI.
    • Un nuovo metodo di sovraccarico di setCustomAnimations() ti consente di impostare animazioni specifiche per le operazioni di entrata e uscita, in particolare quando estrarre il gruppo posteriore. L'implementazione esistente non tiene conto per 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.
  • Nuovo "olografico" pubblico stili
    • 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 Le versioni LocalActivityManager sono deprecate
    • 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 lo per accedere ai descrittori non supportato direttamente tramite le API a livello di progetto.

Rete

Telefonia

Utilità principali

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 garantire che siano disponibili solo per i dispositivi su cui sono soddisfatti i 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 vengono 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.

    Per un'applicazione tipica che funziona correttamente con orientamenti sia orizzontali sia verticali non è necessario dichiarare un requisito di orientamento. Piuttosto, un'applicazione progettata principalmente per un determinato orientamento, ad esempio un'app progettata per un televisore, potrebbe dichiarare una delle costanti per garantire che non sia disponibile per i dispositivi che non forniscono tale 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 Differenze 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 offre una versione aggiornata di l'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 sistema per determinare correttamente se un'applicazione è compatibile al sistema prima di installare l'applicazione.

Per utilizzare le API introdotte in Android 3.2 nella tua applicazione: devi compilare l'applicazione sulla base della libreria Android fornita in la piattaforma SDK Android 3.2. In base alle tue esigenze, puoi potrebbe devi aggiungere anche un android:minSdkVersion="13" all'elemento <uses-sdk> nel codice del file manifest.

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