Sei sulla pagina 1di 31

Desarrollo de Aplicaciones Mviles en Android

Profesorado: Jorge E. Carballo Franquis David D. Harjani Harjani Director: Jos Luis Roda

ndice
SQLite Tabs Closing

24/04/2011

Desarrollo de Aplicaciones Mviles en Android

SQLite
Base de datos relacional para sistemas embebidos Ocupa nicamente unos 225KB No se trata de un proceso, sino de una librera que se aade dinmicamente a las aplicaciones que quieren utilizar SQLite Implementa la mayor parte del estndar SQL-92, pero con restricciones Soporte para ALTER_TABLE limitado Las columnas no tienen tipos
24/04/2011 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 utiliza internamente en Firefox y Thunderbird Lo utilizan la mayora de las plataformas mviles (iOS, Symbian, Android, BlackBerry OS, webOS)
24/04/2011 Desarrollo de Aplicaciones Mviles en Android 4

SQLite en Android
Existen mltiples formas de atacar SQLite Nosotros veremos una en la que separamos el acceso a la base de datos del objeto Java que representa cada fila de la base de datos No existen las claves ajenas o forneas, y en el caso de necesitarlas, debemos forzarlas a mano Es relativamente fcil conectar una base de datos a una lista
24/04/2011 Desarrollo de Aplicaciones Mviles en Android 5

SQLite en Android
La base de datos est protegida dentro de la memoria interna del dispositivo 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

24/04/2011

Desarrollo de Aplicaciones Mviles en Android

SQLite en Android
Nosotros queremos guardar un objeto Java (un JavaBean o un POJO) en una base de datos El objetivo es que cada fila de la tabla de la base de datos represente unvocamente a un objeto Java Por tanto, necesitamos dos clases:
Objeto Java con modificaciones Clase SQLiteOpenHelper

24/04/2011

Desarrollo de Aplicaciones Mviles en Android

SQLite en Android
En nuestro objeto Java tendremos los siguientes mtodos:
- public static Cursor getAll(SQLiteDatabase db) {} - public static DbCryptoAlgorithm loadFrom(SQLiteDatabase db, long id) {} - public DbCryptoAlgorithm loadFrom(Cursor c) {} - public long save(SQLiteDatabase db) {}

24/04/2011

Desarrollo de Aplicaciones Mviles en Android

SQLite en Android
La SQLiteOpenHelper es una clase que extiende la anterior para crear nuestras tablas en la base de datos Adems, contiene informacin como el nombre de la base de datos, el nombre de la tabla y la versin actual del esquema

24/04/2011

Desarrollo de Aplicaciones Mviles en Android

SQLite en Android
Los mtodos de la clase que extiende SQLiteOpenHelper son:
- public void onCreate(SQLiteDatabase db) {} - public void onUpgrade(SQLiteDatabase db, int versionAntigua, int versionNueva) {} - public void onOpen(SQLiteDatabase db) {}

24/04/2011

Desarrollo de Aplicaciones Mviles en Android

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)

Dos formas de implementacin


Diferentes Views en la misma actividad Diferentes actividades

Cada pestaa una actividad


Cada actividad ser una de nuestras pestaas
<?XML version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp"> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android;padding="5dp" /> </LinearLayout> </TabHost>

Actividad principal
Deber extender de TabActivity En el mtodo onCreate()
TabHost tabHost = getTabHost(); // The activity TabHost TabHost.TabSpec spec; // Reusable TabSpec for each tab Intent intent; // Reusable Intent for each tab // Create an Intent to launch an Activity for the tab (to be reused) intent = new Intent().setClass(this, ArtistsActivity.class); // Initialize a TabSpec for each tab and add it to the TabHost spec = tabHost.newTabSpec("artists").setIndicator("Artists", res.getDrawable(R.drawable.ic_tab_artists)) .setContent(intent); tabHost.addTab(spec);

tabHost.setCurrentTab(getIntent());

Closing
More
Google IO 2009 Google IO 2010 Autores
Mark Murphy Reto Meier Ed Burnette

Las API Demos que provee el SDK, hechas por el propio equipo de Android
24/04/2011 Desarrollo de Aplicaciones Mviles en Android 15

Closing
Seguridad en Smartphones
En los procesadores ARM, los algoritmos de cifrado ms importantes estn implementados en el chip (hard-wired) Utilizamos 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
24/04/2011 Desarrollo de Aplicaciones Mviles en Android 16

Closing
Power Efficiency
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 especfico para determinadas funciones Cuando hablamos de un ARM11, ARM Cortex A8/A9, hablamos del procesador de aplicaciones
24/04/2011 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 instructions 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 distintas empresas (la pantalla, los botones, los plsticos, el SoC, etc.) y luego los ensamblan en sus fbricas La media de tiempo de desarrollo de un smartphone, desde su concepcin hasta el mercado, es de 18 meses

24/04/2011

Desarrollo de Aplicaciones Mviles en Android

18

Closing
Actualmente, hemos llegado al final de la segunda generacin de dispositivos Android (Nexus S, Samsung Galaxy S, Motorola Milestone 2, HTC Desire HD,) La tercera generacin est basada en dispositivos dual core (Samsung Galaxy S II, Motorola Atrix 4G, LG Optimus 2X) Comienzan a proliferar los tablets con Android; en ventas destaca la Samsung Galaxy Tab, pero a lo largo de 2011 se asentar Honeycomb (Motorola Xoom, Samsung Galaxy Tab 10.1, LG Optimus Pad, Asus Eee Pad Transformer) La explosin de los telfonos dual core (Cortex A9) est an por llegar, como ocurriese hace un ao con los ARM Cortex A8 Intel, con su Atom reducido, no sigue la arquitectura ARM sino la x86.
24/04/2011 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 Es lder en trfico de mviles (segn AdMob) superando incluso a iOS (antiguamente iPhone OS) En Europa est extendindose como plataforma, y cada vez recibe ms apoyo El problema sigue siendo la falta de conocimiento de muchos usuarios de que poseen un Android
24/04/2011 Desarrollo de Aplicaciones Mviles en Android 20

Closing
El mercado de aplicaciones mviles crece ao tras ao Se espera que el nmero de aplicaciones descargadas crezca de 8,2 mil millones en 2010 a 17,7 mil milliones en 2011 Los beneficios obtenidos en 2010 por aplicaciones mviles se estim en 5,2 mil millones de dlares, y para 2011 se espera que crezca hasta los 15,1 mil millones
Fuente: GARTNER http://www.gartner.com/it/page.jsp?id=1529214
24/04/2011 Desarrollo de Aplicaciones Mviles en Android 21

Closing
Por qu? El consumidor general todava no conoce 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 beneficios 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 continuar aumentando Muchos creen que an no se ha producido la verdadera explosin de usuarios
24/04/2011 Desarrollo de Aplicaciones Mviles en Android 22

Closing
Android Market
Actualmente est en pleno apogeo, con ms de 300,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 automticamente Si nuestra aplicacin es de pago, no la veremos en nuestro dispositivo (no podemos comprar nuestras aplicaciones) El ratio es 70% para el desarrollador y 30% para el operador, no Google
24/04/2011 Desarrollo de Aplicaciones Mviles en Android 23

Closing
Android Market
Existen diferentes estrategias para vender aplicaciones: publicidad, versiones Donate, etc. La posibilidad de realizar compras desde la aplicacin abre paso a una vieja costumbre, el shareware Como Android es libre, existen otros mercados que compiten con el Market; especial mencin merecen la Amazon Android Appstore y GetJar. Los pagos se realizan a travs de Google Checkout
24/04/2011 Desarrollo de Aplicaciones Mviles en Android 24

Closing
Eficiencia
Cuando programamos para un ordenador, hacer un bucle como:
for (int k = 0; k < S[i][j]*R[i][j] + 1; k++)

No tiene graves consecuencias, pero en un mvil s, porque repetimos el gasto de batera para la misma operacin De hecho, este bucle clsico ya es ineficiente:
For (int i = 0; i < myString.length; i++)

24/04/2011

Desarrollo de Aplicaciones Mviles en Android

25

Closing
Eficiencia
Cuando escribimos cdigo y llamamos cdigo desde las actividades, 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 distintos a la UI con una interfaz pre-definida
24/04/2011 Desarrollo de Aplicaciones Mviles en Android 26

Closing
Es importante tener un dispositivo Android de verdad como desarrollador?
La respuesta es siempre S

24/04/2011

Desarrollo de Aplicaciones Mviles en Android

27

Closing
Vale la pena gastarse tanto dinero?
Depende de si vamos a invertir horas en desarrollar aplicaciones y colocarlas en el Android Market

24/04/2011

Desarrollo de Aplicaciones Mviles en Android

28

Closing
Hay tantos dispositivos que no s cul comprar. Qu es lo ideal?
Lo ideal es tener uno de cada tipo de pantalla La pantalla y los controles marcan la diferencia entre un dispositivo 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

Lo que recomendamos es tener 2 dispositivos: uno de gama baja/media (HTC Wildfire S, HTC Legend, etc.) y uno de gama alta (Nexus S, LG Optimus 2X, Galaxy S, HTC Desire HD)
24/04/2011 Desarrollo de Aplicaciones Mviles en Android 29

Closing
Algo ms que se les ocurra?

24/04/2011

Desarrollo de Aplicaciones Mviles en Android

30

Closing

Gracias!!!

Jorge Carballo Franquis (jelcaf@gmail.com) David Dinesh Harjani Harjani (goldrunner192287@gmail.com, @dinesharjani)
24/04/2011 Desarrollo de Aplicaciones Mviles en Android 31

Potrebbero piacerti anche