lunes, 30 de abril de 2012

Estructura de las carpetas de una aplicacion Android

Como esta muy de moda el diseño de aplicaciones para dispositivos móviles y mas en Android que esta teniendo un gran impacto se debe de conocer la estructura que debe de tener una aplicación Android .

Existen 4 componentes importantes Activities , Listeners , Services, Content Provider.

La composición para gestionar la creación de una aplicación esta dividida en una serie de carpetas y archivos a los que se puede acceder directamente  estas son SRC que es una de las mas importantes aunque todas son imprescindibles esta carpeta contiene el código fuente y es donde se almacenan todas las clases que vamos a desarrollar durante la creación de la aplicación.Aquí estará una clase principal que hereda de Activity y sirve para la creación de la aplicación.

RES que es donde se encuentran los archivos necesarios para la visualización correcta de la aplicacion res viene de la palabra recursos , y esta contiene varias carpetas que son drawable en esta carpeta se contiene las imágenes que se usaran , en ella encontraremos como mínimo icon.jpg que es el icono de la aplicacion. layout en esta se encontraran las capas necesarias para mostrar la información , esta información se guarda en formato XML , aquí deberá encontrarse por lo menos una capa que suele llamarse main.xml y que nos sirve para mostrar la primera información de la aplicación.

values esta es otra carpeta que contiene los valores de los string que vamos a mostrar por pantalla , esta es una carpeta importante para la realización de aplicaciones multilenguajes pues ya que en vez de rehacer el código creando varios archivos XML con los diferentes idiomas podemos cargar la aplicación en un idioma o en otro , aquí por lo menos se deberá encontrar un archivo llamado string.xml.

raw esta es una carpeta que no es necesaria que se encuentre en el proyecto sirve para almacenar el resto de los ficheros como pueden ser los efectos sonoros.

Existe otra  carpeta que lleva por nombre Android 1.6 o 2.2 comúnmente que son las que contienen los imports necesarios para la ejecución de las aplicaciones .

gen esta es otra carpeta y aquí se encuentra un archivo llamado R.java que es autogenerado por el proyecto esta se encarga de gestionar toda la información contenida en res para poder ser utilizada osea por ejemplo cuando se tiene una imagen en res/drawable la cual queremos usar en una clase , la manera de obtenerla seria así : content.getResources().getDrawable(R.drawable.imagen);

Existe también un archivo llamado AndroidManifiest.xml y en esta se encuentra toda la información esencial para poder ejecutar la aplicación , como el nombre de la aplicacion , el icono de esta y la primera actividad que sera lanzada.


Aquí puede verse como están organizadas las carpetas y los archivos en una aplicación Android.

Política de eliminación de procesos en Android

Cada aplicación Android se ejecuta en su propio proceso. Este proceso se crea cada vez que una aplicacion necesita ejecutar parte de su código y seguirá existiendo hasta que la aplicación finalice o hasta que el sistema necesite utilizar parte de sus recursos para otra aplicacion considerada prioritaria.

Entonces se debe de saber como los componentes en Android determinan e influyen en el ciclo de vida de la aplicacion . No usar componentes correctamente a la hora de construir una aplicacion puede significar que el sistema los termine cuando en realidad esta haciendo una tarea importante para el usuario . Entonces Android por eso construye una jerarquía donde evalúa los componentes que están ejecutándose y el estado de los mismos en orden de importancia estarían de esta manera.

Los procesos en primer plano : Son los necesarios para lo que el usuario este haciendo en ese momento . Como se sabe que se esta ejecutando en primer plano pues si cumple alguna de las siguientes condiciones , que tiene un componente Activity  ejecutándose con el que el usuario esta interactuando, tiene un componente Broadcast Intent Receiver  ejecutándose , los que tengan un componente Service ejecutandose en el momento.

Solo debería de haber algunos procesos en el sistema idealmente y su eliminación se debe dar únicamente cuando la falta de recursos impida que se siga ejecutando.

Existen también los procesos visibles que son los que contienen un componente Activity visible en pantalla pero no con el foco de actividad en ese momento.

Procesos de servicio , son aquellos procesos que tienen un componente Service  y se están ejecutando en background , que aunque no sean visibles directamente al usuario desempeñan tareas si percibidas por este.

Procesos en segundo plano son los que tiene un componente Activity que no son visibles al usuario y estos procesos no tienen una importancia directa para el usuario en ese momento.

Procesos vacíos que son los que ya no ejecutan ninguna actividad pero que se mantiene en memoria para agilizar una posible nueva llamada por parte del usuario.

Como dije Android utiliza una jerarquía que es esta y según esta  Android prioriza los procesos existentes en el sistema y decide cuales han de ser eliminados con el fin de liberar recursos y poder lanzar la aplicacion requerida.

Ademas Android también permite que el usuario manipule los procesos y los termine cuando el desee mediante distintas aplicaciones esto es una gran ventaja ya que como se menciono anteriormente Android prioriza los procesos y si decide que un proceso es importante lo sigue manteniendo activo , entonces el usuario podría eliminarlo fácilmente para liberar mas recursos.

Aquí podemos ver lo que les menciono anteriormente donde el mismo usuario puede decidir que proceso o aplicacion desea que se este ejecutando y cuales no.


Arquitectura Android

Android es una plataforma que utilizan distintos dispositivos móviles como tableteas ,celulares etc , este contiene una pila de software donde se incluye el sistema operativo, middleware y aplicaciones básicas para el usuario. Su diseño cuenta  con distintas características como :

- Permite la representación de gráficos en 2D y 3D
- Servicio de localización GSM
- Posibilita el uso de base de datos
- Soporta un elevado numero de formatos multmedia
- Cuenta con su propia maquina virtual Dalvik , esta interpreta y ejecuta código java
- Los componentes básicos de las aplicaciones se pueden sustituir facilmente por otros
- Busca que las aplicaciones sean reutilizables  y portables en diferentes dispositivos
- Controla los diferentes hardware como Bluetooth , wi-fi , cámara , gps, infrarrojos  etc
- Ofrece un plug-in para uno de los entornos de desarrollo mas populares, Eclipse  y un emulador integrado

La arquitectura de Android se basa en capas y estas capas utiliza servicios ofrecidos por las anteriores y ademas ofrece a su vez los suyos propios a las capas de niveles superiores , en esta imagen se puede apreciar.


La capa inmediata es la que corresponde al nucleo de Android. Este utiliza el nucleo de Linux 2.6 como una capa de abstraccion para el hardware disponible en los dispositivos moviles . Esta capa lo que hace es contener los drivers necesarios para cualquier componente hardwaere pueda ser utilizado mediante las llamadas correspondientes .

Esto quiere decir que cuando un fabricante incluya algún elemento nuevo de hardware lo primero que debe realizar para que pueda ser utilizado desde Andoid es crear librerías de control o drivers necesarios dentro de este kernel de Linux integrado en el propio Android.

Muchos se preguntan porque la elección de Linux 2.6 esto por su naturaleza de código abierto y libre y se ajusta al tipo de distribución que se buscaba para Android  y la segunda es que este kernel de Linux incluye de por si numerosos drivers , y para contemplar la gestión de memorias , gestión de procesos , módulos de seguridad etc. 

La siguiente capa es la de las librerías utilizadas por Android. Estas se escribieron en C/c++ y proporcionan a Android la mayor parte de sus capacidades mas características.  Esto constituye junto al núcleo el corazón de Android.

Existen muchas librerías pero algunas de las mas importantes son la librería lib que incluye las cabeceras y funciones según el estándar del lenguaje C. , la librería surface manager que se encarga de componer los diferentes elemento de navegación de pantalla, la librería Open GL/Sl y SGL que representan librerías gráficas  y por tanto sustentan la capacidad gráfica de Android .  OpenGL/SL maneja gráficos en 3d y SGL proporciona graficos en 2D , la librería Media libreries que proporciona codecs necesarios para el contenido multimedia soportado en Android.

Ahora además en el mismo nivel de las librerías de Android se sitúa el entorno de ejecución y este lo constituyen las Core Libraries que son librerías con multitud de clases Java y la maquina virtual Davilk

Los 2 últimos niveles de la arquitectura están escritos enteramente en Java .  Todas las aplicaciones creadas por cualquier persona o compañía utilizan el mismo conjunto de API y el mismo framework. Entre las a API mas importantes se encuentran las de Activity Maneger importante conjunto API que gestiona el  ciclo de vida de las aplicaciones , la Window Manager que gestiona las ventanas de las aplicaciones , Telephone Manager incluye todas las API vinculadas a las funcionalidades propias del teléfono como llamadas , mensajes etc. existen muchas mas API pero al mencionarlas todas se haría muy extenso.

Ahora el ultimo nivel del diseño arquitectónico de Andoird son las aplicaciones en este nivel incluye tanto las incluidas por defecto como las que se crean  por nosotros mismos o compañias y todas estas aplicaciones utilizan los servicios , las API y librerías de los niveles anteriores.

domingo, 22 de abril de 2012

Historia de las consolas portátiles

Los videojuegos portátiles empezaron por allá en la década de los 80', mientras Nintendo trabajaba arduamente en su proyecto de crear una consola para e hogar , otra division con menos recursos que la primera lograba introducir al mercado la primer consola portatil del mercado , la GAME & WATCH. Su creador fue Gunpei Yokoi y lanzo mas de 59 juegos distintos en este formato desde 1980 hasta 1989 , fue una producción increíble teniendo en cuenta que cada juego necesitaba el desarrollo de su propio hardware.



Tenia una arquitectura simple : Pantalla LCD básica, monocromatico , botones de goma, alimentacion por baterías miniatura y lo mas importante eran pequeñas y económicas. Este después se relanzo con doble pantalla, pronto se vendieron decenas de millones de aparatos desde su aparición.


Después el 2 de abril de 1989 fue la fecha escogida por Nintendo para el lanzamiento de una consola con el nombre de prototipo DOT MATRIX GAME , el Game Boy salio al mercado para imponerse como el rey de las consolas portátiles esa década. Lo mas importante de esta consola fue que se corrigió el error de Gunpei Yokio y ya no era necesario crear un hardware para cada juego sino que venían ahora en formato de cartucho.


Con mas de 500 juegos y mas de 9 millones de unidades vendidas en todo el mundo fue sin lugar a dudas una gran hazaña de Nintendo , la marca Game Boy fue retirada del mercado en 2005 . Aunque su evolución fue permanente por ejemplo se lanzo el Game Boy Color y en 2001 el Game Boy Advanced .

 


Existieron otras mas consolas portátiles de otras compañias como Sega , Atari etc pero ninguna de estas represento un gran golpe en el mercado , muchas de ellas estuvieron disponibles solamente uno o dos años cuando tenían regulares ventas.


Para el 2004 Nintendo decide sacar a la venta la consola  portátil llamada Nintendo DS (Dual Screen) una consola que pose 2 pantallas LCD, una táctil para crear una experiencia nueva de juego. Su modelo nos viene a recordar las Game & Watch de la década del 80". Su poderío queda a la vista al tener un motor gráfico similar a la consola Nintendo 64.


Sony se introdujo en el mercado de los videojuegos y lanzo la Sony PSP (Play Station Portable) en 2004  su formato esta patentado por Sony y tenia una capacidad de 1.8 GB fue sin duda una gran competidora para la Nintendo DS registrando ventas de unos 15 millones de aparatos por los 25 millones de Nintendo la única desventaja era que tenia un precio muy elevado.







De aquí en adelante siguieron apareciendo en el mercado nuevas consolas aunque la mayoría solamente eran mejoras  o nuevas versiones de estas pasadas.



Sistema operativo Symbian

Anteriormente publique una entrada que mencionaba el SO Symbian pero en esta entrada hablare sobre el y sus características.
Primeramente que es Symbian: Este es un sistema operativo de uso exclusivo para celulares, creado por una alianza entre varias empresas de telefonía ceular entre ellas se encuentra Nokia , Sony Ericsson , Panasonic , Motorola , LG , Samgung etc . Esta basado en su predecesor el sistema EPOC3. 


Este sistema operativo entro al mercado pra competir con los grandes sistemas operativos de ese entonces como lo era el SO para Palms de Windows  llamada Windows Mobile.


En el 2003 Nokia empezo con la compra de las acciones primero a Motorola despues adquirio las de Sony Ericcson y a mediados del 2008 logro comprar por completo el SO adquiriendo el 52% de las acciones restantes  para despues formar la fundacion Symbian. 




En  el presente este SO es usado por la mayoria de los celulares Nokia y en algunos pocos Sony Ericcson mientras que los demas productores lo utilizan en una muy pequeña porcion por ejemplo Panasonic lo usa exclusivamente en 2 modelos.


El SO Symbian cuenta con varias interfaces distintas las cuales son la serie 60, 80,90, y 40.


Nokia publico en octubre del 2011 que solo tendra soporte hasta el 2016 , al no poder seguir soportandolo por no ser un competidor para la nueva version de smartphones con sistemas operativos de ultima generacion como Android , iOS o Windows Phone.


La ultima version estable fue la de Symbian Belle FP1 o tambien llamda Symbian OS10 que salio al mercado el 14 de abril de 2012 y la ultima version en pruebas es Symbian Carla.


Estos son los 2 primeros aparatos que Nokia lanza al mercado con la evolucion de Symbia^3



Entre las novedades, la compañía destaca que se han facilitado los registros a todos los servicios (mapas, tienda, juegos etc), para los que solo hará falta logearse una vez, mejoras en el sistema de mensajería y en la plataforma de contenidos para desarrolladores. No obstante, donde realmente se hacen más visibles los cambios en en la interfaz con iconos de esquinas redondeados totalmente renovados en los que el color adquiere gran protagonismo y se destierran las animaciones o el volumen de la iconografía. En cambio, se recupera el teclado QWERTY vertical y el navegador se muestra mucho más gráfico, más rápido (entre un 50-60% más veloz que su antecesor) y con soporte para HTML5 y Flash. Igualmente, se ha revisado el PIM (Personal Information Manager o Gestor de Información Personal), de manera que es posible gestionar varios calendarios simultáneamente con consultas al mismo tiempo y sincronización entre varios almanaques.
Ademas donde Nokia quiere realmente sobresalir e innovarse es en su tienda de aplicaciones llamada Ovi ya que anteriormente por decirlo asi estaba casi muerta ultimamente a tenido un repunte en las descargas diarias , habra que ver como reacciona la gente a estas mejoras en su SO pero por lo pronto seguira estando debajo de sus mas grandes competidores iOS ,Android y BlackBerry.

El Internet Móvil



El diseño de las páginas web para su uso en teléfonos móviles  debe ser un proceso bien hecho y siguiendo estándares ya que los usuarios al usar el Internet por no especificar las páginas web  lo que buscan es una experiencia fácil y con un buen diseño.

Relativamente tiene poco tiempo que empezó a tener un gran auge ya que desde por el ya lejano 1994 hasta aproximadamente el 2009 los test realizados a los usuarios arrojaban como resultado que la experiencia era igual de mala.

Apartir más o menos de esa fecha en adelante empezó ese Boom  que continua hasta ahora.

En el 2009 solo el 59% de las operaciones en Internet de los dispositivos móviles se realizaban con éxito por el 90% de los ordenadores convencionales , esto ha cambiado radicalmente en 2 años ya que ahora la gran mayoría de las páginas Web cuentan con una interfaz especial o amigable para el uso dispositivos móviles.

Los principales problemas que presentan son
Pantallas pequeñas : Lo que implica ver menos opciones , y más pequeñas las imágenes.

Entrada de datos incomoda: Anteriormente que los touch se comercializaran masivamente , el desplazamiento y el teclear datos era difícil ya que todo era por medio de botones y la gente estaba tan acostumbrada a el ratón.

Descargas lentas: Este era otro problema que hoy en día sigue presentándose aunque en menor cantidad , ya que mucha gente compraba el navegar y saltar de pagina como lo era navegar con un módem telefónico antiguo.

Sitios web mal diseñados : Anteriormente eran una minoría las páginas web que se diseñan pensando en las necesidades funcionales de este tipo de usuarios , cosa que está casi cambiado en estos momentos.

Otros 2 motivos que no necesariamente están enfocados hacia el aparato pero si a su uso , son el coste del acceso a Internet , que hoy en día es un poco menos impedimento con los planes y servicios más novedosos que están promocionando actualmente las compañías.

Si el teléfono es bueno es mejor la experiencia.



Esto esta mas que comprobado ya que existen generalmente 3 tipos de experiencia de usuarios con los móviles , los teléfonos normales , los inteligentes y los que cuentan con pantalla táctil .

Los primeros cuentan por lo común con una pequeña pantalla y teclado numérico  y representan cerca del 50% del mercado y se encontró que la satisfacción de el usuario en el uso de Internet es aproximadamente del 38%.

En los inteligentes tienen una pantalla media y un teclado alfanumérico completo y el número de usuarios satisfechos con el uso de Internet está entre el 55% por el 85% de los usuarios que utilizan algún móvil con pantalla táctil. 

Entonces poco a poco ha ido subiendo la calidad de este servicio que durante muchos años se mantuvo como un servicio extra, más que ahora viene siendo considerado un servicio de primera prioridad inclusive de mayor uso ahora que los mensajes ordinarios, y los usuarios ya no están conformes solo con que la web se vea en el móvil sino que les deje una grata experiencia.

La mala usabilidad en Nokia N97

Para el diseño y la creación de algun dispositivo movil actual se tiene que hacer un estudio sobre muchas cosas una de ellas es la usabilidad , aqui hablare especificamente de un smartphone de Nokia , y otro de sus grandes fallos actuales que lo han llevado de ser una potencia en la industria hasta una gran preocupación por la quiebra  en un futuro no muy lejano.



Bueno el Nokia N97 prometia innovacion gracias a su diseño novedoso , una gran usabilidad y pues con el respaldo de una gran marca como Nokia todo parecia perfecto. Sin embargo lejos de esto el Nokia N97 encontro muchos obstáculos que le sirvieron a Nokia de leccion. 



Esto se vio reflejado en el Symbian, una plataforma que ha sido adaptada para su uso con pantallas touchscreen pero que no muestra un concepto de usabilidad acorde con la nueva forma de ingreso de datos.


Aunque Nokia intentó corregir esto con el Nokia N97 mini, poco pudo hacer, y llegó la hora de admitirlo. De todos modos, Nokia promete que aprendió la lección y corregirá estas falencias cuando lance teléfonos celulares con Symbian^3 - o Symbian^4 directamente - las próximas generaciones de la plataforma Symbian completamente rediseñadas desde abajo teniendo en cuenta la tecnología de los celulares de hoy.

En lo personal creo que Nokia esta siguiendo y arrastrando un error desde hace ya tiempo , su SO , no se que es lo que los empuja a rediseñar y rediseñar Symbian , creo que con el dinero que cuentan seria algo mas innovador la creación de un SO competitivo con los que actualmente tienen la guerra comercial casi en sus manos como lo es iOS y Android.


Aplicaciones gratuitas en los celulares gastan más batería


Este es un tema un tanto importante ya que muchos se preguntan el porque la bateria se consume rapidamente , existen muchas cosas que influyen como el tiempo de uso , si se encuentra dañada etc , pero un estudio reciente de la Universidad de Purdue y de Microsoft llegaron a la conclusion de que las aplicaciones gratuitas gastan mas baterias en los moviles que las que son de pago.
El motivo muy sencillo, la aplicacion busca la localizacion de su propietario para encajarle publicidad adecuada a su lugar geografico y a su perfil consumista.
Los investigadores analizaron con la herramienta Eprof , seis de las diez aplicaciones mas descargadas estas son Angry birds y Free Chess , Facebook , la del NYT , CNN , y la de los mapas de Mapquest , y observaron su funconamiento tanto en moviles android como en los Windows Mobile.
Una de sus conclusiones es que entre el 65% y el 75% de la energía de estas aplicaciones se pierde en módulos publicitarios, pero también descubrió una ineficiencia energética en el diseño de las aplicaciones y propone un cambio de rutinas en la presentación de las mismas, con las que se ahorraría entre el 20% y el 65% de energía.
En 2015 el mercado de las aplicaciones le supondrá a la industria unos ingresos de $35,000 millones de dolares, dicen los científicos en la presentación de su trabajo. Un crecimiento paralelo a la popularidad de los smartphones, pero cuanto más necesario es el móvil, cuantas más funciones adopta, menos dura su batería, con lo cual es un problema que cada vez  preocupa más al consumidor.
Estos investigadores se propusieron rastrear el gasto de energía en el desarrollo de la aplicación y su posterior uso en los móviles. Así descubrieron que la espera de la descarga total de una búsqueda gasta del 10% al 50% de la energía total, el rastreo de los datos del usuario (localización, número de teléfono) del 20% al 30%. La función de la aplicación en sí solo gasta entre el 10% y el 30% de la energía. Por ejemplo, en el caso de Angry Birds, jugar solo consume el 20% de la aplicación.
La mayoría de las aplicaciones analizadas al abrirse se conectan con unos 35 enlaces, que pueden ser desde los de localización —que implica poner en marcha el GPS, que consume el 15% de la energía— a terceros actores, como Flurry, dedicado a la minería de datos, o el interfaz Khronos que colorea la pantalla para los juegos y consume el 9%. En el caso de Free Chess,  durante los 33 segundos que tarde en abrirse completamente se conecta a 37 otros recursos, el principal AdThread que alimenta de publicidad a la carta, según el perfil del usuario. 
Entonces ya saben otra razón mas del porque la batería dura poco así que si quieren que les rinda mucho mas deberían comprar las aplicaciones para evitar la publicidad aunque esto obviamente conlleva a el gasto de dinero así que sale quizás una cosa por otra.

lunes, 16 de abril de 2012

Entrega del PIC

Presentación Pic

CÓDIGO

Este es el código creado para que muestre en pantalla lo tecleado.





Algunas librerías utilizadas


Las librerías no se deberán grabar en el PIC sino que estas debes de tenerlas guardadas en tu carpeta y el código escrito en ensamblador .asm las llamara y las utilizara , esto facilita mucho y es mucho mas eficiente ya que si no todo ese codigo debería estar dentro del .asm haciéndolo muy pesado.