Documente Academic
Documente Profesional
Documente Cultură
Programador
Jr
Android
2014
M anual
del
participante
ndice
ndice
..................................................................................................
3
Formacin
de
la
comunidad
de
aprendizaje
. ........................................
4
Objetivo
del
curso
. ..............................................................................
5
O bjetivo
......................................................................................................
5
Introduccin
. ..............................................................................................
5
Unidad
1
Introduccin
a
Android
.........................................................
6
Ejercicio
prctico
. ......................................................................................
10
Unidad
2
Herramientas
de
desarrollo
.................................................
19
Unidad
3
Fundamentos
de
una
aplicacin
Android
. .............................
23
Fram ew orks
...............................................................................................
23
Ejercicio
prctico
. ......................................................................................
28
Fragm ents
. .................................................................................................
28
Loaders
. .....................................................................................................
29
Tasks
and
back
stack
. .................................................................................
29
Servicios
. ...................................................................................................
30
Proveedores
de
contenido
. .........................................................................
31
Ejercicio
prctico
. ..................................................
Error!
Marcador
no
definido.
Procesos
e
hilos
. ........................................................................................
31
Interfaz
de
usuario
.....................................................................................
31
Recursos
de
una
aplicacin
. .......................................................................
33
Alm acenam iento
de
datos
...........................................................................
35
Seguridad
y
perm isos
. ................................................................................
37
El
m anifiesto
. .............................................................................................
41
M i
prim era
aplicacin
. ...............................................................................
42
Conclusiones
finales
. ..........................................................................
47
Fuentes
de
consulta
. ...........................................................................
48
Bibliografa
................................................................................................
48
Cibergrafa
.................................................................................................
48
3
M anual
del
participante
4
M anual
del
participante
Cum plim iento
de
! Al
finalizar
el
curso
el
instructor
deber
llevar
a
cabo
una
expectativas
revisin
de
las
expectativas
alineadas
que
se
anotaron
en
hojas
de
rotafolio
al
inicio
del
curso
! Se
revisar
cada
una
de
las
expectativas
alineadas
palomeando
las
que
hayan
sido
cumplidas,
y
el
instructor
explicar
de
qu
manera
se
llev
a
cabo
tal
cumplimiento.
Objetivo
del
curso
O bjetivo
Al
trmino
del
curso
el
participante:
Tendr
nociones
bsicas
de
desarrollo
de
aplicaciones
Android
Ser
capaz
de
crear
aplicaciones
bsicas
para
la
plataforma
Android
Introduccin
Con
el
Curso
de
Programador
Jr.
Android
aprenders
a
crear
desde
cero
tus
propias
aplicaciones
para
dispositivos
mviles
con
sistema
operativo
Android.
Desde
los
temas
ms
bsicos,
como
descargar
e
instalar
las
herramientas
necesarias
o
crear
tu
primer
proyecto
paso
a
paso,
hasta
temas
avanzados
como
la
localizacin
GPS
o
la
comunicacin
con
servicios
web.
Tras
realizar
este
curso
conocers
los
fundamentos
del
desarrollo
de
aplicaciones
en
Android
y
podrs
realizar
sencillas
aplicaciones,
que
incluyan
los
aspectos
ms
importantes
y
novedosos
de
esta
plataforma.
Incluyendo:
principales
elementos
del
interfaz
de
usuario,
posicionamiento,
mapas,
seguridad
y
bases
de
datos.
5
M anual
del
participante
6
M anual
del
participante
En
la
imagen
se
distinguen
claramente
cada
una
de
las
capas:
la
que
forma
parte
del
propio
Kernel
de
Linux,
donde
Android
puede
acceder
a
diferentes
controladores,
las
libreras
creadas
para
el
desarrollo
de
aplicaciones
Android,
la
siguiente
capa
que
organiza
los
diferentes
administradores
de
recursos,
y
por
ltimo,
la
capa
de
las
aplicaciones
a
las
que
tiene
acceso.
Aplicaciones:
las
aplicaciones
base
incluyen
un
cliente
de
correo
electrnico,
programa
de
SMS,
calendario,
mapas,
navegador,
contactos
y
otros.
Todas
las
aplicaciones
estn
escritas
en
lenguaje
de
programacin
Java.
M arco
de
trabajo
de
aplicaciones:
los
desarrolladores
tienen
acceso
completo
a
los
mismos
APIs
del
framework
usados
por
las
aplicaciones
base.
La
arquitectura
est
diseada
para
simplificar
la
reutilizacin
de
componentes;
cualquier
aplicacin
puede
publicar
sus
capacidades
y
cualquier
otra
aplicacin
puede
luego
hacer
uso
de
esas
capacidades
(sujeto
a
reglas
de
seguridad
del
framework).
Este
mismo
mecanismo
permite
que
los
componentes
7
M anual
del
participante
8
M anual
del
participante
Apple
pie
Bannan
Bread
Cupcake
:
Android
Versin
1.5
Caractersticas:
Widgets,
teclado
QWERTY
virtual,
copy
&
paste,
captura
de
vdeos
y
poder
subirlos
a
Youtube
directamente
D onut
:
Android
Versin
1.6
Caractersticas:
Aade
a
la
anterior
la
mejora
de
la
interfaz
de
la
cmara,
bsqueda
por
voz,
y
navegacin
en
Google
Maps.
Eclair
Android
Version
2.0/2.1
Caractersticas:
Mejoras
en
Google
Maps,
salvapantallas
animado,
incluye
zoom
digital
para
la
cmara,
y
un
nuevo
navegador
de
internet.
Froyo
Android
Version
2.2
Caractersticas:
Incluye
hostpot
Wifi,
mejora
de
la
memoria,
ms
veloz,
Microsoft
Exchange
y
video-llamada.
Gingerbread
Android
Version
2.3
Caractersticas:
Mejoras
del
consumo
de
batera,
el
soporte
de
vdeo
online
y
el
teclado
virtual,
e
incluye
soporte
para
pagos
mediante
NFC
(Near-Field
Communication)
H oneycom b
:
Android
Version
3.0/3.4
Caractersticas:
Mejoras
para
tablets,
soporte
Flash
y
Divx,
integra
Dolphin,
multitarea
pudiendo
cambiar
de
aplicacin
dejando
las
dems
en
espera
en
una
columna,
widgets
y
homepage
personalizable.
Icecream
Sandw ich:
Android
Version
4.0
Caractersticas:
Multiplataforma
(tablets,
telfonos
mviles
y
netbooks),
barras
de
estado,
pantalla
principal
con
soporte
para
3D,
widgets
redimensionables,
soporte
usb
para
teclados,
reconocimiento
facial
y
controles
para
PS3.
JellyBean
Kitcat
9
M anual
del
participante
Ejercicio
prctico
Se
integrarn
cinco
equipos,
ya
conformados,
se
les
asignara
una
temtica
de
acuerdo
al
nmero
de
equipo
que
representen.
N
de
Tem a
equipo
1
Apple
pie
Bannan
Bread
2
Cupcake
Donut
clair
3
Froyo
Gingerbread
4
Honycomb
Icecream
5
JellyBean
Kitcat
Funcionalidades
" Soporte
a
herramientas
empresariales
Soporte
a
Exchange
Borrado
remoto
Soporte
de
VPN
" Soporte
a
mltiples
pantallas,
tanto
en
tamao
como
en
densidad.
" Soporte
para
teclados
virtuales,
fsicos,
dispositivos
similares
a
mouse.
D etalles
Tcnicos
# Android
es
un
sistema
incrustado
(embedded)
que
corre
encima
de
un
kernel
de
Linux,
pero
no
es
Linux
embedded
(no
hay
soporte
de
X,
glibc,
etc).
# Android
utiliza
un
dialecto
de
Java,
que
no
es
java
porque
no
soporta
Swing
y
otras
bibliotecas
estndar
de
Java.
# Incluso
bibliotecas
como
el
Timer
de
Java
son
reemplazadas
por
bibliotecas
optimizadas
para
Android.
# Android
es
un
sistema
parcialmente
libre,
algunos
de
los
componentes
se
puede
revisar
el
cdigo
fuente,
sin
embargo,
hay
otros
que
son
componentes
cerrados
y
solo
pueden
ser
utilizados
a
travs
de
una
API.
10
M anual
del
participante
11
M anual
del
participante
no
notaras
el
hecho
de
que
no
hay
tantos
pixeles
como
en
una
pantalla
de
telfono
que
vers
ms
de
cerca.
Soporte
I/O
Adicionalmente,
se
soporta:
" Dpad,
como
un
joystick
" Trackball
Un
mouse
de
bolita
" Trackpad
un
mouse
como
el
de
las
laptops
Existen
sensores
adicionales:
" Acelerometro
" Brujula
" Orientacin
" Temperatura
" Luz
Recuerden
que
no
tienen
que
soportar
todos
los
medios
de
entrada.
Sin
embargo,
pueden
aprovechar
en
su
cdigo
para
detectar
uno
u
otro
mtodo
de
entrada
interesante
y
soportarlo
para
generar
una
mejor
experiencia
en
el
usuario.
Funcionalidades
Funcionalidades
interesantes
de
un
Android:
" Multiprocesos
Se
pueden
realizar
diversos
procesos/tareas
aun
mismo
tiempo.
" App
Widgets
Mini
aplicaciones
que
pueden
ir
dentro
de
otras
aplicaciones
Cuidado:
El
utilizar
extensivamente
el
multiproceso,
el
exceso
de
uso
de
red,
o
de
gps
o
en
general
el
utilizar
demasiados
recursos
en
el
dispositivo,
generar
una
experiencia
negativa
en
el
usuario,
debido
al
uso
de
batera,
de
memoria,
etc.
D iseo
de
apps
m viles
Un
buen
diseador
de
aplicaciones
mviles
toma
en
cuenta
tres
componentes
principales:
! Interface
con
el
usuario
(UI)
! Uso
de
servicios
web
! La
aplicacin
en
s.
Se
tienen
que
considerar
que
un
dispositivo
mvil
tiene:
12
M anual
del
participante
13
M anual
del
participante
Instalando
AN D RO ID
A
continuacin
se
te
brindaran
una
serie
de
pasos
para
la
correcta
instalacin
de
Android:
1-Revisar
si
nuestra
computadora
cumple
con
todos
los
requerimientos
mnimos
para
poder
instalar
las
herramientas
de
desarrollo.
Esto
se
puede
consultar
en
la
pgina:
http://developer.android.com/sdk/index.html
2-
Descargar
el
IDE
de
Eclipse,
de
preferencia
desde
el
sitio
oficial:
https://www.eclipse.org/downloads/
Recuerda
elegir
el
adecuado
para
nuestro
sistema
operativo
(32
o
64
bits)
14
M anual
del
participante
3.
Ahora
necesitaremos
descargar
un
JDK
de
JAVA
para
hacer
funcionar
bien
nuestro
IDE
eclipse.
Esto
lo
hacemos
igual
desde
la
pgina
oficial
de
java:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Ya
que
accedimos
a
la
pgina,
damos
click
en
Download
JDK
y
nos
mostrara
la
siguiente
pantalla
donde
debemos
dar
aceptar
trminos
de
licencia
y
buscar
el
adecuado
a
nuestro
sistemas
operativo
Composicin
de
un
proyecto
en
Android
! src:
Cdigo
fuente
! gen:
Binarios
&
R.java
! res:
Recursos
app
! drawable:
iconos
&
images
15
M anual
del
participante
! layout:
organizacin
UI
! raw:
msica
&
video
! values:
Valores
de
la
app
! colors:
Colores
! dimens:
tamao
fuentes
! strings:
literales
! AndroidManifest.xml
16
M anual
del
participante
17
M anual
del
participante
Tambin
declaramos
todos
los
permisos
a
las
que
accedern
tales
como
SD
Card,
jcmara,
sensores,
etc.
As
como
tambin
los
permisos
que
tienen
otros
para
acceder
a
los
componentes
de
la
aplicacin.
Con
esta
etiqueta
declaramos
permisos
para
accesar
cmara,
contactos
del
telfono,
etc.
<uses-permission
android:name="string"
/>
<uses-permission
android:name="android.permission.CAMERA"
/>
18
M anual
del
participante
19
M anual
del
participante
har
uso
de
uno
de
los
terminales
emulados
creados
para
probar
en
cada
momento
las
nuevas
funciones
o
modificaciones
de
las
aplicaciones.
20
M anual
del
participante
Instalacin
y
configuracin
de
las
herram ientas.
Los
puntos
a
seguir
son:
La
primera
parte
consistir
en
instalar
Eclipse,
en
este
caso
yo
he
usado
la
versin
3.5,
llamada
Galileo,
bajo
el
sist
operativo
Windows
XP.
La
pgina
de
descarga
es:
www.eclipse.org/downloads/
La
versin
que
he
utilizado
es
exactamente:
Eclipse
IDE
for
Java
EE
Developers(189
MB)
aunque
tambin
es
igual
de
vlida
Eclipse
IDE
for
Java
Developers
(92
MB)
Despus
de
la
carga
y
de
que
aparezca
la
pantalla
principal
hay
que
ir
a
Help
>
Install
New
Softare.
En
la
pantalla
que
aparece
hay
que
presionar
el
botn
Add....
En
la
nueva
ventana
elegimos
cualquier
nombre,
por
ejemplo,
Android
Plugin
y
aadimos
en
el
campo
Location
la
URL:
https://dl-ssl.google.com/android/eclipse/
presionamos
ok,
y
despus
next
hasta
que
nos
pida
aceptar
los
trminos
de
la
licencia,
los
aceptamos
y
el
programa
empezar
la
descarga
el
plugin.
21
M anual
del
participante
Por
ltimo
reiniciamos
Eclipse
y
ya
tenemos
instalado
el
plugin,
aunque
la
instalacin
del
SDK
an
no
ha
terminado.
Ahora
volviendo
a
Eclipse
hay
que
seleccionar
W indow
>
Preferences,
en
el
panel
de
la
izquierda
que
aparecer
hay
que
seleccionar
Android.
Donde
pone
SDK
location
hay
que
poner
la
localizacin
del
SDK
de
Android
en
el
disco
duro
en
el
que
la
tengamos,
la
descarga
del
SDK
se
realiza
desde:
http://developer.android.com/sdk/index.html
Actualmente
la
versin
disponible
del
mismo
es
la
Android
2.3
Platform
aunque
mis
aplicaciones
estn
basadas
en
la
2.2
puesto
que
la
versin
2.3
no
est
disponible
para
mi
terminal,
no
hay
ningn
problema
en
descargar
la
ltima
versin,
ya
que
ms
tarde
cuando
explique
la
parte
del
emulador,
se
ver
que
es
muy
simple
especificar
cul
ser
la
versin
a
usar
de
Android.
Este
es
el
ltimo
paso
para
tener
la
instalacin
completada,
y
se
trata
de
la
creacin
de
un
emulador
Android.
Para
crearlos
simplemente
mediante
un
terminal
en
Linux
y
Mac
o
una
ventana
de
comandos
en
Windows
navegamos
hasta
la
carpeta
tool
del
sdk
y
ejecutamos:
Android
create
avd
-- target
8
--name
EMULADOR
Al
decirle
en
la
creacin
target
8
le
estoy
diciendo
que
use
la
versin
2.2
de
Android.
22
M anual
del
participante
23
M anual
del
participante
! Siete
das
con
Titanium .
Un
blog
que
pone
a
disposicin
un
conjunto
de
siete
tutoriales
para
ayudar
a
los
principiantes
a
entender
cmo
trabajar
con
el
framework
mvil
Titanium.
http://nosoloweb.es/siete-dias-con-titanium-dia-0-introduccion /
PhoneGap
Es
un
framework
para
el
desarrollo
de
aplicaciones
mviles
producido
por
Nitobi,
y
comprado
posteriormente
por
Adobe
Systems.
Principalmente,
PhoneGap
permite
a
los
programadores
desarrollar
aplicaciones
para
dispositivos
mviles
utilizando
herramientas
genricas
tales
como
JavaScript,
HTML5
y
CSS3.
Las
aplicaciones
resultantes
son
hbridas,
es
decir
que
no
son
realmente
aplicaciones
nativas
al
dispositivo
(ya
que
el
renderizado
se
realiza
mediante
vistas
web
y
no
con
interfaces
grficas
especficas
de
cada
sistema),
pero
no
se
tratan
tampoco
de
aplicaciones
web
(teniendo
en
cuenta
que
son
aplicaciones
que
son
empaquetadas
para
poder
ser
desplegadas
en
el
dispositivo
incluso
trabajando
con
el
API
del
sistema
nativo).
Para
descargar
esta
herramienta
puedes
acceder,
a
su
pgina
web:
http://phonegap.com/
As
como
su
gua
de
usuario:
http://docs.phonegap.com/en/edge/guide_platforms_index.md.html#Platform%20Guides
Jquery
m obile
jQuery
es
una
biblioteca
de
JavaScript,
creada
inicialmente
por
John
Resig,
que
permite
simplificar
la
manera
de
interactuar
con
los
documentos
HTML,
manipular
el
rbol
DOM,
manejar
eventos,
desarrollar
animaciones
y
agregar
interaccin
con
la
tcnica
AJAX
a
pginas
web.
jQuery
es
la
biblioteca
de
JavaScript
ms
utilizada.
24
M anual
del
participante
25
M anual
del
participante
26
M anual
del
participante
!startActivity(i);!
" Creamos
un
objeto
de
tipo
Intent
y
le
pasamos
como
primer
parmetro
this
que
se
refiere
a
la
primer
Activity
posteriormente
en
el
segundo
argumento
indicamos
a
qu
actividad
queremos
que
nos
lleve.
Pasando
de
un
ACTIVIY
a
otro
con
parmetros
" Podemos
pasar
parmetros
de
Actividad
en
Actividad
con
el
mtodo
putExtra()
de
la
clase
Intent:
" Colocamos
este
cdigo
en
el
Primer
Activity
Intent
i
=
new
Intent(this,
SegundoActivity.class);
!i.putExtra("NombreParametro",
valorParametro);
!startActivity(i);!
" Los
valores
de
los
parmetros
se
almacenan
en
la
clase
Bundle,
as
que
de
ah
mismo
recuperaremos
los
datos.
" Colocamos
este
cdigo
en
el
Segundo
Activity
Bundle
parametros
=
getIntent().getExtras();!
!String
valorParametro
=
!parametros.getString("NombreParametro");!
Ejem plo
27
M anual
del
participante
http://goo.gl/9knBsn
Ejercicio
prctico
Crear
un
formulario
de
registro
de
datos
personales
y
posteriormente
pasar
a
una
pantalla
de
confirmacin
de
los
datos.
Fragments
Los
Fragment
aunque
no
son
Activities
o
un
tipo
de
Contenedor,
(si
entendemos
contenedor
como
una
subclase
de
ViewGroup),
se
comportan
de
una
forma
muy
similar,
tienen
su
ciclo
de
vida
como
las
Activities
y
albergan
componentes
como
los
contendores.
Los
podemos
considerar
como
sub-activities.
Podemos
decir
que
hay
2
tipos
de
fragment
en
funcin
de
como
los
insertemos
en
nuestra
aplicacin:
" Fragm ent
Estticos:
los
declarados
en
layout
mediante
la
etiqueta
<fragment>,
como
si
fueran
un
botn.
Se
utilizan
principalmente
para
reutilizar
cdigo
en
actividades.
" Fragm ent
Dinm icos:
Los
ms
interesantes,
podemos
quitarlos,
ponerlos
y
reemplazarlos.
Ejemplo:
Libreta
de
contactos
28
M anual
del
participante
Puedes
descargar
un
ejemplo
de
fragment
esttico
de
la
siguiente
direccin:
http://goo.gl/ZH66h2
La
siguiente
ventana
muestra
una
agenda
implementando
un
fragment
dinmico
Puedes
descargar
el
cdigo
fuente
de
la
siguiente
liga:
http://goo.gl/rrm6ul
Loaders
Los
loaders
fueron
introducidos
en
Android
3.0,
y
facilitan
la
carga
de
datos
de
manera
asincrnica
en
una
actividad
o
fragmento.
Si
debemos
realizar
tareas
pesadas
como
consultas
a
servicios
web,
obtencin
de
imgenes
desde
Internet,
etc,
en
segundo
plano
sin
bloquear
la
interfaz
de
usuario,
usamos
los
loaders
Ejercicio:
Haremos
la
carga
en
background
de
una
lista,
puedes
descargar
el
ejemplo
de
este
link:
http://goo.gl/QtPxtL
29
M anual
del
participante
D os
tareas:
Tarea
A
que
est
en
un
segundo
plano,
esperando
a
ser
reanudada,
mientras
que
la
tarea
B
recibe
la
interaccin
del
usuario
en
primer
plano.
Back
Stack
Cuando
la
actividad
en
curso
inicia
otra,
la
nueva
actividad
es
empujada
arriba
de
la
pila
y
obtiene
el
focus.
La
actividad
anterior
permanece
en
la
pila,
pero
est
detenida.
Cuando
la
actividad
para,
el
sistema
retiene
el
estado
actual
de
la
interfaz
de
usuario.
Cuando
el
usuario
hace
click
en
la
tecla
back
`atras',
la
actividad
en
curso
salta
desde
arriba
de
la
pila
(la
actividad
se
elimina)
y
la
actividad
previa
se
reanuda
(se
restaura
el
estado
previo
de
su
IU).
Las
actividades
en
la
pila
nunca
se
reorganizan,
solo
se
meten
o
sacan
de
la
pila.
Observa
la
siguiente
imagen.
Servicios
Los
servicios
(o
service)
son
tareas
no
visibles
que
se
ejecutan
siempre
por
debajo,
incluso
cuando
la
actividad
asociada
no
se
encuentra
en
primer
plano.
Tiene
un
hilo
propio
(aunque
no
se
pueden
ejecutar
solo),
lo
que
permite
llevar
a
cabo
cualquier
tarea,
por
pesada
que
sea.
No
necesita
interfaz,
a
no
ser
que
se
pida
explcitamente,
en
cuyo
caso
la
clase
Service
la
exportara.
Por
ejemplo,
cuando
usamos
una
aplicacin,
puede
que
queramos
ejecutar
algo
de
msica
en
background
a
la
vez.
En
este
caso,
el
cdigo
que
est
ejecutando
la
msica
en
background
no
necesita
interactuar
con
el
usuario,
y
por
ello
puede
ejecutarse
como
un
Service.
30
M anual
del
participante
Ejemplo:
Crearemos
un
servicio
en
Android,
donde
analizaremos
su
funcionalidad,
descarga
el
cdigo
fuente
del
siguiente
enlace:
http://goo.gl/TPLupC
Proveedores
de
contenido
Estos
proveedores
en
ingls
llamados
content
provider,
se
encargan
de
que
la
aplicacin
pueda
acceder
a
la
informacin
que
necesita,
siempre
que
se
haya
declarado
el
correspondiente
provider
en
el
AndroidManifest
,
compartiendo
informacin
sin
revelar
estructura
u
orden
interno.
Implementan
una
interfaz,
pero
se
comunica
con
ella
a
travs
de
la
clase
ContentResolver.
Cada
vez
que
se
usa
un
ContentResolver,
se
activa
un
ContentProvider.
Para
obtener
los
datos
necesarios,
es
necesario
conocer
la
URI
(identificador)
del
dato,
los
campos
que
tiene,
y
los
tipos
de
esos
campos.
Con
esto
ya
podemos
llamar
al
mtodo
ContentResolver.query().
Siempre
que
queramos
acceder
a
alguna
de
las
aplicaciones
del
telfono
por
ejemplo,
la
lectura
de
contactos
es
necesario
establecer
el
permiso
en
el
archivo
AndroidManifest.xml,
en
este
caso
se
podra
especificar
de
la
siguiente
manera:
<uses-permission!
android:name=android.permission.READ_CONTACTS>!
</users-permission>!
Ejercicio:
Accederemos
a
uno
de
los
contenidos
del
sistema,
el
log
de
llamadas,
para
ver
cmo
funciona
descrgalo
del
siguiente
enlace:
http://goo.gl/TPLupC
Procesos
e
hilos
La
creacin
de
hilos
por
el
sistema
operativo
Android
est
restringida
para
aumentar
la
estabilidad
del
sistema,
esto
quiere
decir
que
el
sistema
solo
crear
un
hilo
por
aplicacin
que
se
est
ejecutando,
pero
permite
a
los
desarrolladores
crear
todos
los
hilos
que
crea
necesarios
para
la
ejecucin
de
su
aplicacin.
Interfaz
de
usuario
La
interfaz
de
usuario
es
la
principal
seccin
de
interaccin
entre
persona
y
dispositivo.
A
todas
las
funcionalidades
disponibles
se
accede
a
travs
de
la
pantalla,
que
es
por
donde
se
muestra.
Es
muy
importante
conseguir
que
el
manejo
sea
intuitivo
y
sencillo,
y
que
el
aspecto
visual
sea
atractivo.
31
M anual
del
participante
Para
construirla,
se
emplean
diferentes
objetos
que
veremos
a
continuacin,
todos
ellos
descendientes
de
la
clase
View.
Fundamentalmente
hay
2:
los
propios
objetos
de
tipo
View,
como
por
ejemplo
botones
o
etiquetas,
y
que
son
la
base
de
una
subclase
llamada
widgets;
y
los
de
tipo
ViewGroup,
que
es
una
clase
que
extiende
a
View,
y
que
son
la
base
de
una
subclase
llamada
layouts.
La
estructura
de
la
interfaz
puede
resumirse
en
el
cuadro
que
se
muestra
a
continuacin.
Como
podemos
comprobar,
los
nodos
ViewGroup
son
contenedores
de
elementos
de
tipo
View
e
incluso
de
otros
elementos
de
su
mismo
tipo.
Los
controles
de
tipo
View
(obsrvese
que
los
nodos
de
este
tipo
son
siempre
hojas
del
rbol)
son
con
los
que
el
usuario
interacta.
32
M anual
del
participante
carpeta
D escripcin
identificador
res/drawable/
Ficheros
en
bitmap
(.png,
.jpg
o
.gif).
Ficheros
PNG
en
formato
Nine-patch
R.drawable
(.9.png).
Ficheros
XML
con
descriptores
grficos
(ver
clase
Drawable)
res/layout/
Ficheros
XML
con
los
Layouts
usados
en
la
aplicacin.
R.layout
res/menu/
Ficheros
XML
con
la
definicin
de
mens.
Podemos
asignar
una
actividad
o
R.menu
una
vista.
res/anim/
Fichero
XML
que
permiten
definir
una
animacin
Tween
tambin
conocidas
R.anim
como
animaciones
de
vista.
res/animator
Ficheros
XML
que
permiten
modificar
las
propiedades
de
un
objeto
a
lo
largo
33
M anual
del
participante
carpeta
D escripcin
identificador
R.animator
del
tiempo.
Ver
seccin:
animacin
de
propiedades.
Solo
desde
la
versin
3.0.
res/xml/
Otros
ficheros
XML,
como
los
ficheros
de
preferencias
R.xml
res/raw/
Ficheros
que
se
encuentran
en
formato
binario.
Por
ejemplo
ficheros
de
R.raw
audio
o
vdeo.
Ficheros
XML
que
definen
un
determinado
valor
para
definir
un
color,
estilo,
res/values/
cadena
de
caracteres
se
describen
en
la
siguiente
tabla.
fichero
por
defecto
D escripcin
identificador
strings.xml
Identifica
cadenas
de
caracteres
R.string
<string
name="saludo">Hola
Mundo!</string>
Un
color
definido
en
formato
ARGB
(alfa,
rojo,
verde
y
azul).
Los
valores
se
indican
en
hexadecimal
en
uno
de
los
siguientes
formatos:
#RGB,
#ARGB,
colors.xml
#RRGGBB
#AARRGGBB
R.color
<color
name="verde_opaco">#0f0</color>
<color
name="red_translucido">#80ff0000</color>
Definen
una
serie
de
atributos
que
pueden
ser
aplicados
a
una
vista
o
a
una
styles.xml
actividad.
Si
se
aplican
a
una
actividad
se
conocen
como
temas.
R.style
<style
name="TextoGrande"parent="@style/Text">
<item
name="android:textSize">20pt</item>
<item
name="android:textColor">#000080</item>
</style>
34
M anual
del
participante
puede
ser
interesante
disponer
de
IDs
previamente
creados,
para
que
los
elementos
as
nombrados
tengan
una
determinada
funcin.
Este
tipo
de
IDs
se
utilizan
en
las
vistas
TabHost
y
ListView.
<item
type="id"
name="button_ok"/>
<item
type="id"
name="dialog_exit"/>
fichero
por
defecto
D escripcin
identificador
Una
serie
ordenada
de
elementos.
Pueden
ser
de
strings,
de
enteros
o
de
recursos
(TypedArray)
<string-array
name="dias_semana"><<item>lunes</item>
<item>martes</item>
</string-array>
<integer-array
name="primos">
R.array
<item>2</item><item>3</item><item>5</item>
</integer-array>
<array
name="asteroides">
<item>@drawable/asteroide1</item>
<item>@drawable/asteroide2</item>
</array>
Almacenamiento
de
datos
Hay
cuatro
maneras
de
almacenar
los
datos
en
Android,
usaremos
una
u
otra
dependiendo
de
la
funcin
que
tengan
dichos
datos.
Es
importante
destacar
que
los
datos
de
cada
aplicacin
son
privados
a
dicha
aplicacin,
pero
tenemos
la
posibilidad
de
compartirlos
si
as
lo
deseamos,
como
veremos
ms
adelante.
Tenemos
cuatro
tipos
de
datos
distintos,
en
funcin
de
lo
que
queramos
almacenar.
Dichos
tipos
son:
1. Preferencias:
Conjunto
de
datos,
clave/valor
2. Archivos
locales:
Almacenamiento
interno
y
externo
(SD)
3. Base
de
datos:
SQLite
4. Proveedores
de
contenidos:
nico
mecanismo
para
compartir
datos,
no
se
trata
con
ellos
directamente.
Archivos
locales
En
Android
disponemos
de
dos
tipos
de
memorias
en
las
cuales
podemos
almacenar
informacin:
Memoria
interna
Memoria
externa
35
M anual
del
participante
# La
memoria
externa
suele
ser
siempre
ms
grande
que
la
interna,
lo
que
nos
permite
almacenar
archivos
con
mayor
capacidad.
# Para
poder
almacenar
archivos
en
la
memoria
externa
del
telfono
SD
es
necesario
agregar
este
permiso
en
el
AndroidManifest.xml
<uses-permission
android:name="android.permission.WRITE_EXTER
NAL_STORAGE"
/>
</uses-permission>
36
M anual
del
participante
Base
de
D atos
Las
bases
de
datos
son
una
herramienta
muy
importante
en
el
diseo
de
una
aplicacin
en
Android,
y
el
cul
pone
a
nuestra
disposicin
las
libreras
de
SQLite
que
nos
permitirn
a
travs
de
cdigo
SQL
crear
una
base
de
datos
y
hacer
todas
las
operaciones
posibles
en
ella.
Una
herramienta
que
nos
proporciona
SQLite
es
la
clase
SQLiteOpenHelper,
que
fcilmente
nos
proporciona
crear
nuestra
base
de
datos
y
asi
lograr
un
CRUD
de
acciones.
Ejercicio:
H arem os
un
form ulario
sencillo
en
el
que
podem os
registrar
un
videojuego
y
adem s
m ostrar
la
lista
de
resultados.
D escarga
el
cdigo
del
siguiente
enlace:
http://goo.gl/PG FDjM
Seguridad
y
permisos
El
principio
del
diseo
de
la
arquitectura
de
seguridad
de
Android
es
que
ninguna
aplicacin
tiene
permisos
para
hacer
algo
que
afecte
a
otra.
Cada
aplicacin
se
ejecuta
con
una
"identidad"
distinta
(ID
de
usuario
e
ID
de
grupo).
Para
que
dos
aplicaciones
pueden
compartir
informacin
han
de
declararse
unos
permisos.
Adems,
todas
las
aplicaciones
Android
deben
de
estar
firmadas
con
una
clave
privada
que
posee
cada
desarrollador.
Con
esto,
lo
que
Google
pretende
es
tener
controlada
la
autora
de
las
aplicaciones.
37
M anual
del
participante
38
M anual
del
participante
Perm isos
Una
aplicacin
bsica
de
Android
no
tiene
los
permisos
asociados
con
ella,
lo
que
significa
que
no
puede
hacer
nada
que
tenga
efectos
adversos
sobre
el
sistema
u
otras
aplicaciones.
Para
acceder
a
caractersticas
protegidas
del
sistema,
es
necesario
declarar
en
el
AndroidManifest.xml
los
permisos
que
se
van
a
solicitar.
Al
usuario,
cuando
ste
instala
la
aplicacin,
se
le
pregunta
si
quiere
aceptar
o
no
estos
permisos.
Es
importante
decir,
que
en
tiempo
de
ejecucin
no
pueden
cambiar
los
permisos
que
se
han
aceptado,
sino
que
tienen
que
darse
de
paso
antes
de
la
ejecucin.
La
mayor
parte
de
las
veces,
cuando
hay
un
fallo
de
permisos
se
lanza
una
SecurityException.
Para
conocer
todos
los
permisos
definidos
en
Android,
se
puede
consultar:
http://developer.android.com/reference/android/Manifest.permission.html
En
el
siguiente
cdigo
se
pueden
ver
declarados
tres
permisos
diferentes:
INTERNET:
permitimos
abrir
conexiones
de
red.
ACCESS_FINE_LOCATION:
permite
a
la
aplicacin
que
conozca
de
manera
"precisa"
la
ubicacin.
Por
ejemplo,
utilizando
GPS.
ACCESS_COARSE_LOCATION:
permite
a
la
aplicacin
conocer
la
ubicacin
de
manera
"menos"
precisa.
Por
ejemplo,
utilizando
WIFI.
39
M anual
del
participante
40
M anual
del
participante
El
manifiesto
Como
ya
se
introdujo
en
el
tema
anterior,
este
fichero
es
un
documento
xml
en
el
que
se
declaran
los
elementos
de
la
aplicacin,
as
como
sus
restricciones,
permisos,
procesos,
acceso
a
datos
e
interacciones
con
elementos
de
otras
aplicaciones.
Cada
elemento
se
declara
con
una
etiqueta
nica.
No
debe
confundirse
este
documento
con
el
xml
asociado
a
cada
actividad.
Los
elementos
grficos
y
distribucin
de
la
pantalla
sern
definidos
para
cada
actividad
dentro
de
su
xml,
pero
no
en
el
Android
Manifest.
Al
implementar
el
AndroidManifest
se
deben
seguir
unas
pautas
para
hacer
ms
comprensible
el
documento:
Este
cdigo
es
generado
por
el
SDK
a
partir
de
la
informacin
que
se
ha
proporcionado
al
crear
el
proyecto.
Se
declara
el
manifiesto
con
la
etiqueta
<manifest
>
y
dentro
se
incluye
el
paquete
en
que
se
encuentra
la
aplicacin
y
la
versin
del
cdigo.
Tambin
incluye
la
versin
del
sdk
que
usa
(con
la
etiqueta
<uses-sdk>).
A
continuacin,
el
usuario
definir
la
aplicacin,
incluyendo
todos
sus
componentes
en
la
etiqueta
<application>.
La
declaracin
de
componentes
puede
ser
desordenada,
pero
para
un
mejor
manejo
de
este
fichero,
se
recomienda
seguir
algn
tipo
de
orden.
Las
activities
se
declaran
con
la
etiqueta
<activity>.
En
ellas,
lo
primero
es
aadir
el
nombre
de
la
actividad
(android:name),
que
coincidir
con
el
de
la
clase
en
que
se
define
el
comportamiento.
Adems
se
pueden
aadir
imgenes,
as
como
cambiar
los
atributos
de
que
se
dispone.
A
continuacin,
se
declararan
los
intent
filters
asociados
a
la
actividad,
en
caso
de
que
los
haya.
Los
service
se
declaran
con
la
etiqueta
<Service>
y
aunque
tienen
menos
atributos
que
las
actividades,
lo
principal
es
darles
un
nombre
y
especificar
si
el
sistema
puede
o
no
utilizarlo
mediante
el
atributo
enabled
(android:enabled).
Despus
iran
los
intent
filters.
Los
broadcast
receiver
utilizan
<receiver>
y
al
igual
que
service,
necesita
los
atributos
name
y
enabled,
as
como
intent
filter
en
caso
de
necesitarlos.
Todos
los
componentes
anteriores
declaran
del
mismo
modo
sus
intent
filters.
Los
content
provider
utilizan
la
etiqueta
<provider>
y
son
los
nicos
componentes
en
los
que
no
se
declaran
intent
filters,
ya
que
no
son
necesarios.
De
nuevo
el
nico
atributo
necesario
es
el
nombre.
41
M anual
del
participante
Mi
primera
aplicacin
Para
crear
nuestro
primer
programa
Android
debemos
tener
instalado
y
configurado
todo
el
entorno
virtual
Una
vez
tengamos
todo
nuestro
entorno
creado
y
configurado
vamos
a
crear
nuestro
primer
programa
Android.
Abrimos
nuestro
Eclipse
y
vamos
a
File
->
New
->
Android
Application
Project
Nos
saldr
un
asistente
para
crear
nuestra
aplicacin.
En
la
primera
pantalla
debemos
introducir
los
datos
de
nuestro
programa:
-
Application
N am e:
Nombre
para
la
aplicacin.
-
Project
Nam e:
Nombre
para
el
proyecto
en
Eclipse.
42
M anual
del
participante
-
Package
Nam e:
Nombre
para
el
paquete
de
la
aplicacin.
Al
final
nos
quedara
con
una
configuracin
parecida
a
esta.
Una
vez
tengamos
todos
los
datos
insertados
pulsamos
en
Next
para
continuar
con
el
asistente.
En
la
siguiente
pantalla
podremos
elegir
la
configuracin
del
proyecto
como
la
creacin
de
un
icono
de
lanzador,
crear
una
activity,
sitio
creacin
del
proyecto,
etc.
Lo
dejamos
todo
por
defecto
y
pulsamos
en
Next.
43
M anual
del
participante
Como
hemos
marcado
crear
un
icono
para
el
launcher
en
la
siguiente
pantalla
nos
ayudar
a
crearlo.
Yo
voy
a
seleccionar
la
imagen
de
nuestro
logo.
En
la
siguiente
pantalla
podremos
seleccionar
una
activity
ya
creada
por
el
asistente
o
dejarla
en
blanco.
Por
defecto
la
dejamos
en
blanco
44
M anual
del
participante
Si
pulsamos
en
next
llegamos
a
la
ltima
pantalla
de
nuestro
asistente.
En
esta
podemos
definir
un
nombre
para
la
activity
y
su
layout.
Adems,
el
asistente
nos
dar
la
opcin
de
seleccionar
el
tipo
de
navegacin
de
nuestra
aplicacin.
Lo
dejamos
todo
por
defecto
y
pulsamos
en
finish.
Ya
tenemos
nuestra
aplicacin
creada
en
Eclipse.
Ahora,
vamos
a
por
el
cdigo.
Si
nos
fijamos,
eclipse
al
terminar
el
asistente
de
creacin
nos
ha
abierto
el
archivo
de
nuestro
layout
mostrando
de
manera
grfica
la
forma
que
tendr
nuestra
pantalla
y
vemos
una
pantalla
blanca
con
un
texto:
Hello
World!
Esto
es
porque
la
aplicacin
creada
por
defecto
por
el
asistente
ya
incluye
el
texto.
Vamos
a
cambiar
este
texto
para
hacer
nuestra
aplicacin
un
poco
ms
personal.
Para
ellos
nos
vamos
a
la
parte
del
cdigo.
Nota:
Podemos
ver
los
layouts
de
forma
grfica
o
cdigo.
Para
cambiar
entre
una
y
otro
tenemos
un
par
de
botones
en
la
parte
inferior
izquierda
que
pone
Graphical
Layout
y
activity_main.xml
Nos
centraremos
en
la
etiqueta
llamada
TextView
y
en
su
atributo
text.
Si
cambiamos
este
atributo
cambiaremos
el
texto.
Borramos
todo
lo
que
haya
dentro
de
las
comillas
de
text
y
nosotros
vamos
a
poner
Hola
Androides!
45
M anual
del
participante
Si
volvemos
a
la
vista
grfica
veremos
como
ya
se
ha
cambiado
nuestro
texto.
Para
finalizar,
vamos
a
lanzar
nuestra
aplicacin
y
ver
cmo
queda
en
el
emulador.
Los
proyectos
Android
se
lanzan
como
cualquier
aplicacin
Java,
solo
hay
que
darle
al
botn
Run
de
Eclipse.
Una
vez
haya
cargado
nuestro
emulador
(tarda
un
poco),
lanzara
la
aplicacin
y
ya
tenemos
creada
nuestra
primera
aplicacin
Android!
46
M anual
del
participante
Conclusiones
finales
47
M anual
del
participante
Fuentes
de
consulta
Bibliografa
Autor:
Salgado
Anah
Ttulo:
Certificacin
Android
Jr.
Cibergrafa
Autor:
Montiel
David
Ttulo:
Mi
primera
aplicacin
Android
Vnculo:
http://creandoandroid.es/mi-primera-aplicacion-android-hello-
world/
Editor:
Autor:
Manuel
Bez,
lvaro
Borrego,
Jorge
Cordero,
Luis
Cruz,
Miguel
Gonzlez,
Francisco
Hernndez,
David
Palomero,
Jos
Rodrguez
de
Llera,
Daniel
Sanz,
Mariam
Saucedo,
Pilar
Torralbo,
lvaro
Zapata
Ttulo:
Introduccin
a
Android
Vnculo:
http://pendientedemigracion.ucm.es/info/tecnomovil/documentos/android.pdf
Editor:
Victoria
Lpez
(vlopez@fdi.ucm.es)
y
Grupo
Tecnologa
UCM
(www.tecnologiaUCM.es)
Autor:
Condesa
Ttulo:
Appcelerator
Titanium
para
crear
aplicaciones
Android
Vnculo:
http://androideity.com/2011/09/19/appcelerator-titanium-para-crear-
aplicaciones-android/#sthash.NUVXVka6.dpuf
Editor:
androideity
Autor:
Miguel
Fernndez
Surez
Marta
Jardn
Diego
Miguel
Vallina
lvarez
Ttulo:
Permisos
en
Android
Vnculo:
https://sites.google.com/site/roughalpha1/Tecnologia_Android/Desar
rollador/permisos-en-android
Editor:
Blogger
48