You are on page 1of 73

Introducció a la

Programació
per Android

@jmpinyol
Curs Android
Objectius del curs
Al finalitzar el curs l’alumne hauria de:

• Poder escriure una aplicació per Android des de zero


• Poder escriure codi que funcioni amb les diferents versions Android
• Habilitat per utilitzar varies API de Android
• Entendre els aspectes únics de programació en Android

www.endepro.com
Curs Android
Part I
• Introducció a Android
• Evolució de Android
• Arquitectura del sistema
•Revisió visual de totes les versions
•Característiques de Android
• Dispositius amb Android
• Evolució de la quota de mercat
• SDK
• Instal·lació i configuració de l’entorn de desenvolupament
• Creació d’un AVD
• Introducció a l’entorn de desenvolupament
• Creació del primer projecte
• Estructura general d’un projecte
• Cicle de vida d’una Activity

www.endepro.com
Introducció a Android
L’evolució de Android
• Google adquireix Android, Inc. al 2005 al detectar un increment important de
cerques mòbils
• Primers rumors al desembre del 2006
• Sol·licitud de patents per part de Google al setembre del 2007
• Novembre del 2007 es crea la Open Handset Alliance (78 empreses)
• Publicació de la versió 1.0 el 23 de setembre del 2008
• Publicació de la última versió (4.0) al 19 d’octubre del 2011

www.endepro.com
Introducció a Android
Arquitectura del sistema

• Core en C
• Llibreries en C/C++
• UI en Java
• Executables Dalvik

www.endepro.com
Introducció a Android

www.endepro.com
Introducció a Android
Revisió visual de totes les versions

1.0 4.0

www.endepro.com
Introducció a Android
Versió 1.0 – 22 Octubre del 2008

• Finestra de notificacions desplegable


• Widgets a la pantalla d’inici (home). Apple fins el
iOS5 no té aquesta funcionalitat
• Integració amb Gmail
• Android Market

www.endepro.com
Introducció a Android
Versió 1.1 – Febrer del 2009

• Validació del sistema d’actualització del


sistema
• Correcció d’alguns bugs

www.endepro.com
Introducció a Android
Versió 1.5 - Cupcake
• Teclat en pantalla
• Widgets extensibles via SDK
• Millores en el funcionament de Clipboard
• Captura de vídeo i reproducció
• Vàries actualitzacions com suport per Youtube,
Picasa, etc

www.endepro.com
Introducció a Android
Versió 1.5 – Cupcake (II)

www.endepro.com
Introducció a Android
Versió 1.6 – Donut

www.endepro.com
Introducció a Android
Versió 2.0/2.1 – Eclair

HTC Nexus One

www.endepro.com
Introducció a Android
Versió 2.0/2.1 – Eclair (II)
• Suport per múltiples comptes
• Google Maps Navigation
• Quick Contact
• Millores en el teclat en pantalla (multitouch)
• Navegador millorat (suport HTML5, etc.)
• Fons de pantalla animats
• Speech-to-text - Apple ho ha aplicat en el iOS5
• Noves pantalles de bloqueig

www.endepro.com
Introducció a Android
Versió 2.2 – Froyo

www.endepro.com
Introducció a Android
Versió 2.3 – Gingerbread

www.endepro.com
Introducció a Android
Versió 2.3 – Gingerbread (II)
• Millor control alhora de copiar i enganxar text
• Millora en les aplicacions i ús de la bateria
• Suport per càmeres frontals

www.endepro.com
Introducció a Android
Versió 3.x – Honeycomb

• Una versió rara en el dur camí cap al domini dels


smartphones
• Canvi dels colors verds a colors blaus
• Home completament redisenyat
• Sense botons físics
• Multitasca millorada
• Introducció del “action bar”
www.endepro.com
Introducció a Android
Versió 4.0 – Ice Cream Sandwich

• Sens dubte el canvi més important en


telèfons Android fins el moment
• Canvi de tipografia redisenyada per les noves
pantalles de més resolució

www.endepro.com
Introducció a Android
Versió 4.0 – Ice Cream Sandwich (II)

• Més canvis en la pantalla d’inici


• Android Beam
• Desbloqueig de pantalla amb reconeixement
facial

www.endepro.com
Introducció a Android
Versió 4.0 – Ice Cream Sandwich (III)

• Utilització de dades
• Noves aplicacions de calendari i
correu

www.endepro.com
Introducció a Android

www.endepro.com
Introducció a Android
Característiques de Android
Característica Descripció
Disseny de la pantalla Plataforma adaptable a pantalles grans, VGA, grafics 2D, 3D
segons OpenGL ES 2.0 i telèfons tradicionals
Emmagatzament SQLite
Connectivitat Suport per GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth,
Wi-Fi, LTE i WiMAX
Missatgeria SMS i MMS, inclosa missatgeria de text i l’actual C2DM com a
servei Push de Android
Multi llenguatge Suport per multillenguatge
Navegador web Basat en WebKit i el motor Javascript de Google Chrome
Suport Java La majoria d’aplicacions estan escrites en Java, però no té una
màquina virtual Java, es compila en un executable Dalvik
Suport multimedia Formats WebM, H.263, H.264 (en 3GP o MP4), MPEG-4 SP, AMR,
AMR-WB (en un contenidor 3GP), AAC, HE-AAC (en contenidors
MP4 o 3GP), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF i BMP

www.endepro.com
Introducció a Android
Característiques de Android (II)
Característica Descripció
Suport per streaming RTP/RTSP streaming (3GPP PSS, ISMA), HTML progressive
download (HTML5 <video> tag). Adobe Flash Streaming (RTMP) i
el HTTP Dynamic Streaming via el plugin de Flash. Apple HTTP
Live Streaming suportat via RealPlayer Mobile i pel Android 3.0
Suport addicional de Android suporta càmeres de fotos, de vídeo, pantalles tàctils,
hardware GPS, acceleròmetres, giroscopis, magnetòmetres, sensors de
proximitat i de pressió, termòmetre, acceleradora 2D i 3D.
Multitouch Suport natiu però deshabilitat per temes de patents fins la versió
2.0/2.1
Bluetooth Suport per A2DF i AVRCP enviament de fitxers (OPP), exploració
de directoris i marcatge per veu així com enviament de contactes
Videotrucades Suport no natiu però es pot realitzar a través d’aplicacions com
Google Talk, Skype, etc.

www.endepro.com
Introducció a Android
Característiques de Android (III)
Característica Descripció
Multitasca Multitasca real disponible
Característiques per Les cerques a Google a través de veu està disponible a partir a la
veu primera versió del sistema
Tethering Permet que el telèfon sigui utilitzat com a router wifi des de
versió 2.2
Captura de pantalla Permet realitzar captures de pantalla apretant el botó de power i
el de volum des de la versió 4.0

www.endepro.com
Introducció a Android
Dispositius amb Android
• Fabricants de Smartphones
• HTC
• Samsung
• Motorola
• Sony Ericsson
• LG
• Altres
• Fabricants de Tablets
• Samsung
• Motorola
• Acer
• Sony
• Toshiba
• Asus
•Dell

www.endepro.com
Introducció a Android
Dispositius smartphones amb Android
Nom Display Inputs Networks Connectiv CPU Capacities Cameras
ity
HTC 4.3 in Virtual GSM WiFi 1/2 GHz 1 GB Rear: 8.1
Sensation keyboard, 850/900, 802.11b/g/ dual-core storage, Mpx
4G Acceler- 1800/1900, n, WiFi Qualcomm microSD up autofocus,
ometer HSPA/W- HotSpot, MSM8260, to 32 GB, with dual
sensor for CDMA Bluetooth Adreno 220 768 MB LED flash,
auto-rotate, 900/2100 v3.0 with GPU RAM and full HD
proximity A2DP, Snapdragon video
sensor for MicroUSB (1080p
auto turn- v2.0, 3.5mm @30FPS)
off audio jack, Front: VGA
A-GPS Mpx
HTC 4.0 in Virtual GSM/GPRS/ Wi-Fi 1000 1.1 GB Rear: 8.0
Incredible S keyboard; EDGE (802.11b/g) Qualcomm onboard Mpx, dual
A-GPS 850/900, (n with 2.2 MSM8255 flash flash LED
1800/1900 update); Snapdragon memory, 8 Front:
MHz Bluetooth GB microSD 1.3Mpx
HSPA/WCD 2.1 with supplied Fixed Focus
MA A2DP stereo for video
Europe/Asia and EDR; calling
900/AWS/2 FM tuner,
100 MHz Mobile Wi-
Fi

www.endepro.com
Introducció a Android
Dispositius smartphones amb Android
Nom Display Inputs Networks Connectivit CPU Capacities Cameras
y
Samsung 4.65 in A-GPS, Wi-Fi 802.11 1.2 GHz dual- 1 GB RAM, 16 Rear: 5.0 Mpx
Galaxy Nexus capacitive b/g/n, core, GPU or 32 GB with LED
touchscreen Bluetooth PowerVR Flash
v3.0 with SGX540 Front: 1.3
A2DP, MHL Mpx
through
Micro USB 2.0
Motorola 4.3 in CDMA 1 GHz dual- 1 GB RAM, 16 Rear: 8 Mpx,
Droid Bionic 800/1900 core ARM GB ROM, 16 with 1080p
MHz EVDO Cortex-A9 GB SD Card video Front:
Rev. A, 700 SoC (included), 32 VGA
MHz 4G LTE processor; TI GB SD Card
OMAP4430, (possible)
PowerVR
SGX540 @
304 MHz

www.endepro.com
Introducció a Android
Dispositius Tablet amb Android
Nom Display Touch screen style CPU Notes
Acer Iconia Tab A100 7.0 in Capacitive multi-touch 1000, dual-core - NVidia MicroSD reader, USB,
Tegra 2, NVidia GeForce 802.11 a/b/g/n Wi-Fi,
GPU 16 or 32 GB microSD
storage, microphone,
speakers, front-facing
2MP camera, rear 5MP
camera with LED flash,
720p video recording, 1
GB RAM, GPS,
Bluetooth, HDMI port,
1080p HD Video
playback
Acer Iconia Tab A500 10.1 in Capacitive multi-touch 1000, dual-core - NVidia MicroSD reader, USB,
Tegra 2, NVidia GeForce 802.11 a/b/g/n Wi-Fi,
GPU 16 or 32 GB microSD
storage, microphone,
speakers, front-facing
2MP camera, rear 5MP
camera with LED flash,
720p video recording, 1
GB RAM, GPS,
Bluetooth, HDMI port,
1080p HD Video
playback

www.endepro.com
Introducció a Android
Dispositius Tablet amb Android
Nom Display Touch screen style CPU Notes
Samsung Galaxy Tab 10.1 in Capacitive 1000 Tegra 2 dual core 3 MP rear-facing
10.1v camera, 2 MP front-
facing camera, two
surround sound
speakers
Motorola Xoom 10.1 in Capacitive multi-touch 1000, dual core Nvidia 1 GB RAM, 32 GB +
Tegra 2 microSD*, Wi-Fi b/g/n,
5 MP rear camera (720
P), 2 MP front camera,
Bluetooth 2.1, 3-axis
accelerometer,
compass, gyroscope,
barometer

www.endepro.com
Introducció a Android
L’evolució de Android: quota de mercat

www.endepro.com
Introducció a Android
L’evolució de Android: quota de mercat

www.endepro.com
Introducció a Android
L’evolució de Android: quota de mercat

www.endepro.com
Introducció a Android
L’evolució de Android: quota de mercat

www.endepro.com
Introducció a Android
L’evolució de Android: 200 milions d’activacions!

www.endepro.com
Software Development Kit
Instal·lació i configuració de l’entorn de desenvolupament

www.endepro.com
Software Development Kit
Requisits del sistema
Sistema operatiu
• Windows XP (32bits), Vista (32 i 64bits), Windows 7 (32 i 62bits)
• Mac OSX 10.5.8 (32 bits)
• Linux (32 bits)
Requeriments de hardware
• SDK 61Mb en disc + 150Mb mínim per plataforma

http://developer.android.com/sdk/requirements.html

www.endepro.com
Software Development Kit
Preparar l’entorn de desenvolupament
JDK
• Descarregar el JDK (Java SE 7)
http://www.oracle.com/technetwork/java/javase/downloads/index.html

Descarregar el JDK

www.endepro.com
Software Development Kit
Preparar l’entorn de desenvolupament
JDK
• Descarregar el JDK (Java SE 7)
http://www.oracle.com/technetwork/java/javase/downloads/index.html

Descarregar versió x86

www.endepro.com
Software Development Kit
Preparar l’entorn de desenvolupament
Eclipse
• Descarregar el Eclipse Classic (3.5 o superior)
http://www.eclipse.org/downloads/

Descarregar versió 32 bits

www.endepro.com
Software Development Kit
Preparar l’entorn de desenvolupament
Eclipse
• Descomprimir-ho a la carpeta “eclipse” de la C:

www.endepro.com
Software Development Kit
Preparar l’entorn de desenvolupament
Eclipse
• Iniciar el Eclipse fent doble click a “eclipse.exe”
• Es demanarà on volem el “workspace”, posem “c:\cursandroid”

www.endepro.com
Software Development Kit
Instal·lació de l’entorn de desenvolupament
• Lloc web de google: http://developer.android.com

Descàrrega del Android SDK

www.endepro.com
Software Development Kit
Instal·lació de l’entorn de desenvolupament

Installer_XX-windows.exe

www.endepro.com
Software Development Kit
Instal·lació de l’entorn de desenvolupament

www.endepro.com
Software Development Kit
Instal·lació del plugin ADT al Eclipse
• Obrir el Eclipse i anar a Help->Install New Software

www.endepro.com
Software Development Kit
Instal·lació del plugin ADT al Eclipse
• Entrar la URL https://dl-ssl.google.com/android/eclipse/

www.endepro.com
Software Development Kit
Instal·lació del plugin ADT al Eclipse
• Seleccionar tots els paquets i apretar “Next” per instal·lar

www.endepro.com
Software Development Kit
Afegir paquets i plataformes

Apretar botó
Android SDK Manager

www.endepro.com
Software Development Kit
Afegir paquets i plataformes
• Triar els següents paquets per Android 2.3.3 (API 10) i instal·lar

www.endepro.com
Software Development Kit
Estructura de directoris
• Per defecte el SDK està dins de C:\Archivos de programa(x86)\Android

• Llibreries addicionals al SDK


• Documentació
• Plataformes descarregades per desenvolupar
• Utilitats de desenvolupament específiques de les
Plataformes (adb, etc.)
• Exemples específiques de les diferents versions
• Eines de desenvolupament (DDMS, etc.)

www.endepro.com
Software Development Kit
Creació d’un AVD (Android Virtual Device)

Apretar en “New”

Apretar botó del


AVD Manager

www.endepro.com
Software Development Kit
Creació d’un AVD (Android Virtual Device)

www.endepro.com
Software Development Kit
Iniciar el AVD que hem creat

Apretar “Start…”

www.endepro.com
Software Development Kit
Iniciar el AVD que hem creat
• Ja tenim apunt l’entorn de desenvolupament

www.endepro.com
Introducció a l’entorn de
desenvolupament

www.endepro.com
Introducció a l’entorn de desenvolupament
Recursos
• Google: http://www.google.com/
• Android SDK: http://developer.android.com/sdk/
• StackOverflow: http://stackoverflow.com/ (tag “android”)

www.endepro.com
Introducció a l’entorn de desenvolupament
Creació d’un nou projecte

www.endepro.com
Introducció a l’entorn de desenvolupament
Creació d’un nou projecte

www.endepro.com
Introducció a l’entorn de desenvolupament
Estructura general

Activity Layout (XML)

strings drawables

www.endepro.com
Introducció a l’entorn de desenvolupament
Estructura de fitxers del projecte
• Estructura del projecte
Fitxers creats
• src/ conté tots els paquets de Java per l’aplicació. Cada paquet conté
els fitxers .java amb les diferents classes
• res/layout/ conté els XML que defineixen la disposió de la pantalla
• res/values/ conté els XML utilitzat com a referència per altres fitxers
• res/drawable-hdpi/, res/drawable-mdpi/, i res/drawable-ldpi/ són
els directoris que contenen les imatges de l’aplicació. Són alta, mitja i
baixa resolució
• assets/ conté fitxers addicionals que no són multimedia
• AndroidManifest.xml configuració del projecte pel sistema operatiu
Android

Fitxers autogenerats
• gen/ conté tot el codi autogenerat, com el R.java
• project.properties conté la configuració del projecte

www.endepro.com
Introducció a l’entorn de desenvolupament
Estructura del projecte
src/com/endepro/exemple_activity_simple/SimpleActivity.java

www.endepro.com
Introducció a l’entorn de desenvolupament
Estructura del projecte
res/layout/main.xml

www.endepro.com
Introducció a l’entorn de desenvolupament
Estructura del projecte
res/values/strings.xml

www.endepro.com
Introducció a l’entorn de desenvolupament
Estructura del projecte
gen/com/endepro/exemple_activity_simple/R.java

Cada recurs es mapeja a un valor


numèric en el R.java

www.endepro.com
Introducció a l’entorn de desenvolupament
Estructura del projecte
Com fer referència als recursos mitjançant Java i XML

Recurs Java XML


res/layout/main.xml R.layout.main @layout/main
res/drawable-hdpi/icon.png R.drawable.icon @drawable.icon
@+id/home_button R.id.home_button @id/home_button
<string name=“hello”> R.string.hello @string/hello

www.endepro.com
Introducció a l’entorn de desenvolupament
Estructura del projecte
AndroidManifest.xml bàsic

www.endepro.com
Introducció a l’entorn de desenvolupament
Creació d’un nou projecte
• Iniciar l’aplicació d’exemple

www.endepro.com
Cicle de vida d’una Activitat

www.endepro.com
Cicle de vida d’una activitat
Activity LifeCycle

www.endepro.com
Cicle de vida d’una activitat
Projecte 002-ActivityLifeCycle

• Crear un nou projecte anomenat 002-ActivityLifeCycle


• PackageName: com.endepro.activity_life_cycle
• Activity principal: LifeCycleActivity

www.endepro.com
Cicle de vida d’una activitat
Projecte 002-ActivityLifeCycle

• Afegir la línia del Toast en el onCreate


• Iniciar l’aplicació en l’emulador

www.endepro.com
Cicle de vida d’una activitat
Projecte 002-ActivityLifeCycle

• Afegir la línia del Toast en la resta de mètodes:


• onStart
• onResume
• onRestart
• onPause
• onStop
• onDestroy

www.endepro.com

You might also like