{"id":86,"date":"2016-06-19T23:59:26","date_gmt":"2016-06-19T21:59:26","guid":{"rendered":"http:\/\/www.forlex.it\/blog\/?p=86"},"modified":"2016-06-19T23:59:26","modified_gmt":"2016-06-19T21:59:26","slug":"sviluppare-android-apps-parte-1","status":"publish","type":"post","link":"http:\/\/www.forlex.it\/index.php\/2016\/06\/19\/sviluppare-android-apps-parte-1\/","title":{"rendered":"Sviluppare Android Apps &#8211; parte 1"},"content":{"rendered":"<div class=\"column\">\n<p>L\u2019anatomia di un programma per Android si pu\u00f2 riassumere in cinque parti.<br \/> Queste parti principali collegate l\u2019una a l\u2019altra danno vita ad un vero e proprio programma che pu\u00f2 girare su ambiente Android.<\/p>\n<p>Un programma Android, comprende una prima parte detta VIEW una seconda che \u00e8 la principale detta ACTIVITY una terza che gestisce l\u2019azioni dell\u2019applicazione detta INTENT, un CONTENT PROVIDER per lo scambio dei dati tra il sistema Android e\/o altre applicazioni ed infine un SERVICE che gestisce il tutto in background.<\/p>\n<p>Quindi ricapitolando:<\/p>\n<p><strong>Ambiente VIEW<\/strong><\/p>\n<p>Non \u00e8 nient\u2019altro che un\u2019area rettangolare che contiene degli oggetti. Questi oggetti possono essere pulsanti, etichette, griglie e quant\u2019altro si possa vedere sull&#8217;interfaccia utente di un&#8217;applicazione.<\/p>\n<p><strong>Interfaccia grafica ACTIVITY<\/strong><\/p>\n<p>E\u2019 la vera e propria finestra dell\u2019applicazione. Un applicazione pu\u00f2 avere diverse ACTIVITY. In poche parole sono le finestre del nostro programma le quali possono essere salvate e richiamate di conseguenza.<\/p>\n<p><strong>Azioni specifiche INTENT<\/strong><\/p>\n<p>Le INTENT sono delle azioni specifiche messe a disposizione del sistema operativo, che possono essere richiamate e modificate dalle ACTIVITY create. Sono in sostanza delle azioni e\/o eventi conseguenti ad altre azioni e\/o eventi generati dalla applicazione.<\/p>\n<p><strong>CONTENT PROVIDER<\/strong><\/p>\n<p>Il CONTENT PROVIDER non \u00e8 altro che un contenitore di dati, ovvero \u00e8 un sistema dove si possono immagazzinare le informazioni da condividere tra diverse applicazioni. Questo perch\u00e8 Android \u00e8 un sistema operativo basto su un sistema UNIX e come tale le risorse non possono essere accessibili da tutti.<\/p>\n<p>Un esempio potrebbe essere un database SQLITE, che messo in un CONTENT PROVIDER pu\u00f2 essere visto letto o implementato (dipende da noi cosa vogliamo fare) da altre applicazioni.<\/p>\n<p><strong>SERVICE<\/strong><\/p>\n<p>I SERVICE sono dei processi che girano in background (simile ad un demone in ambiente Linux) il quale pu\u00f2 gestire o essere gestito da altri SERVICE o ACTIVITY.<br \/> Sono gestiti dal sistema operativo Android questo per ottimizzare le risorse in uso in modo da non appesantirlo.<\/p>\n<p>Quindi il sistema operativo Android tramite i SERVICE pu\u00f2 far ripartire, stoppare ACTIVITY o SERVICE ecco perch\u00e8 a volte il sistema operativo Android pu\u00f2 risultare lento.<\/p>\n<p><strong>ANDROID MANIFEST<\/strong><\/p>\n<div class=\"column\">\n<p>Il file \u201cAndroidManifest.xml\u201d \u00e8 il cuore o meglio il file principale di una applicazione Android. Questo perch\u00e8 definisce i contenuti ed il comportamento di una applicazione, difatti in esso viene definito le ACTIVITY ed i SERVICE.<br \/> Inoltre possono essere definiti anche determinati permessi tipo:<\/p>\n<p>1) READ_CONTACTS (lettura contatti)<br \/> 2) WRITE_CONTACTS (scrittura sulla rubrica)<br \/> 3) RECEIVE_SMS (controllo e gestione degli SMS)<br \/> 4) INTERNET (gestione della connessione ad internet) 5) ACCESS_FINE_LOCATION (gestione del GPS)<\/p>\n<p>Oltre al file AndroidManifest.xml alla creazione di un progetto base sono importanti i file contenuti e creati nelle cartelle:<\/p>\n<p>1) \/SRC\/ (codice sorgente)<br \/> 2) \/RESURCES\/ (risorse necessarie)<\/p>\n<p>Ecco ora non ci resta come scegliere di realizzare al nostra applicazione, ci sono due metodi:<\/p>\n<p>1) Metodo PROCEDURALE (utilizzo di JAVA)<br \/> 2) Metodo DICHIARATIVO (gestione degli XML)<\/p>\n<p>Dove il metodo al punto due \u00e8 quello consigliato dalla stessa GOOGLE.<\/p>\n<p style=\"text-align: center;\"><strong>CICLO DI VITA DI UNA APP ANDROID<\/strong><\/p>\n<p style=\"text-align: center;\"><strong><img loading=\"lazy\" width=\"773\" height=\"422\" src=\"images\/stories\/appandroid\/cicloappandroid.png\" alt=\"cicloappandroid\" \/><br \/><\/strong><\/p>\n<p>Come si pu\u00f2 vedere una APP parte dalla definizione della ACTIVITY dichiarate nel file AndroidManifest.xml e lancia la prima activity di default (Activity1). Dove Activity1 ha delle proprie variabili definite nel file \u201cstring.xml\u201d e un layout grafico definito nel file \u201cact1.xml\u201d. Tramite la INTENT la Activity1 richiama la Activity2 dichiarata anche questa nell\u2019AndroidManifest, dove le sue variabili sono definite nel file \u201cstring.xml\u201d (\u00e8 lo stesso di Activity1) e un proprio layout grafico definito in \u201cact2.xml\u201d.<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>L\u2019anatomia di un programma per Android si pu\u00f2 riassumere in cinque parti. Queste parti principali collegate l\u2019una a l\u2019altra danno vita ad un vero e proprio programma che pu\u00f2 girare su ambiente Android. Un programma Android, comprende una prima parte &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"http:\/\/www.forlex.it\/index.php\/2016\/06\/19\/sviluppare-android-apps-parte-1\/\"> <span class=\"screen-reader-text\">Sviluppare Android Apps &#8211; parte 1<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/posts\/86"}],"collection":[{"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/comments?post=86"}],"version-history":[{"count":2,"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/posts\/86\/revisions"}],"predecessor-version":[{"id":88,"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/posts\/86\/revisions\/88"}],"wp:attachment":[{"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/media?parent=86"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/categories?post=86"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.forlex.it\/index.php\/wp-json\/wp\/v2\/tags?post=86"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}