Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AAnaomega
marcombo
ediciones
tcnicas
Datos catalogrficos
Toms, Jess
El gran
librodeAff
Primera Edicio
Alfaomega Grupo Edimq SJL
&
CY-, Mxico
ISBN:9lMl-lIf-Z3
Formato: 17
x23crlt
@inas:3u10
Barcdm,
nTt
E-mail : atencionalcliente@alfaomega.com.nu
Nota importante:
La infonnacin contenida en esta obra tiene un fin exclusivamente didctico y, por lo tanto,
no est previsto su aprovechamiento a nivel profesional o industrial. Las indicaciones
tcnicas y programas incluidos, han sido elaborados con gran cuidado por el autor y
reproducidos bajo estrictas nonnas de control. ALFAOMEGA GRLIPO EDffOR, S.A. de
C.V. no ser jurdicamente responsable por: errores u omisiones; daos y perjuicios que se
pudieran atribuir al uso de la informacin comprendida en este libro, ni por la utilizacin
indebida que pudiera drsele.
lUn.
C.P.03100.
Chile: Alfaomega Grupo Editor, S.A. - Dr. t a Sierra 1437, Providencia, Santiago, Chile
Tel.: (56-2) 235-4248 -Fax (56-2) 235-5786 - E-mait: agechile@alfaomega.cl
Argentina: Alfaonrega Grupo EditorArgentino. S.A. - Paraguay 1307 PB. of. 11, c.P. 1057. Buenos Aires,
Argentin4 -Tel./Fax: (54-ll)4811-0887y48117183-E-mail: venras@alfaomegaeditor.com.ar
lndice general
r
*250007747*
ll
Lista de acrnimos
caprulo
t.
15
desarro||o................
......18
....................19
....................19
...............-..22
Linux..........
1.4.2. Runtime de Android
1.4.3. Libreras nativas
1.4.4. Entorno de aplicacin
1.4.5. Aplicaciones.......
1.4.'1. El ncleo
1.5.
.................22
....................23
......23
.................24
......24
desanol1o................
.......17
.....................24
...........
..................25
..........25
...................26
programa
........................33
.6.1. Las plataformas de desanollo ................
.......33
l.6.l.l.Android 1.0 Nivel de API 1 (septiembre 2008).
........34
l.6.l.2.Android 1.1 Nivel de API 2 (febrero 2009)......
.........34
1.6.
1
Creacin de un primer
. . . .........35
proyecto.....
...............
............37
............39
Ejecucin del
programa....................................
...........42
terminal
1.8. Elementos de un proyecto Android
1.9. Aspectos clave en Android......
1.9.1. Vista (View).........
1.9.2. Actividad (Activity)
1.9.3. lntento (lntent)
1.9.4. Servicio (Servrce).... ..........
1.7.2. Ejecucin en un
............43
.....................4S
.........41
........................47
......................47
.........47
......47
Providerl
yApiDemos
.-....--...-..........42
................47
............48
..............
.......................48
ApiDemos
.............48
CAPTULO 2. Diseo de la interfaz de usuario
..............S1
2.1. Creacin de una interfaz de usuario por cdigo
....................S1
2.2. Creacin de una interfaz de usuario usando XML...........
......52
2.2.1. Edicin visualde las vistas..........
..................Ss
2.2.2. Layoufs..............
......56
2.3. Una aplicacin de ejemplo:Asteroides..
.............61
2.3.1. Usando recursos alternativos
........................63
2.4. lmplementacin de una caja Acerca de............... ..................69
2.4.1. Aplicando un tema...........
...........71
2.5. Aadiendo un men
......72
2.5.1. Los estilos.........
.......74
2.5.2. Aplicando temas
......75
2.6. Aadiendo preferencias
...................7S
2.6.1. Organizando preferencias
..........T8
2.6.2. Como se almacenan los valores de las preferencias
.......79
2.6.3. Accediendo a los valores de las preferencias
..................80
2.7. Depurar
......91
2.7.1. Depurar con Eclipse
...................91
1.10.2.La aplicacin
lndice
2.7
.2.
3.
.82
Android
..............85
3.1. Elementos grficos......
........................................g5
3.1.1. Canvas...............
......g5
3.1.2. Paint
......88
3.l.2.l.Definicin de colores.......
....................gg
3.1.3. Path
......89
3.1.4. Drawab1e............
......91
3.1.4. L BitmapDrawable
...............92
3.l.4.2.GradienDrawable
.............94
3.l.4.3.TransitionDrawable ................
.............94
3.l.4.4.ShapeDrawable..
..............9S
3.l.4.5.AnimationDrawable ................
.............96
CAPTULO
3.2.
Grficos en
3.2.1. La clase
3.3.
3.4.
Asteroides.................
grfico
........98
CAPTULO
4.
Asteroides
......10S
usuario
4.1.1. Escuchador de eventos
4.1.2. Manejadores de eventos
4.2. El teclado...
4.3. La pantalla tctil ...........
4.4. Gesfures....
4.4.1. Creacin de una librera de gestures
4.1.
........97
Manejando eventos de
......107
............108
..........109
...........,......110
..................111
..................113
..........114
sensores.................
4.5.1 . Listar los sensores del dispositivo..
4.5.2. Acceso a los datos delsensor........
4.5.2.t.Obtencin de datos de los sensores
4.5.
Los
.................120
.............122
.............123
....................124
4.6.
lntroduciendo un misilen
Asteroides................'
.-----.---.'-..-..128
aplicacin...
5.1. Ciclo de vida de una aplicacin...............
5.1.1. Qu proceso se elimina?.
CAPTULO
5.
....-....131
...'......131
..'....134
...".....'.........'.136
.......'.-..........138
5.2. Utilizando multimedia en Android..
....140
5.3. Reproducir un vdeo con VideoView.............
...'.'.-..'....'---...142
5.4. La clase MediaPlayer.............'....
paso....'...... ....'...'..........145
......153
CAPTULO 6. Seguridad y posicionamiento..........'
...................153
6.1. Seguridad en Android..
'-......'---154
6.1.1. Usuario Linux y acceso a ficheros...
.........155
6.1.2. Elesquema de permisos en Android..
6.l.2.l.Creando tus propios permisos
'-..--....'|'57
6'2' Localizacin
""""""""'161
...........167
6.2.1. Emulacin del GPS con Eclipse.......
...'.168
6.3. Google Maps..........
.....'..........'.168
6.3.1. Obtencin de una clave Google Maps .........
..........170
6.3.2. Un programa de ejemplo
-.--...175
6.4. Fragmentando los asteroides..
.'-.'-'-....177
CAPTULO 7. Almacenamiento de datos.........
....178
7.1. Aadiendo lista de puntuaciones en Android
....181
7.2. Comunicacin entre actividades
.-.-.....'..."................'..'.183
7.3. Accediendo a ficheros...
.....183
7.3.'1. Sistema interno de ficheros.
5.5.
. 7.3.3. La tarjeta
10
SD..............
....'......'...185
fndice
7.4.
Trabajando con
XML
.....1g6
......................196
SAX...........
7.4.2. Procesando XML con DOM...........
7.5. Bases de datos.....
7.4.'1. Pocesando XML con
...............192
..............194
.......199
ContentProvider............
......201
7.6.1. Conceptos bsicos .................
.....................202
7.6.1.1.E1 modelo de datos.....
....2O2
7.6.1.2.Las URI ............
..............202
7.6.2. Acceder a la informacin de un ContentProvider... ........203
7.6.
Utilizando la clase
7.6.2.l.LeerinformacindeunContentProvider
7.6.2.2.Escribir informacin en un
7
.6.2.3.Borrar y mod
ifi
.............204
ContentProvider
........208
.................210
7.6.3.2.Extendiendo la clase
ContentProvider.............
....211
Asteroides.. ,.....218
CAPTULO 8. lnternet: sockefs, HTTP y servicios web............
.......221
8.1. Comunicaciones en lnternet mediante sockefs
...................221
8.1.1. La arquitectura cliente/servidor.............
......222
8.1.2. Qu es un socken................
....222
8.l.2.l.Sockefs sfream (TCP).........
..............229
8.l.2.2.Sockets datagram (UDP)
..................229
8.1.3. Un ejemplo de un cliente / servidor de ECHO....
............229
7.6.4. Acceso a PuntuacionesProvider desde
HTTP......
...............;... .....229
8.2.1. El protocolo HTTP.........
...........229
8.2.l.l.Versin 1.0 de HTTP.....
....................230
8.2.l.2.Versin 1.1 de HTTP....
.....................222
8.2.
La web y el protocolo
11
Android
8.3. Servicios web............
8.3.1. Altemativas en los servicios web............
8.3.1.l.Servicios web basados en SOAP
8.3.1.2.Servicios web basados en REST....
8.3.2. Acceso a servicios web de terceros
8.2.2. Utilizando HTTP desde
..................232
.....................239
.....238
.....239
.....................240
............241
Eclipse
...................246
S.3.3.3.ExplorandoelserviciowebdesdeEclipse.......
8.3.3.4.Explorando el servicio web desde
HTML.........
3.3.3.5.UtilizandoelserviciowebdesdeAndroid
....255
............257
notificaciones.............
..........263
9.1. lntroduccin a los servicios en Android................ ................263
9.1.1. Ciclo de vida de un servicio................
.........264
9.1.2. Permisos-...........
....266
9.2. Un servicio para ejecucin en segundo plano.
....................267
9.3. Las notificaciones de la bana de estado...
........271
CAPTULO
9.
....250
Servicios y
vibracin............,.
9.3.1.3.Aadiendo parpadeo de LED............
9.3.1.2.Aadiendo
9.4.
...........274
............274
...................274
..........276
.............277
OpenGL
ES
10.1. lntroduccin a
10.1.1.OpenGL
'|2
..................283
...........2U
lndice
10.2. Estructura delcdigo en
OpenGL..........:........
.....................285
ES..............
...................291
10.4. Aadiendo un array de colores
......293
10.5. Representando un cubo......
...........29s
10.6. Transformaciones de coordenadas.............
......297
10.6.1.Transformando elmodelo.......
.....................298
10.6.2.Definiendo el punto de vista...........
.............300
10.3. Primitivas en OpenGL
l0.6.3.Manipulandolasmatricesdetransformacin..........
10.6.4.La
proyeccin
.......303
........305
tcti|...........
lluminacin..........
10.7.1.Vectores norma|es.................
10.7.2.Situando las 1uces...........
10.7.3.Definiendo materiales............
10.8. Aplicando texturas
10.8.1.Mapeando texturas......
10.8.2.Cargando y configurando texturas
10.7.
..........309
........310
......................310
..........314
......................315
,......316
.............318
..............322
'10.8.3.Cambiando los parmetros de cada superficie.................................323
Publicaraplicaciones
11.1. Preparar y testear tu aplicacin
CAPTULO 11.
..........325
.....325
aplicacin..............
11.2. Crear un certificado digital y firmar la aplicacin
11.3. Publicar la aplicacin.................
11.3.'t.Publicar en lnternet.......
1.3.2.Publicar en Android Market
11.4. Asteroides: detectar victoria y derrota.....
1
1.1 .2.Testear la
......................328
.................328
.....332
............332
.....................332
..........338
13
Lista de acrnimos
AIDL
API
AVD
DOM
DTD
FTP
GPS
HTTP
JDK
JRE
JSON
J avaScript
JVM
MIME
NDK
OpenGL
PCM
Pulse-Code Modulation
RAM
REST
REpre se ntatio
RPC
SAX
Simple
SDK
SMS
SOA
Se ru ice-Orie
SOAP
SQL
TCP
UI
User lnterface
URL
Object Notation
al State
Tra
sfer
APlforXML
15
16
URI
USB
W3C
WSDL
WVV1IV
XML