Vous êtes sur la page 1sur 31

Desarrollo

de Aplicaciones Mviles en Android


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

ndice
SQLite Tabs Closing

11/7/11

Desarrollo de Aplicaciones Mviles en Android

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

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 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

Desarrollo de Aplicaciones Mviles en Android

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

Desarrollo de Aplicaciones Mviles en Android

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

Desarrollo de Aplicaciones Mviles en Android

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

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 acWvidad Diferentes acWvidades

Cada pestaa una acWvidad


Cada acWvidad ser una de nuestras pestaas
<?XML version="1.0" encoding="ur-8"?> <TabHost xmlns:android="htp://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="ll_parent" android:layout_height="ll_parent"> <LinearLayout android:orientaWon="verWcal" android:layout_width="ll_parent" android:layout_height="ll_parent" android:padding="5dp"> <TabWidget android:id="@android:id/tabs" android:layout_width="ll_parent" android:layout_height="wrap_content" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="ll_parent" android:layout_height="ll_parent" android;padding="5dp" /> </LinearLayout> </TabHost>

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

Desarrollo de Aplicaciones Mviles en Android

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

Desarrollo de Aplicaciones Mviles en Android

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

Desarrollo de Aplicaciones Mviles en Android

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

Desarrollo de Aplicaciones Mviles en Android

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

Desarrollo de Aplicaciones Mviles en Android

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

Desarrollo de Aplicaciones Mviles en Android

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

Vous aimerez peut-être aussi