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à.
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
esw720dp
.wNNNdp
ehNNNdp
: 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
eh1024dp
.
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 frammentosaveFragmentInstanceState()
. - 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 cheonCreateView()
ma prima che qualsiasi stato salvato venga ripristinato nella vista. - Il metodo
isDetached()
determina se il frammento è stato scollegato esplicitamente dalla UI. - Nuovo
attach()
edetach()
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.
- Il nuovo corso
- Informazioni sulle dimensioni dello schermo in ActivityInfo e ApplicationInfo
ActivityInfo
aggiungeCONFIG_SCREEN_SIZE
eCONFIG_SMALLEST_SCREEN_SIZE
come maschere di bit traconfigChanges
. I bit indicano se un'attività può gestire le dimensioni e le dimensioni minime degli schermi.ApplicationInfo
aggiungelargestWidthLimitDp
,compatibleWidthLimitDp
erequiresSmallestWidthDp
campi, derivata dagli attributi<supports-screens>
corrispondenti nel file manifest dell'applicazione.
- Aiuto per ottenere le dimensioni di visualizzazione da WindowManager
- I nuovi metodi
getSize()
egetRectSize()
consentono alle applicazioni di ottenere le dimensioni non elaborate del display.
- I nuovi metodi
- 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.
- La piattaforma ora espone una serie di elementi "olografici" pubblici stili
per testo, widget e schede nella barra delle azioni e altro ancora. Consulta
LocalActivityManager
,ActivityGroup
e Le versioniLocalActivityManager
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
- Utilità particolabili in Point e PointF
Point
ePointF
ora includono l'interfacciaParcelable
e i metodi di utilitàdescribeContents()
,readFromParcel()
ewriteToParcel()
.
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
- Costanti del tipo di rete
ConnectivityManager
somma le costantiTYPE_ETHERNET
eTYPE_BLUETOOTH
.
Telefonia
- Nuova costante del tipo di rete
NETWORK_TYPE_HSPAP
.
Utilità principali
- Società di servizio cedibili in lotto
- La nuova interfaccia
Parcelable.ClassLoaderCreator
consente l'applicazione per ricevere il ClassLoader in cui viene creato l'oggetto. - Nuovi
adoptFd
,dup()
efromFd()
per la gestioneParcelFileDescriptor
oggetti.
- La nuova interfaccia
- Binder e IBinder
- Nuovo metodo
dumpAsync()
inBinder
eIBinder
consentono alle applicazioni il dump in un file specificato, assicurando che la destinazione venga eseguita in modo asincrono. - Il nuovo codice di transazione del protocollo
IBinder
TWEET_TRANSACTION
consente alle applicazioni di inviare un tweet all'oggetto target.
- Nuovo metodo
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.
android.hardware.screen.landscape
: l'applicazione richiede la visualizzazione in orientamento orizzontale.android.hardware.screen.portrait
: l'applicazione richiede la visualizzazione in orientamento verticale.
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
android.hardware.faketouch.multitouch.distinct
: l'applicazione richiede il supporto dell'input multi-touch emulato con monitoraggio distinto di due o più punti.android.hardware.faketouch.multitouch.jazzhand
: l'applicazione richiede il supporto dell'input multi-touch emulato con monitoraggio distinto di cinque o più punti.
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?