venerdì 18 febbraio 2011

Android, il processo di sviluppo

Grazie all'uso di opportuni plugin il processo di sviluppo per applicazioni Android può essere seguito all'interno dell'IDE stesso. Sono disponibili plugin sia per Eclipse che per NetBeans, due dei più famosi ambienti di sviluppo per applicazioni Java. Esistono almeno due buoni motivi per conoscere e saper avviare il processo di sviluppo di un'applicazione Android anche senza l'uso dei suddetti plugin. Il primo è che, come dicevo poco fa, il plugin per sviluppare le applicazioni Android è disponibile solo per Eclipse e NetBeans. Pertanto, se il vostro IDE preferito non è fra questi non vi resta che utilizzare i tool messi a disposizione dal SDK (Service development kit) per Android. Il secondo motivo, invece, è strettamente didattico. Per imparare i meccanismi nascosti proprio dai plugin consiglio, almeno una volta, lo sviluppo di un'applicazione Android (anche semplice) attraverso i tool del SDK. Ecco cosa offre il il SDK di Android:
  • Android: comando per creare e aggiornare progetti e/o generare AVD (Android virtual device), i dispositivi Android virtuali usati dall'emulatore;
  • Android emulator: permette di emulare un terminale Android, consentendo l'installazione delle applicazioni sviluppate;
  • Android debug bridge: favorisce l'interazione con il dispositivo emulato o collegato;
Il SDK di Android va poi completato con altri tool esterni, occorrono infatti altre applicazioni: Ant, per compilare il progetto (in un unico file apk); Keytool (opzionale), per generare una chiave utile a segnare l'applicazione scritta; Jarsigner (opzionale), per usare la chiave generata sull'applicazione. Vi occorre ovviamente una versione di JDK (Java development kit) e un editor di testi.
La creazione di un nuovo progetto avviene con il comando android che, se non è seguito da alcuna opzione, avvia anche la schermata principale del tool attraverso cui possiamo gestire (graficamente) gli aggiornamenti delle piattaforme di sviluppo, i terminali virtuali e avviare l'emulatore.
Per creare un nuovo progetto va passato al comando android l'opzione create project, seguita dagli argomenti che caratterizzeranno il nuovo progetto, questa la sintassi: android create project --target target_id --name project_name --path path_of_project --activity name_of_activity --package name_of_package, dove:
  • --target indica la piattaforma da usare per lo sviluppo dell'applicazione. La lista delle piattaforme disponibili sul proprio computer può essere ottenuta con il comando android list targets;
  • --name specifica il nome del progetto;
  • --path indica la directory da usare per il progetto (se non esiste verrà creata nella directory di lavoro);
  • --activity specifica il nome dell'attività eseguita all'avvio dell'applicazione. Questo argomento permette di generare la classe Java che descrive l'attività;
  • --package indica il nome per il package del progetto;
Ad esempio, il comando android create project --target 1 --name FirstApp --path /home/user/FirstApp --activity FirstAppActivity --package android.firstapp crea la cartella /home/user/FirstApp con all'interno la struttura utile allo sviluppo dell'applicazione. Queste le cartelle e i file generati:
  • AndroidManifest.xml: il manifesto dell'applicazione;
  • build.xml: il file xml utile alla compilazione con ant;
  • default.properties: file con le proprietà di default per la compilazione (non modificatelo);
  • build.properties: file usato per sovrascrivere le proprietà da usare in fase di compilazione;
  • local.properties: file con le proprietà locali per ant, quelle aggiunte da noi;
  • src/ raccoglie la struttura, secondo le disposizioni dettate dal package di appartenenza, che ospita il codice sorgente dell'applicazione;
  • bin/ raccoglie il prodotto della compilazione, il file apk (da usare per installare l'applicazione), il file dex (l'applicazione compilata per l'esecuzione sulla DVM) e le classi compilati (all'interno di altre cartelle);
  • gen/ raccoglie i file generati automaticamente da ant, è qui che si trova la famosa classe R.java (che associa le risorse agli id, per referenziarli all'interno del codice);
  • libs/ raccoglie le librerie esterne usate dall'applicazione (se presenti);
  • res/ raccoglie le risorse utilizzate nell'applicazione;
  • tests/ raccoglie una copia della struttura fin qui vista, utile per svolgere test (opzionale);
Con il comando android possiamo inoltre aggiornare un vecchio progetto attraverso l'opzione update project e i parametri --name project_name --target id --path path_to_your_project, dove:
  • --name è il nuovo nome del progetto (parametro opzionale se non vogliamo modificare il nome);
  • --target specifica un nuovo target per l'applicazione;
  • --path indica il path del progetto da aggiornare (parametro indispensabile);
Ad esempio, il comando android update project --path /home/user/FirstApp --name FirstAppV2 modifica il nome dell'applicazione creata prima (eseguite una copia della vecchia applicazione quando ne modificate il target o il nome, per una nuova versione). La compilazione avviene eseguendo il comando ant nella cartella di progetto. L'installazione sul terminale, invece, avviene attraverso il comando adb install FirstAppV2.apk (eseguito all'interno della cartella di progetto).
Per rimuovere l'applicazione sul dispositivo virtuale, infine, abbiamo due possibilità. La prima, ovviamente, è attraverso l'interfaccia grafica del dispositivo emulato. Troviamo un elenco delle applicazioni installate nella scheda "Scaricate" oppure "In esecuzione" della voce "Gestisci applicazioni" del menu "Impostazioni, Applicazioni". Selezionando un'applicazione dall'elenco possiamo decidere se terminarla (task manager di Android) o disinstallarla. La seconda possibilità prevede invece l'uso del terminale, con il comando adb shell (che trovate nella cartella plattform-tools/) accediamo al terminale del dispositivo. Per cancellare l'applicazione è sufficiente digitare il comando rm /data/app/nome_applicazione. Per cercare il nome dell'applicazione e ottenere un elenco completo delle applicazioni esterne installate vi coniglio di provare con il comando ls /data/app/.
Attenzione, se non avete aggiunto una nuova variabile di ambiente al vostro sistema operativo (un nuovo path in cui il terminale deve cercare i comandi), i comandi saranno eseguibili solo se la directory di lavoro coincide con la directory che ospita i comandi (anteponendo agli stessi il path per la ricerca locale ./).

Nessun commento:

Posta un commento