Android 3.0, o Honeycomb, è venuto con alcune modifiche fondamentali all'interfaccia utente, in particolare nella forma dell'API Fragment. Quando stavi leggendo l'ultimo tutorial su come usare i frammenti, probabilmente stavi pensando: "Wow, questo è grandioso, ma non posso usare nulla di tutto questo perché devo scegliere come target più di Motorola Xoom, l'unico Android 3.0 dispositivo attualmente sul mercato. " Fortunatamente per tutti noi sviluppatori, Google ha rilasciato una libreria chiamata pacchetto di compatibilità Android. Questo pacchetto fornisce il supporto per l'API Fragment e altre nuove funzionalità chiave per i dispositivi fino ad Android 1.6. Al momento, questo articolo copre il 97% di tutti i dispositivi Android che accedono attivamente all'Android Market. Impara come usarlo in questo suggerimento veloce.
Il codice di esempio finale che accompagna questo tutorial è disponibile per il download come open-source dall'hosting del codice Google.
Questo tutorial presume che inizierai da dove è stato interrotto il nostro tutorial sull'API Fragment. Puoi scaricare quel codice e compilare da lì, anche se avrai alcune attività che dovrai eseguire senza assistenza, oppure puoi scaricare il codice per questo tutorial e seguirlo. La scelta è tua.
Prima di poter utilizzare il pacchetto di compatibilità, è necessario scaricarlo. Per eseguire questa operazione da Eclipse, apri Android SDK e AVD Manager, fai clic su Pacchetti disponibili, espandi repository Android, quindi scegli il pacchetto di compatibilità Android, al momento revisione 1. Quindi seleziona "Installa selezionato" e segui le istruzioni sullo schermo, incluso eventualmente riavviare Eclipse.
Con il pacchetto di compatibilità installato, è ora necessario configurare il percorso di generazione del progetto per includere la libreria di cui abbiamo bisogno. Per effettuare questa operazione, attenersi alla seguente procedura:
Nota: potrebbe essere necessario copiare il JAR nella directory del progetto e farvi riferimento tramite il pulsante "Aggiungi JAR". In particolare, è probabile che dovrai farlo se usi il controllo del codice sorgente o se condividi in altro modo il tuo progetto di applicazione. Vedrai come è fatto se scarichi il codice corrispondente a questo tutorial.
La libreria esterna fornirà l'interfaccia necessaria per l'utilizzo dell'API Fragment. Non usiamo nient'altro da Android 3.0 (di proposito), quindi non abbiamo più bisogno di fare affidamento sull'SDK di Android 3.0. Invece, passa il tuo obiettivo di costruzione del progetto al livello API 10 (Android 2.3.3). Quando lo fai, noterai diversi errori di compilazione. Correggere gli errori di compilazione in TutListFragment e TutViewerFragment è banale: basta aprirli e premere ctrl-shift-o per passare automaticamente le istruzioni di importazione alle API appropriate dalla libreria di compatibilità invece delle librerie di Android 3.0.
Perché Android 2.3.3 invece di Android 1.6? Principalmente questo per evitare di modificare i riferimenti di layout a "match_parent" con "fill_parent". L'applicazione finale sarà compatibile con 1.6 e aggiorneremo o minSdkVersion nel manifest per dimostrarlo.
L'aggiornamento delle due classi di attività è un po 'più complicato. Sia per TutListActivity che per TutViewer Activity, attenersi alla seguente procedura:
Ora aggiorna l'impostazione manifest per minSdkVersion su 4 e targetSdkVersion su 10.
Questo è tutto ciò che c'è da fare. A questo punto, puoi caricare l'app su quasi tutti i dispositivi ed eseguirla.
Ecco l'app di esempio in esecuzione su un Nexus S con Android 2.3.3 a 800x480:
Eccolo su un Galaxy Tab con Android 2.2 a 1024x600:
E, infine, eccola su un T-Mobile G1 con Android 1.6 a 480x320:
Certo, funziona ancora e sembra lo stesso su Motorola Xoom.
Come puoi vedere dagli screenshot qui sopra, le dimensioni del testo e lo spazio per la WebView variano in base al dispositivo. La doppia visualizzazione non è particolarmente pratica sul G1. È possibile configurare diversi layout per le diverse proprietà del dispositivo per gestire tali situazioni. Se il tuo flusso di lavoro dell'interfaccia utente si adatta al paradigma di visualizzazione singola o doppia supportato dal codice, non sarà necessaria alcuna ulteriore codifica.
Oltre all'API Fragment, il pacchetto di compatibilità fornisce anche una versione dell'API Loader da utilizzare su dispositivi meno recenti. Dato che in questo pacchetto sono già disponibili due API e l'etichetta è Revisione 1, possiamo solo sperare che Google si impegni a portare più API fondamentali a versioni precedenti dell'SDK in futuro.
L'utilizzo del pacchetto di compatibilità rende più ampio il pacchetto dell'applicazione. Ad esempio, l'APK per la nostra applicazione di esempio è passato da 20KB a 71KB. Mentre questo è un cambiamento sostanziale, i 51KB di overhead forniscono un beneficio sufficiente che riteniamo sia molto utile.
Sfruttando il pacchetto di compatibilità Android, hai acquisito un'applicazione sensibile ai frammenti che funzionava solo su dispositivi Android 3.0 e rendendola compatibile con i dispositivi fino al T-Mobile G1, il primo dispositivo Android. Questa è una buona notizia per sviluppatori e utenti. Ora gli sviluppatori possono utilizzare l'API Fragment per qualsiasi applicazione che desiderano!
Gli sviluppatori mobili Lauren Darcey e Shane Conder hanno coautore diversi libri sullo sviluppo di Android: un libro di programmazione approfondito intitolato Sviluppo di applicazioni wireless Android e Sams ti insegna a sviluppare applicazioni Android in 24 ore. Quando non scrivono, passano il loro tempo a sviluppare software mobile presso la loro azienda ea fornire servizi di consulenza. Possono essere contattati via email a [email protected], tramite il loro blog su androidbook.blogspot.com e su Twitter @androidwireless.
я я