Académique Documents
Professionnel Documents
Culture Documents
ndice
SQLite
Tabs
Closing
11/7/11
SQLite
Base
de
datos
relacional
para
sistemas
embebidos
Ocupa
nicamente
unos
225KB
en
memoria
No
se
trata
de
un
proceso,
sino
de
una
librera
que
se
aade
dinmicamente
a
las
aplicaciones
que
quieren
uWlizar
SQLite
Implementa
la
mayor
parte
del
estndar
SQL-92,
pero
con
restricciones
Soporte
para
ALTER_TABLE
limitado
Las
columnas
no
Wenen
Wpos
11/7/11
Desarrollo
de
Aplicaciones
Mviles
en
Android
3
SQLite
Existen
diferentes
herramientas,
como
sqlite3,
disponible
desde
sqlite.org
Existen
un
plugin
de
Firefox
para
visualizar
bases
de
datos
SQLite
(recomendado)
Se
uWliza
internamente
en
Firefox
y
Thunderbird
Lo
uWlizan
la
mayora
de
las
plataformas
mviles
(iOS,
Android,
WP7,
BlackBerry
OS,
webOS)
11/7/11
Desarrollo
de
Aplicaciones
Mviles
en
Android
4
SQLite
en
Android
Existen
mlWples
formas
de
atacar
SQLite
Nosotros
veremos
una
en
la
que
separamos
el
acceso
a
la
base
de
datos
del
objeto
Java
que
representa
cada
la
de
la
base
de
datos
No
existen
las
claves
ajenas
o
forneas,
y
en
el
caso
de
necesitarlas,
debemos
forzarlas
a
mano
Es
relaWvamente
fcil
conectar
una
base
de
datos
a
una
lista
11/7/11
Desarrollo
de
Aplicaciones
Mviles
en
Android
5
SQLite
en
Android
La
base
de
datos
est
protegida
dentro
de
la
memoria
interna
del
disposiWvo
Mientras
trabajamos
con
el
emulador
(donde
tenemos
acceso
root),
podemos
extraer
(con
DDMS)
el
archivo
de
la
base
de
datos
y
visualizarlo
En
general,
el
acceso
suele
ser
rpido
11/7/11
SQLite
en
Android
Nosotros
queremos
guardar
un
objeto
Java
(un
JavaBean
o
un
POJO)
en
una
base
de
datos
El
objeWvo
es
que
cada
la
de
la
tabla
de
la
base
de
datos
represente
unvocamente
a
un
objeto
Java
Por
tanto,
necesitamos
dos
clases:
Objeto
Java
con
modicaciones
Clase
SQLiteOpenHelper
11/7/11
SQLite
en
Android
En
nuestro
objeto
Java
tendremos
los
siguientes
mtodos:
- public
sta+c
Cursor
getAll(SQLiteDatabase
db)
{}
- public
sta+c
DbCryptoAlgorithm
loadFrom(SQLiteDatabase
db,
long
id)
{}
- public
DbCryptoAlgorithm
loadFrom(Cursor
c)
{}
-
public
long
save(SQLiteDatabase
db)
{}
11/7/11
SQLite
en
Android
La
SQLiteOpenHelper
es
una
clase
que
exWende
la
anterior
para
crear
nuestras
tablas
en
la
base
de
datos
Adems,
conWene
informacin
como
el
nombre
de
la
base
de
datos,
el
nombre
de
la
tabla
y
la
versin
actual
del
esquema
11/7/11
SQLite
en
Android
Los
mtodos
de
la
clase
que
exWende
SQLiteOpenHelper
son:
- public
void
onCreate(SQLiteDatabase
db)
{}
- public
void
onUpgrade(SQLiteDatabase
db,
int
versionAn+gua,
int
versionNueva)
{}
-
public
void
onOpen(SQLiteDatabase
db)
{}
11/7/11
10
Pestaas
Las
pestaas
o
Tabs
facilitan
la
navegacin
en
nuestra
aplicacin
Creacin
de
Pestaas
Se
necesitara
un
TabHost
y
un
TabWidget El
TabHost
deber
ser
el
nodo
padre
del
layout
TabWidget
(Pestaas)
FrameLayout (Contenido
de
las
pestaas)
AcWvidad
principal
Deber
extender
de
TabActivity En
el
mtodo
onCreate()
TabHost
tabHost
=
getTabHost();
//
The
acWvity
TabHost
TabHost.TabSpec
spec;
//
Reusable
TabSpec
for
each
tab
Intent
intent;
//
Reusable
Intent
for
each
tab
//
Create
an
Intent
to
launch
an
AcWvity
for
the
tab
(to
be
reused)
intent
=
new
Intent().setClass(this,
ArWstsAcWvity.class);
//
IniWalize
a
TabSpec
for
each
tab
and
add
it
to
the
TabHost
spec
=
tabHost.newTabSpec("arWsts").setIndicator("ArWsts",
res.getDrawable(R.drawable.ic_tab_arWsts))
.setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(getIntent());
Closing
More
Google
I/O
2009
Google
I/O
2010
Google
I/O
2011
Autores
Mark
Murphy
Reto
Meier
Ed
Burnete
Las
API
Demos
que
provee
el
SDK,
hechas
por
el
propio
equipo
de
Android
11/7/11
Desarrollo
de
Aplicaciones
Mviles
en
Android
15
Closing
Seguridad
en
Smartphones
En
la
mayora
de
procesadores,
los
algoritmos
de
cifrado
ms
importantes
estn
implementados
en
el
chip
(hard-wired)
UWlizamos
algoritmos
de
seguridad
constantemente
en
Internet
(redes
Wi-Fi,
protocolo
HTTPS)
Podemos
acceder
a
ellos
a
travs
de
la
librera
java
crypto
(pero
no
es
trivial)
Es
recomendable
guardar
las
contraseas
encriptadas,
y
si
es
posible,
no
usar
algoritmos
dbiles
como
MD5,
SHA-1
11/7/11
Desarrollo
de
Aplicaciones
Mviles
en
Android
16
Closing
Power
Eciency
Los
Smartphones
se
construyen
siguiendo
la
ideologa
System-on-a-Chip
(SoC)
Todos
los
componentes
(procesador,
mdem
[radios],
adaptador
de
pantalla,
cmaras,
GPS,
micrfonos,
etc.)
estn
en
una
sola
placa
o
chip
Un
Smartphone
no
posee
un
nico
procesador,
sino
uno
especco
para
determinadas
funciones
Cuando
hablamos
de
un
ARM11,
ARM
Cortex
A8/ A9,
hablamos
del
procesador
de
aplicaciones
11/7/11
Desarrollo
de
Aplicaciones
Mviles
en
Android
17
Closing
La
industria
de
hardware
en
smartphones
es
bastante
diferente
a
la
de
los
PCs
Actualmente,
hablamos
de
que
una
implementacin
de
ARM
Cortex
A8
puede
variar
entre
1000
y
2000
MIPS
(Million
instrucWons
per-second),
siendo
un
procesador
sper
escalar
Un
ARM
Cortex
A9
alcanza
perfectamente
4000
MIPS,
con
promesas
de
hasta
8000
Los
fabricantes
de
smartphones
piden
los
componentes
a
disWntas
empresas
(la
pantalla,
los
botones,
los
plsWcos,
el
SoC,
etc.)
y
luego
los
ensamblan
en
sus
fbricas
La
media
de
Wempo
de
desarrollo
de
un
smartphone,
desde
su
concepcin
hasta
el
mercado,
es
de
18
meses
11/7/11
18
Closing
Actualmente,
estamos
entrando
en
la
tercera
generacin
de
disposiWvos
Android
(Galaxy
Nexus
S,
Samsung
Galaxy
S
II,
HTC
SensaWon,
LG
OpWmus
2X)
Comienzan
a
aparacer
tablets
con
Android
(Samsung
Galaxy
Tab
10.1,
Motorola
Xoom)
La
verdadera
explosin
de
los
telfonos
mul$
core
(Cortex
A9)
est
an
por
llegar
Intel,
con
su
Atom
reducido,
no
sigue
la
arquitectura
ARM
sino
la
x86.
11/7/11
Desarrollo
de
Aplicaciones
Mviles
en
Android
19
Closing
Android
es
la
plataforma
que
ms
est
creciendo
en
popularidad
en
Estados
Unidos,
y
ya
ha
superado
a
iOS
como
lder
en
cuota
de
mercado,
pero
slo
en
smartphones
Es
lder
en
trco
de
mviles
(segn
AdMob)
superando
incluso
a
iOS
(anWguamente
iPhone
OS)
En
Europa
est
extendindose
como
plataforma,
pero
desgraciadamente
la
mayora
de
usuarios
no
saben
que
Wenen
Android
ni
lo
que
es
Falta
un
mayor
empuje
de
publicidad
que
resalte
las
buenas
cualidades
de
los
disposiWvos
11/7/11
Desarrollo
de
Aplicaciones
Mviles
en
Android
20
Closing
El
mercado
de
aplicaciones
mviles
(tablets
y
smartphones)
crece
ao
tras
ao
Se
espera
que
el
nmero
de
aplicaciones
descargadas
crezca
de
8,2
mil
millones
de
2010
a
los
17,7
mil
millones
en
2011
Los
benecios
obtenidos
en
2010
por
aplicaciones
mviles
se
esWm
en
5,2
mil
millones
de
dlares,
y
para
2011
se
espera
que
crezca
hasta
los
15,1
mil
millones
Fuente:
GARTNER
htp://www.gartner.com/it/page.jsp?id=1529214
11/7/11
21
Closing
Por
qu?
El
consumidor
general
est
comenzando
a
entender
la
existencia
de
los
smartphones,
ni
los
servicios
que
ofrece
Los
smartphones
apenas
representan
un
10
15%
de
las
ventas
de
mviles,
pero
son
los
que
ms
benecios
reportan
a
fabricantes
y
operadoras
En
los
mercados
emergentes,
se
produce
un
nmero
millonario
de
altas
nuevas
cada
mes
La
concienciacin
sobre
los
smartphones
crece
poco
a
poco,
y
el
nmero
de
usuarios
conWnuar
aumentando
Muchos
creen
que
an
no
se
ha
producido
la
verdadera
explosin
de
usuarios
11/7/11
Desarrollo
de
Aplicaciones
Mviles
en
Android
22
Closing
Android
Market
Actualmente
est
en
pleno
apogeo,
con
ms
de
500,000
aplicaciones
No
importa
el
nmero,
sino
la
calidad
Para
ser
desarrollador,
solamente
es
necesario
pagar
25
euros
una
sola
vez
Podemos
subir
todas
las
aplicaciones
que
queramos,
aparecen
automWcamente
Si
nuestra
aplicacin
es
de
pago,
no
la
veremos
en
nuestro
disposiWvo
(no
podemos
comprar
nuestras
aplicaciones)
El
raWo
es
70%
para
el
desarrollador
y
30%
para
el
operador,
no
Google
Desarrollo
de
Aplicaciones
Mviles
en
Android
23
11/7/11
Closing
Android
Market
Existen
diferentes
estrategias
para
vender
aplicaciones:
publicidad,
versiones
Donate,
etc.
La
posibilidad
de
realizar
compras
desde
la
propia
aplicacin
abre
paso
a
una
vieja
costumbre,
el
shareware
Los
pagos
se
realizan
a
travs
de
Google
Checkout
Como
Android
es
libre,
existen
otros
mercados
que
compiten
con
el
Market;
especial
mencin
merecen
la
Amazon
Android
Appstore
y
Getjar
11/7/11
Desarrollo
de
Aplicaciones
Mviles
en
Android
24
Closing
Eciencia
Cuando
programamos
para
un
ordenador,
hacer
un
bucle
como:
for
(int
k
=
0;
k
<
S[i][j]*R[i][j]
+
1;
k++)
No
Wene
graves
consecuencias,
pero
en
un
mvil
s,
porque
repeWmos
el
gasto
de
batera
para
la
misma
operacin
De
hecho,
este
bucle
clsico
ya
es
ineciente:
For
(int
i
=
0;
i
<
myString.length;
i++)
11/7/11
25
Closing
Eciencia
Cuando
escribimos
cdigo
y
llamamos
cdigo
desde
las
acWvidades,
estamos
ejecutando
desde
el
hilo
de
la
UI
Si
el
cdigo
que
ejecutamos
tarda
ms
de
5
segundos,
Android
detectar
que
la
UI
ha
dejado
de
responder
ante
el
usuario
y
le
preguntar
si
quiere
cerrarla
Debemos
separar
el
cdigo
lento
en
un
nuevo
hilo,
y
mantener
el
hilo
de
la
UI
ocupado
con
un
ProgressDialog
Tambin
podemos
hacer
uso
de
los
Tasks,
que
son
clases
que
nos
permiten
ejecutar
cdigo
en
hilos
disWntos
a
la
UI
con
una
interfaz
pre-denida
Desarrollo
de
Aplicaciones
Mviles
en
Android
26
11/7/11
Closing
Es
importante
tener
un
disposiWvo
Android
de
verdad
como
desarrollador?
La
respuesta
es
siempre
S
11/7/11
27
Closing
Vale
la
pena
gastarse
tanto
dinero?
Depende
de
si
vamos
a
inverWr
horas
en
desarrollar
aplicaciones
y
colocarlas
en
el
Android
Market
11/7/11
28
Closing
Hay
tantos
disposiWvos
que
no
s
cul
comprar.
Qu
es
lo
ideal?
Lo
que
recomendamos
es
tener
2
disposiWvos:
uno
de
gama
baja/media
(HTC
Wildre
S,
HTC
Legend,
etc.)
y
uno
de
gama
alta
(Galaxy
Nexus,
Samsung
Galaxy
S
II,
HTC
SensaWon,)
11/7/11
Desarrollo
de
Aplicaciones
Mviles
en
Android
Lo ideal es tener uno de cada Wpo de pantalla La pantalla y los controles marcan la diferencia entre un disposiWvo y otro; podemos hacernos una idea de cmo funciona un pad en lugar de un teclado, pero no podemos imaginarnos una pantalla con una determinada resolucin
29
Closing
Algo
ms
que
se
les
ocurra?
11/7/11
30
Closing
Gracias!!!
Jorge
Carballo
Franquis
(jelcaf@gmail.com)
David
Dinesh
Harjani
Harjani
(goldrunner192287@gmail.com,
@dinesharjani)
11/7/11
Desarrollo
de
Aplicaciones
Mviles
en
Android
31