Creare applicazioni Android: elementi ed funzionamento di base di un’applicazione
creare applicaioni android

Nel precedente articolo come programmare in Android abbiamo fatto conoscenza con gli strumenti necessari per creare App con Android. Adesso è il momento di conoscere più da vicino il funzionamento della piattaforma Android. Qualsiasi applicazione Android si divide in questi 4 componenti:

  • Activity,
  • Service,
  • Content Provider,
  • Broadcast Receveir.

Questi elementi consentono all’applicazione di integrarsi in maniera perfetta nell’ambiente Android. Prima di spiegare questi elementi è bene sottolineare i principi che stanno alla base della programmazione Android. Questi 2 principi stanno alla base di molte scelte tecniche e progettuali fatte dai progettisti di Android.

Ricordarli e tenerli a mente ci aiuta a comprendere l’ambiente Android. Vediamo adesso questi due concetti ispiratori:

  • salvaguardia delle risorse: Android è stato sviluppato per i sistemi embedded. Questo tipo di sistema storicamente è poche risorse di memoria. Android fin dai suoi esordi è stato molto parsimonioso con la memoria. Infatti, le applicazione Android non perdeono user experience e rimangono sempre fluide. Android è molto abile nel distruggere e ricreare parti dell’applicazione senza farlo notare agli utenti. Naturalmente sarà il programmatore a gestire questo aspetto. Fortunatamente non ci sarà bisogno di un’enorme impegno. Ma sarà necessario prendere in considerazione degli accorgimenti da applicare in maniera consapevole.
  • Sicurezza: Android è figlio di Linux, e quindi ha nel suo DNA la ricerca della stabilità. Ogni applicazione è un’utente a sé stante e vive in un processo in cui viene allocata una nuova istanza della virtual machine. Questo per evitare futuri crash delle applicazioni si propaghino in altre app del dispositivo creando cosi un’instabilità. Questo modo di “isolarsi” si riflette anche nella gestione della memoria di massa. Infatti, le applicazioni hanno un loro spazio in cui posso gestire ed elaborare i dati. Per questo motivo è assolutamente sconsigliata, per non dire vieta ogni pratica che conduca un’app ad invadere lo spazio riservata ad un’altra. Ma questo non significa che le applicazioni non possano comunicare tra di loro. Ma Android preferisce un dialogo utile tra di loro creando dei meccanismi per condividere contenuti e funzioni tra le componenti del sistema.

Sviluppare App Android: le fondamenta

Android è composto da 5 elementi che regolano il flusso delle informazioni e che servono al programmatore a sviluppare l’app. Vediamo:

  • Activity: è l’interfaccia utente. Ogni volta che si pare un’app per usarla di solito si creare un’interazione con una o più pagine di essa. Con le quali si consultano i dati di interesse o si immettono informazioni di input. Si deve sottolineare subito che la realizzazione dell’Activity è il punto iniziare di un qualunque corso di programmazione Android. Infatti, questo, è l’elemento in cui l’utente ha il contatto principale.
  • Service: questo componente svolge un ruolo opposto all’Activity. È un lavoro che viene svolo in background in cui non è necessari l’interazione con gli utenti. I Service hanno un’importanza fondamentale nella programmazione. Essi devono predisporre i dati che le Activity devono mostrare all’utente. Consentendo una velocità maggiore al momento della visualizzazione.
  • Content Provider: nasce con l’obbiettivo di condividere dati tra le applicazioni. Il suo scopo richiama il principio di sicurezza dell’applicazione trattato un un precedente paragrafo. I Content Provider permettono nell’ambito del sistema di suddividere contenuti custoditi in un database, su file o reperibili attraverso l’accesso ad Internet. Questi contenuti possono essere adoperati da altre applicazioni senza però, invadere lo spazio di memoria di altre applicazioni. Invocando quel dialogo “sano” che è già stato spiegato in precedenza.
  • Broadcast Receiver: è un componente che reagisce all’invio di messaggio al livello di sistema. Questa reazione viene chiamata tecnicamente broadcast. Tramite il broadcast Android notifica un determinato evento come per esempi l’arrivo di un SMS, di un chiamata oppure sollecita l’esecuzione di azione. Questi componente sono estremamente utili per gestire in modo istantaneo eventi di circostanze speciali.
  • Intent: è bene ricordare che una componente può attivarne altri grazie ad apposite invocazioni di sistema. Questo processo è un’intenzione e viene codificata attraverso l’Intent. L’Intent è usabile come un normale classe Java. Inoltre, è un potente strumento .

Creare un App Android: Ciclo di vita

Il parametro fondamentale per la sopravvivenza di un sistema mobile è la corretta gestione delle risorse. Il sistema Android conosce bene questo parametro. Basti pensare al funzionamento di uno smartphone. Questo dispositivo si occupa di gestire diverse funzioni, come le chiamate, gli sms, la gestione di pagine web, la gestione dei socil e per molte ore al giorno. Per di più, alcuni non lo spengono. Bloccando in questo modo un processo che è comune nella vita di qualunque PC. Infatti, lo spegnimento ed il conseguente arresto del sistema libera la memoria e pulisce le risorse temporaneamente assegnate alle applicazioni. Ma qual’è il comportamento di Android ?

Android cercherà di tenere in vita ogni processo il più a lungo possibile. Naturalmente è possibile che in alcune condizioni ed in base alle risorse hardware a disposizione il sistema operativo è obbligato a liberare della memoria uccidendo i processi. Ma quale processo uccidere ?

Quest’azione di fonda in base a quanto quel processo sia importante per la user experience. Maggiore sarà l’importanza riconosciuta dal sistema minori saranno le possibilità che venga bloccata.

I processi possono essere classificati, in ordine di importanza decrescente:

  • Processi in foreground: sono tutti quei processi che interagiscono in modo diretto o indiretto con l’utente. Parliamo di quelle applicazioni, che ad esempio, contengono l’Activity attualmente in uso oppure i Service ad essa collegata. Questi sono processi che Android proverà a preservare in modo maggiore. Va sottolineate che anche le applicazioni in Foreground non sono del tutto al sicuro. Infatti, se il sistema non avesse più risorse sufficienti per mantenerli in vita sarebbe costretto a bloccarne qualcuno;
  • Processi visibili: non sono processi importanti come quelli in foreground ma anche loro altamente salvaguardati da Android. Hanno dei componenti ancora visibili agli utenti anche se in quel momento non vi interagiscono più. Ma svolgono un ruolo estremamente importante. Anche in questo caso abbiamo un’insieme di Activity visibili e Service ad esse collegati;
  • Prcessi Service: questi processi hanno dei service in esecuzione. Di solito, eseguono lavori molto utili all’utente. Anche se non sono collegati direttamente con quello che egli vede nel display. Il livello di priorità di questi processi è medio. Sono processi importanti ma non tanto quanto i processi presentati nei punti precedenti;
  • Processi in background: comprendono le Activity non più visibili agli utenti. Questi processi comprendono una categoria molto popolata. Essa è una categoria molto affollata. E comprende un grande numero di applicazioni che l’utente ha usato e poi messo in disparte, ad esempio premendo il tasto Home. Questi processi non sono considerati molti importanti. Infatti, sono degli ottimi candidati alla distruzione nel caso le risorse scarseggiassero;
  • Processi empty: questi sono processi vuoti che non hanno nessuna componente attiva nel sistema. Essi sono conservati soltanto per motivi di cache, per incrementare la velocità di riattivazione; ogni volta si rendesse necessaria. Come è facile comprendere sono i migliori candidati per essere uccisi dal sistema operativo.

Nei prossimi articoli faremo la conoscenza di altre componenti di Android. Per poi speigare come si installano gli strumenti per programmare in questo ambiente. Non perdere i prossimi articoli.


    Hai bisogno di aiuto ?









    (richiesto) GDPR: Ho preso visione della Privacy Policy e do il consenso al trattamento dei dati personali.

    Desideri iscriverti alla newsletter ? (non richiesto)SI Newsletter

    btftraduzioniseoweb andrea barbieri
    BTF Traduzioni SEO Sviluppo Web
    Via Santa Caterijna ,30
    Poggibonsi, Siena, 53036 Italia
    +393296664935
    traduzione, traduttore, programmatore, blogger, realizzazione siti web, Web Marketing, lezioni private di lingua,

    About Andrea Barbieri

    Andrea Barbieri è il titolare dello studio BTF Traduzioni SEO Sviluppo Web. Si occupa di traduzioni professionali, progettazione siti web WordPress, Joomla, Drupal, HTML/CSS, E-commerce, Localizzazione siti web, posizionamento sui motori di ricerca, programmazione per piattaforme web e per microcontrollori. Inoltre si occupa nella progettazione e sviluppo di landing page ed ottimizzazione di testi per landing page e siti web con l?uso del Copywriting. Effettua anche consulenza SEO in Italia e all?estero. Per parlare direttamente con lui clicca sulla casella delle email sotto questa biografia.