Android App Development, Creare la nostra prima appNicola Corti
Intervento al Linux Day 2014@Pisa, organizzato da parte del GULP. L'intervento introduce allo sviluppo su piattaforma Android, mostrando i vari strumenti e gli accorgimenti da seguire per programmare sulla nota piattaforma del robottino verde.
Queste slide e questo lavoro, danno un'infarinatura di quello che è Android e il mondo che gira intorno a lui.
L'opera comprende i seguenti capitoli:
* Quando nasce Android?
* Dispositivi e Licenza di Distribuzione
* L'architettura del sistema operativo Android
* Perché Dalvik non è una vera Java Virtual Machine?
* Quante releases di Android sono stare rilasciate?
* Cosa ci posso fare con Android?
* Che app trovo di default su Android?
* Market alternativi per Android?
* Android è sicuro come sistema operativo?
* Mi conviene sviluppare una mia applicazione per Android?
* Posso guadagnare con Android?
* Link, Fonti e Note
Introduzione alla programmazione Android - Android@tulugIvan Gualandri
Prima lezione del corso android tenuto presso il TuLug (Tuscia Lug) A Viterbo. Le slides sono completamente in italiano (Slides are in italian! Sorry!)
Eccoci qui alla quinta puntata e serie di slide dedicate ad Android. Con questo quinto capitolo della saga andremo e soprattutto entreremo nel cuore della situazione.
Questa puntata vi porterò alla scoperta dei tutti quegli strumenti necessari e utili per lo sviluppo di un'applicazione per la piattaforma Android.
Come sempre anche queste slide finiranno con una folta lista di link utili allo scopo.
BUONA LETTURA
Alla scoperta del codice sorgente di Android è il secondo appuntamento, che è la continuazione del argomento Conoscere Android per poterlo Programmare.
All'interno di questo appuntamento e di queste slide, potete trovare le guide e i dettagli sul come scaricare e configurare il vostro PC, per pote analizzare il codice sorgete di Android e modificarlo.
Mi auguro che anche questo appuntamento sia di vostro gradimento, come il precedente (http://goo.gl/llgcUz)
Android App Development, Creare la nostra prima appNicola Corti
Intervento al Linux Day 2014@Pisa, organizzato da parte del GULP. L'intervento introduce allo sviluppo su piattaforma Android, mostrando i vari strumenti e gli accorgimenti da seguire per programmare sulla nota piattaforma del robottino verde.
Queste slide e questo lavoro, danno un'infarinatura di quello che è Android e il mondo che gira intorno a lui.
L'opera comprende i seguenti capitoli:
* Quando nasce Android?
* Dispositivi e Licenza di Distribuzione
* L'architettura del sistema operativo Android
* Perché Dalvik non è una vera Java Virtual Machine?
* Quante releases di Android sono stare rilasciate?
* Cosa ci posso fare con Android?
* Che app trovo di default su Android?
* Market alternativi per Android?
* Android è sicuro come sistema operativo?
* Mi conviene sviluppare una mia applicazione per Android?
* Posso guadagnare con Android?
* Link, Fonti e Note
Introduzione alla programmazione Android - Android@tulugIvan Gualandri
Prima lezione del corso android tenuto presso il TuLug (Tuscia Lug) A Viterbo. Le slides sono completamente in italiano (Slides are in italian! Sorry!)
Eccoci qui alla quinta puntata e serie di slide dedicate ad Android. Con questo quinto capitolo della saga andremo e soprattutto entreremo nel cuore della situazione.
Questa puntata vi porterò alla scoperta dei tutti quegli strumenti necessari e utili per lo sviluppo di un'applicazione per la piattaforma Android.
Come sempre anche queste slide finiranno con una folta lista di link utili allo scopo.
BUONA LETTURA
Alla scoperta del codice sorgente di Android è il secondo appuntamento, che è la continuazione del argomento Conoscere Android per poterlo Programmare.
All'interno di questo appuntamento e di queste slide, potete trovare le guide e i dettagli sul come scaricare e configurare il vostro PC, per pote analizzare il codice sorgete di Android e modificarlo.
Mi auguro che anche questo appuntamento sia di vostro gradimento, come il precedente (http://goo.gl/llgcUz)
Il terzo capitolo della saga, dedicata alla scoperta di Android, ci porta alla scoperta dei package di Android. In queste slide vengono illustrati una serie dei package Android più famosi e vengono analizzati schematicamente due di essi
Come sempre mi auguro che anche questo nuovo capitolo sia di vostro gradimento, per qualsiasi domanda o chiarimento aspetto un commento qui sotto.
Android, panoramica sulla storia, la licenza, il modello di sviluppo, perchè e come Google si è buttato nel mondo mobile.
Android programmazione, panoramica veloce sulle particolarità della programmazione Android rispetto altre piattaforme.
Una carrellata sugli strumenti di sviluppo per le principali piattaforme mobile: Android, iPhone, Windows Phone 7, Symbian e Blackberry.
Le principali caratteristiche, IDE, tool crossplatform e application store.
WhyMCA HappyHour
Android è la piattaforma aperta di mobile computing sviluppata dalla Open Handset Alliance e sostenuta da Google. Basata su Linux e dotato di un ambiente Java ottimizzato e una ricca libreria di classi, Android si candida per essere l'ambiente applicativo ideale per la telefonia cellulare. Dopo aver illustrato l'architettura del framework e l'IDE di sviluppo, vedremo la realizzazione di una applicazione Java, sfruttando le librerie di Android e testandola sull'emulatore e su un terminale HTC G1. Si vedra' come realizzare una user interface, conoscere e utilizzare le semplici ma potenti funzionalità disponibili. In chiusura si fara' un confronto critico tra Android, iPhone e Java ME.
Event: Giffoni Open Makers Day 2013
Speaker: Valentina Pelliccia
Android è un sistema operativo open-source basato su kernel Linux e progettato per dispositivi mobili come smartphone e tablet. Il progetto Open Source Android guidato da Google dispone di una vasta comunità di sviluppatori divenendo in pochi anni uno dei leader nel mercato mobile.
Intervento al linux day 2013
I tools di programmazione per le device mobili sono quasi all'altezza di quelli per Linux; è giunta quindi l'ora di cimentarsi nella scrittura di script e programmi per telefoni: è facile, divertente ed i risultati sono interessanti.
In venti minuti vi mostrerò come si può scrivere un semplice programma per un telefono o tablet Android utilizzando Python e tools open source
Seminario agli studenti di informatica dell'unical . Un applicazione ios come si realizza , come si pubblica sullo store , come si monetizza , una visione d'insieme
Slides dalle lezioni del corso di Strumenti e applicazioni del Web - Corso di laurea magistrale in Teoria e tecnologia della comunicazione - Università di Milano Bicocca - A.A.2014-15 - Prof.R.Polillo (lezione del 4 marzo 2015)
1.ANDROID
2.INTRODUCTION
Android is a Linux-based operating system designed primarily for touchscreen mobile devices such as smartphones and tablet computers.
Initially developed by Android, Inc., which Google backed financially and later bought in 2005, Android was unveiled in 2007 along with the founding of the Open Handset Alliance: a consortium of hardware, software, and telecommunication companies devoted to advancing open standards for mobile devices. The first Android-powered phone was sold in October 2008.
3.ARCHITECTURE
4.Android consists of a kernel based on Linux kernel version 2.6 and, from Android 4.0 Ice Cream Sandwich onwards, version 3.x, with middleware, libraries and APIs written in C, and application software running on an application framework which includes Java-compatible libraries based on Apache Harmony.
Android uses the Dalvik virtual machine with just-in-time compilation to run Dalvik 'dex-code' (Dalvik Executable), which is usually translated from Java bytecode.The main hardware platform for Android is the ARM architecture.
5.APPLICATIONS
Android has a growing selection of third party applications, which can be acquired by users either through an app store such as Google Play or the Amazon Appstore, or by downloading and installing the application's APK file from a third-party site.
The Play Store application allows users to browse, download and update apps published by Google and third-party developers, and is pre-installed on devices that comply with Google's compatibility requirements.
6.APPLICATIONS
The app filters the list of available applications to those that are compatible with the user's device, and developers may restrict their applications to particular carriers or countries for business reasons. Purchases of unwanted applications can be refunded within 15 minutes of the time of download, and some carriers offer direct carrier billing for Google Play application purchases, where the cost of the application is added to the user's monthly bill.
As of September 2012, there were more than 675,000 apps available for Android, and the estimated number of applications downloaded from the Play Store was 25 billion.
7.SECURITY & PRIVACY
Android applications run in a sandbox, an isolated area of the system that does not have access to the rest of the system's resources, unless access permissions are explicitly granted by the user when the application is installed. Before installing an application, the Play Store displays all required permissions: a game may need to enable vibration or save data to an SD card, for example, but should not need to read SMS messages or access the phonebook. After reviewing these permissions, the user can choose to accept or refuse them, installing the application only if they accept.
The document discusses the Android open source platform. It provides an overview of the Open Handset Alliance project led by Google to develop Android. Key information presented includes the architecture and building blocks of Android applications, the development tools available, and the lifecycle process Android uses to manage applications and processes based on importance.
Google acquired Android Inc. in 2005 and launched the Android mobile operating system in 2007 with the Open Handset Alliance, including companies like Qualcomm. Android uses the Linux kernel for core functions and relies on Java for application development. It has an open source model and uses components like SQLite for data storage, Dalvik virtual machine, and integrated browser. While popular for its openness and customization, Android faces security and compatibility challenges. Overall it has become very successful with the mobile market.
Il terzo capitolo della saga, dedicata alla scoperta di Android, ci porta alla scoperta dei package di Android. In queste slide vengono illustrati una serie dei package Android più famosi e vengono analizzati schematicamente due di essi
Come sempre mi auguro che anche questo nuovo capitolo sia di vostro gradimento, per qualsiasi domanda o chiarimento aspetto un commento qui sotto.
Android, panoramica sulla storia, la licenza, il modello di sviluppo, perchè e come Google si è buttato nel mondo mobile.
Android programmazione, panoramica veloce sulle particolarità della programmazione Android rispetto altre piattaforme.
Una carrellata sugli strumenti di sviluppo per le principali piattaforme mobile: Android, iPhone, Windows Phone 7, Symbian e Blackberry.
Le principali caratteristiche, IDE, tool crossplatform e application store.
WhyMCA HappyHour
Android è la piattaforma aperta di mobile computing sviluppata dalla Open Handset Alliance e sostenuta da Google. Basata su Linux e dotato di un ambiente Java ottimizzato e una ricca libreria di classi, Android si candida per essere l'ambiente applicativo ideale per la telefonia cellulare. Dopo aver illustrato l'architettura del framework e l'IDE di sviluppo, vedremo la realizzazione di una applicazione Java, sfruttando le librerie di Android e testandola sull'emulatore e su un terminale HTC G1. Si vedra' come realizzare una user interface, conoscere e utilizzare le semplici ma potenti funzionalità disponibili. In chiusura si fara' un confronto critico tra Android, iPhone e Java ME.
Event: Giffoni Open Makers Day 2013
Speaker: Valentina Pelliccia
Android è un sistema operativo open-source basato su kernel Linux e progettato per dispositivi mobili come smartphone e tablet. Il progetto Open Source Android guidato da Google dispone di una vasta comunità di sviluppatori divenendo in pochi anni uno dei leader nel mercato mobile.
Intervento al linux day 2013
I tools di programmazione per le device mobili sono quasi all'altezza di quelli per Linux; è giunta quindi l'ora di cimentarsi nella scrittura di script e programmi per telefoni: è facile, divertente ed i risultati sono interessanti.
In venti minuti vi mostrerò come si può scrivere un semplice programma per un telefono o tablet Android utilizzando Python e tools open source
Seminario agli studenti di informatica dell'unical . Un applicazione ios come si realizza , come si pubblica sullo store , come si monetizza , una visione d'insieme
Slides dalle lezioni del corso di Strumenti e applicazioni del Web - Corso di laurea magistrale in Teoria e tecnologia della comunicazione - Università di Milano Bicocca - A.A.2014-15 - Prof.R.Polillo (lezione del 4 marzo 2015)
1.ANDROID
2.INTRODUCTION
Android is a Linux-based operating system designed primarily for touchscreen mobile devices such as smartphones and tablet computers.
Initially developed by Android, Inc., which Google backed financially and later bought in 2005, Android was unveiled in 2007 along with the founding of the Open Handset Alliance: a consortium of hardware, software, and telecommunication companies devoted to advancing open standards for mobile devices. The first Android-powered phone was sold in October 2008.
3.ARCHITECTURE
4.Android consists of a kernel based on Linux kernel version 2.6 and, from Android 4.0 Ice Cream Sandwich onwards, version 3.x, with middleware, libraries and APIs written in C, and application software running on an application framework which includes Java-compatible libraries based on Apache Harmony.
Android uses the Dalvik virtual machine with just-in-time compilation to run Dalvik 'dex-code' (Dalvik Executable), which is usually translated from Java bytecode.The main hardware platform for Android is the ARM architecture.
5.APPLICATIONS
Android has a growing selection of third party applications, which can be acquired by users either through an app store such as Google Play or the Amazon Appstore, or by downloading and installing the application's APK file from a third-party site.
The Play Store application allows users to browse, download and update apps published by Google and third-party developers, and is pre-installed on devices that comply with Google's compatibility requirements.
6.APPLICATIONS
The app filters the list of available applications to those that are compatible with the user's device, and developers may restrict their applications to particular carriers or countries for business reasons. Purchases of unwanted applications can be refunded within 15 minutes of the time of download, and some carriers offer direct carrier billing for Google Play application purchases, where the cost of the application is added to the user's monthly bill.
As of September 2012, there were more than 675,000 apps available for Android, and the estimated number of applications downloaded from the Play Store was 25 billion.
7.SECURITY & PRIVACY
Android applications run in a sandbox, an isolated area of the system that does not have access to the rest of the system's resources, unless access permissions are explicitly granted by the user when the application is installed. Before installing an application, the Play Store displays all required permissions: a game may need to enable vibration or save data to an SD card, for example, but should not need to read SMS messages or access the phonebook. After reviewing these permissions, the user can choose to accept or refuse them, installing the application only if they accept.
The document discusses the Android open source platform. It provides an overview of the Open Handset Alliance project led by Google to develop Android. Key information presented includes the architecture and building blocks of Android applications, the development tools available, and the lifecycle process Android uses to manage applications and processes based on importance.
Google acquired Android Inc. in 2005 and launched the Android mobile operating system in 2007 with the Open Handset Alliance, including companies like Qualcomm. Android uses the Linux kernel for core functions and relies on Java for application development. It has an open source model and uses components like SQLite for data storage, Dalvik virtual machine, and integrated browser. While popular for its openness and customization, Android faces security and compatibility challenges. Overall it has become very successful with the mobile market.
Presentation on Android operating systemSalma Begum
The document summarizes information about the Android operating system. It discusses the origin of Android, its features, architecture, versions, application development process, limitations and future. Android was developed by Android Inc which was later acquired by Google. It has an open source model and uses Linux kernel. The architecture includes libraries, Dalvik VM, application framework and core applications. There are many versions of Android with incremental updates and improvements.
This document provides an overview of the Android operating system, including its history, architecture, versions, features, advantages, and disadvantages. Android was founded in 2003 and was later acquired by Google in 2005. It uses an open source Linux kernel and is developed by the Open Handset Alliance. The architecture consists of four layers - the Linux kernel, native libraries, the Android runtime (Dalvik virtual machine), and applications. Key features include multi-tasking, a rich application ecosystem, and integration with Google services. Advantages are customization and openness, while disadvantages include inconsistent designs between apps and battery drain issues on some devices.
How to Become a Thought Leader in Your NicheLeslie Samuel
Are bloggers thought leaders? Here are some tips on how you can become one. Provide great value, put awesome content out there on a regular basis, and help others.
Alessandro Forte, co-fondatore di DotNetCampania, illustra ai soci dell’associazione la piattaforma Android e come sviluppare applicazioni per tale piattaforma.
Introduzione ai Big Data e alla scienza dei dati - Big DataVincenzo Manzoni
Lezione 5 del corso di analisi dati tenuto al Palazzolo Digital Hub (Palazzolo sull'Oglio, Brescia) nel 2014. In questa quinta e ultima lezione si introducono le tecnologie dei Big Data.
Slides del bootcamp tenutosi alla DevFestMed 2016 a Catania in cui sono stati analizzati pro e contro tra l'approccio Xamarin cross-platform e lo sviluppo nativo sulle singole piattaforme (Android/iOS)
Slides del bootcamp tenutosi alla Google DevFest Mediterranean 2016 a Catania, in cui sono stati analizzati pro e contro tra l'approccio Xamarin cross-platform e lo sviluppo nativo sulle singole piattaforme (Android/iOS)
A cura di Marco Rinaldi, Andrea Battaglia e Carmelo Ruota, sviluppatori mobile con esperienza
Sviluppo e deployment cross-platform: Dal mobile alla Tv Codemotion
Presentazione tenuta da Andrea Trento in occasione del Codemotion del 5 marzo a Roma - http://www.codemotion.it/
Progettare e sviluppare contenuti cross-platform in grado di essere deployate su differenti piattaforme (desktop, mobile, TV, ecc.) implica l’utilizzo di svariate tecnologi e/o la creazione di differenti versioni a compensazione della frammentazione del mercato. Analizzeremo come progettare e fare cross' coding 'sfruttando al meglio le potenzialità della Flash Plartform tecnology e di AS3. Un sessione pratica che condurrà noi e i contenuti su piattaforma Android, iOS, TabletOS, desktop,TV.
3. Introduzione
✔
Strumenti:
✔
Java Development Kit 1.5.0 (o superiore)
(http://www.oracle.com/technetwork/java/javase/
downloads/index.html)
✔
Eclipse (http://www.eclipse.org/downloads/)
✔
Android SDK
(http://developer.android.com/sdk/index.html)
✔
Android Developer Tools Eclipse plugin
(https://dl-ssl.google.com/android/eclipse/)
Corso Android
4. Introduzione
✔
Cos'è Android
Sistema operativo+middleware+applicazioni
✔
insieme di strumenti e librerie per la realizzazione di
applicazioni mobili
✔
Open (?)
✔
Utilizza librerie e tecnologie open (Kernel Linux 2.6,
librerie Http Apache,...)
✔
Open Handset Alliance (OHA)
✔
Opensource Apache Licence 2.0
Corso Android
7. Introduzione
Linguaggi di programmazione
✔
Java (SDK Java 5)
✔
Native Development KIT C/C++
✔
Non ha la JVM ma la DVM (Dalvik VM)
✔
DVM ottimizzata per l'esecuzione di applicazioni su
dispositivi con risorse limitate (fle .dex)
✔
Il fle .dex è ottimizzato anche nella sua dimensione
✔
Utilizza un meccanismo di generazione di codice detto
register based (java è stack based), il quale comporta un
numero inferiore del 30% di istruzioni
Corso Android
8. Introduzione
✔
JIT: si ha un'identifcazione e traduzione di parti di codice
da Java a C/C++ con miglioramento delle prestazioni di
esecuzione.
✔
Ogni applicazione ha un User ID diferente
✔
Ogni applicazione è eseguita nel suo processo (simile a
Chrome)
✔
Ogni applicazione ha una propria istanza di VM
Corso Android
10. Introduzione
Frammentazione
✔
Le API di un particolare API Level sono disponibili in tutti I
dispositivi che supportano tale versione
✔
Un device che accede al Market vedrà solo le applicazioni
compatibili
✔
Compatibilità Software e Hardware
Corso Android
11. Introduzione
Schermi
✔
Screen size: Dimensione del display in pollici (Small,
Normal, Large, Exra large)
✔
Aspect ratio: Rapporto tra larghezza e altezza
✔
Resolution: numero di pixel del display in orizzontale e
verticale
✔
Density: numero di pixel per unità di lunghezza fsica
(Low, Medium, High, Extra High)
✔
Density Indipendent: dimensione non dipendente dalla
pixel (dip o dp) densità
Corso Android
15. Componenti e risorse
✔
Activity
✔
Intent e Intent Filter
✔
Broadcast Intent Provider
✔
Content Provider
✔
Services
Corso Android
16. Componenti e risorse
Activity Intent [Filter]
✔
UI applicazione ✔
Chiamano le Activity
✔
Package android.app ✔
Package android.content
✔
Lifecycle (onCreate(), …) ✔
Permettono di interagire
✔
Eseguite all'interno di un con servizi del sistema
processo Linux
String uri=“content://contacts/123”
Intent intent = new Intent( Intent.
ACTION_GET_CONTENT,uri);
Intent Filter: dichiarazione
intent gestiti
Corso Android
17. Componenti e risorse
Broadcast Intent Service
Receiver
✔
Package android.app
✔
Gestione di eventi esterni Gps, rss...
✔
✔
Package android.content
✔
Registrazione su handler di
eventi specifci
Corso Android
18. Componenti e risorse
Content Provider
✔
Gestione dati (fle, SQLite)
✔
Package android.content
✔
Di default una applicazione
non può accedere ad db si
un'altra
Corso Android
19. Componenti e risorse
Risorse ✔
Res
compilate e accessibili
✔
Assets tramite la classe R
✔
Res
✔
Drawable-hdpi ✔
Assets
✔
Drawable-ldpi non compilate e gestite
✔
Drawable-mdpi attraverso la classe
✔
Layout AssetManager (android.res)
✔
Values
✔
AndroidManifest.xml
Corso Android
20. Componenti e risorse
Tipo Cartella Costanti
String /res/values R.string.<chiave>
String array /res/values R.array.<chiave>
Integer array /res/values R.array.<chiave>
Color /res/values R.color.<chiave>
Color Drowable /res/values R.drawable.<chiave>
o /res/drawable
Stili e temi /res/values R.style.<chiave>
Dimensioni /res/values R.dimen.<chiave>
Corso Android
21. Componenti e risorse
Tipo Cartella Costanti
Animator animator R.animator
Anim anim R.anim
Color list /res/color
Menu menu R.menu
Assets assets Nessuna
Drawable /res/drawable R.drawable.<flename>
Xml generici /res/xml R.xml.<flename>
Raw /res/raw R.raw.<flename>
Corso Android
22. Componenti e risorse
Layout Risorse
✔
Defniscono l'aspetto UI ✔
String
✔
Editor dedicato ✔
String array
✔
ID ✔
Integer Array
@[package:][+]type/name
public Resources getResources()
✔
-getString( R.string.name)
-getStringArray( R.array.name)
-getIntAray( R.array.name)
Corso Android
23. Componenti e risorse
Format e Plurali
✔
Color
✔
Like printf
✔
ColorStateList
%[posizione]$[tipodato]
✔
Dimension
[posizione]={1:n_runtime} [px, in,mm,pt,dp,sp]
✔
Stili
[tipodato]={int:d,
string:s,foat:f,...}
Corso Android
28. Activity
Activity
✔
Le applicazioni android devono sfruttare al meglio le
risorse disponibili e dare una buona percezione d'uso
all'utente.
✔
Devono rispondere immediatamente alle azioni di un
utente.
Corso Android
29. Activity
Stati
✔
Active: Activity in cima allo stack, visibile e con il focus;
✔
Paused: Activity non attiva ma visibile, non è sensibile agli
eventi generati dagli utenti;
✔
Stopped: Activity non attiva e non visibile;
✔
Inactive: Activity eliminata o non ancora creata.
Corso Android
31. Activity
Ciclo di vita
✔
onCreate(): Invocata nella creazione dell'Activity,
contiene le informazioni di inizializzazione;
✔
onStart(): Visualizzazione Activity;
✔
onResume(): l'Activity ha il focus ed è in cima allo stack, è
nello stato di running;
onPause(): l'Activity non è sensibile agli eventi generati
✔
dagli utenti;
Corso Android
32. Activity
Ciclo di vita
✔
onRestart(): simile alla onCreate(), si occupa di
ripristinare lo stato;
✔
onStop(): l'Activity è inattiva
✔
onDestroy(): stato di inattività, l'Activity può essere
eliminata.
Corso Android
33. Activity
Processi
✔
Foreground: sono quelli in esecuzione (in cima allo stack);
✔
Visible: eseguono le attività nello stato di Paused, non
interagiscono con l'utente;
✔
Service: processi non associati ad un interfacia grafca;
✔
Background: processi non visibili all'utente, sui quali è
stato invocato il metodo onStop();
✔
Empty: processi non legati ad alcun componente
predefnito della piattaforma.
Corso Android
34. Intent
✔
Intent: strumento per la collaborazione di due o più
componenti
✔
IntentFilter
✔
IntentResolution
Corso Android
35. Intent
Intent espliciti
Intent intent =
new Intent(TestActivity.this,TestSecondActivity.class);
startActivity(intent);
Intent intent= new Intent();
ComponentName comp =
new ComponentName(TestActivity.this,
TestSecondActivity.class)
intent.setComponent(comp);
startActivity(intent);
Corso Android
36. Intent
✔
Intent esplicite si usano quando si conosce a priori le
action da chiamare;
✔
Android si basa sull'utilizzo di intent che permettono la
comunicazione tra applicazioni diverse in base alle info
defnite nell'AndroidManifest.xml
Late Runtime Binding (LRB)
✔
Se l'intent non specifca il componentName di
destinazione allora è necessario specifcare il tipo di
azione da eseguire: Intent setAction(String action)
Corso Android
38. Intent
Category
Defnita nell'IntentFilter
<category
android:name="android.intent.category.LAUNCHER" />
Extra
Insieme di info che si possono associare ad un Intent oltra
a quelle defnite con setData()
[ putExtras(), getExtras() ]
Ex Mail: Intent.EXTRA_MAIL e Intent.EXTRA:SUBJECT
Corso Android
40. View e Layout
•
View
•
View Group (pattern GoF Composite)
•
Adapter
Corso Android
41. View e Layout
View
•
I componenti visuali estendono: android.view.View
•
Gli aggregatori estendono: android.view.View
•
Ogni Activity ha una window
•
Ogni view chiama la setContentView();
•
R.java è generato automaticamente
Corso Android
42. View e Layout
View
•
Permetono di visualizzare l'informazione e gestire
l'interazione con l'utente
•
Sono descritte tramite xml (infating)
•
Sono identifcate tramite in id
•
Dimensione: (Desiderata (measured),Efettiva)
•
Le view contengono informazioni sui padding, mentre I
layout sui margini
Corso Android
43. View e Layout
Widget Gestione dello Stato
(android.view.View)
Classe interna:
•
TextView TextView.SavedState
•
Button
•
CheckBox
•
RadioButton
•
ToggleButton
•
ImageView
•
AnalogClock
•
DigitalClock
•
...
Corso Android
45. View e Layout
Delegation Model (GoF Observer):
•
Un componente esegue un azione a seguito di un evento
tramite l'entità Adapter che defnisce le operazioni che la
sorgente dell'evento chiamerà per la sua notifca.
•
ThreadUI (SingleThread Model)
Focus: a seconda che si usi un device con o senza tastiera
•
possono cambiare le modalità (textarea, button,...)
Corso Android
46. View e Layout
Linear Layout Relative Layout Table Layout
Grid Layout Tab Layout List View
Corso Android
47. View e Layout
View Group
LayoutParams
MarginLayoutParams
layout_height e layout_width
MATCH_PARENT: la view occupa tutto lo spazio disponibile
WRAP_CONTENT: la view occupa lo spazio necessario al
proprio contenuto
layout_marginBottom, layout_marginLeft,
layout_marginRight, layout_marginTop
Corso Android
48. View e Layout
Adapter
Componente che permette di disaccoppiare la sorgente dei
dati dal componente responsabile per la loro
visualizzazione, (android.widget)
DAO (data access object) interfaccia operazioni CRUD
ListAdapter: strumento per visualizzare informazioni sotto
forma di lista scrollabile
Corso Android
49. Toast
Visualizzazione di messaggi temporanei sullo schermo
public void showToast(View view) {
Toast toast = Toast.makeText(Context context, int
resourceId, int duration);
toast.show();
}
Context context = getApplicationContext();
Toast toast = Toast.makeText(context, "Hello toast!",
Toast.LENGTH_SHORT);
toast.show();
Corso Android
50. Menu
•
Sistema (File, Edit, View...)
•
Option menu (specifci dell'applicazione)
•
Menu contestuali
package android.view
public boolean onCreateOptionsMenu(Menu menu)
ret: indica se il menu deve essere visualizzato
invocato solo la prima volta che è richiesto il menu
public boolean onPrepareOptionsMenu(Menu menu)
invocato prima che di ogni visualizzazione del menu,
necessario per modifcarlo dinamicamente
Corso Android
51. Menu
Ogni elemento di menu (item) è defnito da:
•
Un identifcatore di item (itemId)
•
Un identifcatore di gruppo (groupId)
•
Una label (title)
•
Un ordine
•
Si può identifcare ed accedere ad un gruppo di item
public abstract void setGroupVisible(int group,
boolean visible)
Corso Android
53. Menu
MenuItem
•
Intent
•
OnMenuClickListner
•
Callback
public boolean onOptionsItemSelected(MenuItem item) {
//...
return super.onOptionsItemSelected(item);
}
Corso Android
54. Menu
ContextMenu
È legato alla View ma la sua gestione è afdata all'Activity
public void registerForContextMenu(View view)
public void onCreateContextMenu(ContextMenu menu,
View v, ContextMenuInfo menuInfo)
Corso Android
55. Dialog
•
Alert
•
Progress
•
Date e time picker
public final void showDialog(int id)
protected Dialog onCreateDialog(int id)
private Dialog createCustomDialog() {
Dialog myDialog = new Dialog(this);
//...
return customDialog;}
Corso Android
57. Persistenza
Preferences
Framework per la gestione delle “preferenze” delle
•
applicazioni
public abstract SharedPreferences
getSharedPreferences(String name, int mode)
Default Mode: Context.MODE_PRIVATE
Corso Android
58. Persistenza
Gestione di fle
Java strandard: Stream
•
Lettura o scrittura su Filesystem o SD card
•
Lettura fle nel pacchetto apk
•
public abstract FileInputStream
openFileInput(String name)
•
public abstract FileInputStream
openOutputInput(String name)
•
Java NIO (New I/O) utilizza i bufer
Corso Android
59. Persistenza
Gestione di fle
String path = Environment.
getExternalStorageDirectory().
getAbsolutePath() + “fleName.ext”;
non: “data/data/packageName/fles/fleName.ext”;
<uses-permission android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"/>
Corso Android
60. Persistenza
SQLite
•
DBMS compatto (500KB)
•
Veloce, semplice e portabile
•
android.database e android.database.sqlite
•
public static SQLiteDatabase openDataBase
(String path,
SQLiteDatabase.CursorFactory cursorFactory,
•
int flags);
•
String path =
/data/data/<packageName>/database/<nameDB.db>
•
int flags = CREATE_IF_NECESSARY | OPEN_READWRITE
Corso Android
62. Persistenza
Content Provider
Repository di informazioni accessibili da applicazioni
•
diverse attraverso modalità standard
URI: content://autority/path/id
•
prefsso che identifca il content provider
•
Content provider (www.contentprovider.com:8080)
•
/data/users
•
id dell'entità richiesta(opzionale)
Corso Android
63. Persistenza
Mime-Type
•
Composto da type/subtype (text/html, text/pdf...)
•
Gestito da IANA (Internet Assigned Numbers Authority)
•
Su android i Content Provider si identifcano con:
•
elenco risorse: vnd.android.cursor.dir/vnd.<name>
•
singola risorsa: vnd.android.cursor.item/vnd.<name>
Corso Android
65. Handler
UI Single Thread
Singolo thread in cui sono serializzate le callback di ui e
•
che regolano il ciclo di vita
•
Handler
•
MessageQueue (per ogni thread)
•
Message (implementa Parcelable)
defnite in android.os.
Corso Android
66. Handler
private Handler myHandler;
final TextView outputView = (TextView)
findViewById(R.id.outView);
myHandler = new Handler() {
public void handleMessage(Message msg) {
outputView.setText(msg.obj.toString());
}
};
Corso Android
69. Web
-HttpClient di Apache (org.apache.http.client)
public abstract HttpResponse execute (HttpUriRequest
request)
(command pattern)
HttpResponse ha tra le proprietà:
•
Entity (streamed, self contained, wrapping)
•
Statusline (Codice risposta, versione protocollo,
descrizione del corrispondente messaggio)
Corso Android
72. Web
WebWiew
Uri uri = Uri.parse("http://www.google.com");
WebView webView = (WebView)
findViewById(R.id.webview);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.clearCache(true);
webView.loadUrl(uri.toString());
<uses-permission
android:name="android.permission.INTERNET"/>
Corso Android