martes, 25 de marzo de 2014

                           Estructura de una aplicación androide.
 
Esta vez de vamos a echar un vistazo a la estructura de una aplicación Android, ya que es importante saber que es cada elemento antes de ponerse a programar.
Para empezar, necesitaremos tener configurado Eclipse tal y como explicaba en mi anterior post de Introducción a android una vez que tengamos Eclipse y la SDK de Android configurados, es el momento de crear un proyecto Android.
En Eclipse:
File->New..-> Android Project
En caso que no encontremos esa opción en la lista de proyectos, debemos de irnos a “Other…” y seleccionar “Android” a partir de ahí, tal y como se muestra en la figura.
Imagen de selector de proyectos Android en Eclipse
A continuación nos aparecerá una pantalla, en la que tenemos que introducir información sobre nuestro proyecto tales como el nombre del proyecto, el paquete que alojará las clases principales, el nombre de la clase principal (Activity name) y el nombre de la Aplicación que aparecerá en el emulador/dispositivo Android.
Imagen de ventana creación de proyecto Android
Acaba de aparecer un término nuevo, para aquellos que estén acostumbrados a trabajar en Java: Activity. Más adelante haré un detallado glosario de los términos que usa Android. Por ahora, con que tengamos en cuenta que una Activity es un elemento sobre el que se construye la aplicación y que tiene un ciclo de vida bastante complejo. Estas Activities son pantallas de la aplicación, en las que podemos cargar elementos de la interfaz de usuario y capturar eventos. También son los puntos entrantes de la aplicación y puede haber más de una Activity por proyecto.
Pongamos un ejemplo para que se vea más claro.
Supongamos que tenemos una aplicación de gestión de emails. Esta aplicación, tendrá 2 pantallas, una en la que podremos ver nuestros correos entrantes, y otra en la que podremos escribir nuestro correo para enviarlo. Cada una de estas pantallas es una Activity ya que tiene funcionalidades diferentes.
Bueno, espero que haya quedado un poco más claro, de todas formas, estos términos irán apareciendo en los próximos tutoriales, así que ya os iréis acostumbrando a escucharlos y manejarlos.
Continuemos por donde lo habíamos dejado: Acabamos de crear un proyecto Android, veamos que es lo que ha creado Eclipse.
Imagen de Estructura de Proyecto Android
En la imagen he desplegado las carpetas para que podamos ver su contenido de un solo golpe de vista.
En la carpeta src podemos encontrar el código fuente de la aplicación. El sistema de paquetes es igual que el de java, se suele crear paquetes que alberguen clases con una misma funcionalidad, así el código es más legible. Ahora mismo tenemos las clases que ha creado Eclipse por defecto: deMalagana.java que es la clase principal y Activity de la aplicación, y la clase R.java.
La clase R.java es muy peculiar, ya que nosotros no podemos modificarla manualmente, de hecho, se genera automaticamente cada vez que modificamos los ficheros de recursos. Esta clase se podría considerar el nexo de unión entre los recursos y el XML y las clases puramente Java. Ya veremos más adelante este tema.
Si seguimos mirando la estructura, nos encontraremos con las librerías Android (android.jar), que nos dan toda la funcionalidad del sistema. Estas librerías dependen del SDK con el que estemos trabajando. Intentad siempre estar actualizados en este tema, para ello visitad regularmente la página de desarrolladores Android:
Continuemos con los elementos del proyecto de Android.
Nos encontramos ahora con la carpeta res, esta carpeta almacena, mediante un sistema de subcarpetas, los recursos de la aplicación, desde imágenes hasta los elementos .xml que compondrán el Interfaz de Usuario y la funcionalidad del mismo.
Ahora mismo tenemos solo tres subcarpetas:
drawable-> Aquí se almacenan todos los ficheros de imágenes.
layout-> En esta carpeta se guardan los ficheros .xml que compondrán el interfaz de usuario
values->Esta es una carpeta-un-poco-de-todo. Ahora mismo tenemos un fichero string.xml en el cual almacenamos todas las cadenas de texto que aparecerán en la aplicación, pero también podremos tener valores de atributos de los elementos de aplicación o los estilos de estos mismos elementos.
Para terminar, tenemos el fichero AndroidManifest.xml indispensable en toda aplicación Android. En este fichero se almacenan los parámetros de configuración de la aplicación, desde los privilegios que le podemos asignar, hasta cual es la Activity principal.
Documentación y ApiDemos       
 
                                                      Donde encontrar documentación

Puedes encontrarl una completa documentación del SDK localmente en:
…\adt-bundle-windows-…\sdk\docs\index.html
 
Se incluye la descripción de todas las clases (Develop > Reference), conceptos clave y otro tipo de recursos. Esta documentación también está disponible en línea a través de Internet:
 
Muchos de los recursos utilizados en este libro puedes encontrarlos en:
Para resolver dudas puntuales sobre programación te recomendamos la Web de preguntas y respuestas:

La aplicación ApiDemos

Otra opción muy interesante para aprender nuevos aspectos de programación consiste en estudiar ejemplos. Con este propósito se ha incluido en el SDK de Android una aplicación, ApiDemos. Está formada por cientos de ejemplos, donde no solo podrás ver las funcionalidades disponibles en el API de Android, sino que además podrás estudiar su código.
Para crear un proyecto con esta aplicación sigue los siguientes pasos: Selecciona File > New > Project… e indica Android Sample Project. Pulsa Next y aparecerá un cuadro de diálogo similar al siguiente:
 
Has de seleccionar un nivel de API para crear el proyecto. A continuación selecciona uno de los proyectos de ejemplo: en nuestro caso ApiDemos. Pulsa Finish para crear el proyecto. 
Si no ha habido ningún error ya puedes ejecutar ApiDemos. Verás como los diferentes ejemplos se organizan por carpetas. En el nivel superior tenemos:
Accessibility: Aspectos de accesibilidad, como trackball, touch o texto a voz.
Animation: Gran variedad de efectos y animaciones.
App: Trabajando a nivel de aplicación con Activity, Alarm, Dialog, Service, etc.
Content: Describe cómo leer datos desde ficheros, recursos y archivos XML.
Graphics: Gran cantidad de ejemplos gráficos tanto en 2D como en 3D.
Media: Reproducción de audio y vídeo con las clases MediaPlayer y VideoView.
NFC: Ejemplos de uso de Near Field Communication.
OS:   Servicios del sistema operativo. Incluye sensores, vibrador o envio de SMS.
Preference: Varios ejemplos de uso de preferencias.
Text: Diferentes ejemplos de manipulación y visualización de texto.
Views: Android utiliza como elemento básico de representación la clase View (vista). Tenemos a nuestra disposición gran cantidad de descendientes de esta clase para representar una interfaz gráfica (botones, cajas de texto, entradas...). Visualiza estos ejemplos para mostrar las diferentes posibilidades.
Una vez seleccionado un ejemplo, si quieres estudiar su código, búscalo en la carpeta src. Para organizar mejor el código se han creado diferentes espacios de nombre de paquetes.
 

NOTA: En algunas versiones del SDK, al compilar ApiDemos, aparecen errores de compilación. Para solucionarlo, puedes probar con otra versión de o intenta corregir los errores. 
NOTA: Si cuando ejecutas la aplicación no te deja y te indica el siguiente error:
      
Ocurre porque una aplicación con el mismo nombre de paquete (com.example.android.apis) ya existe y además ha detectado que la aplicación ha sido firmada con un certificado digital diferente al que estáis utilizando vosotros. Si hubiera sido creado por el mismo desarrollador reemplazaría la aplicación ya instalada por la que queremos instalar.
Se soluciona desinstalando antes la aplicación. Tienes dos opciones:
  • Como lo haces habitualmente en tu dispositivo: Ajustes/Aplicaciones/ ApiDemos/Desinstalar
  • Desde la línea de comando:
                 adb uninstall com.example.android.apis
NOTA: Este mismo problema también te ocurrirá cuando tengas instalado el entorno de desarrollo (Eclipse) en dos PC. Cada entorno de desarrollo tiene un certificado digital diferente. Cuando trates de instalar una aplicación en tu dispositivo físico, te aparecerá un error, si la aplicación ya ha sido instalada con el otro entorno.

Colores para utilizar en eclipse

EEEEEEDDDDDDCCCCCCBBBBBBAAAAAA999999
888888777777666666555555444444333333
222222111111000000FF0000EE0000DD0000
CC0000BB0000AA0000990000880000770000
660000550000440000330000220000110000
FFFFFFFFFFCCFFFF99FFFF66FFFF33FFFF00
CCFFFFCCFFCCCCFF99CCFF66CCFF33CCFF00
99FFFF99FFCC99FF9999FF6699FF3399FF00
66FFFF66FFCC66FF9966FF6666FF3366FF00
33FFFF33FFCC33FF9933FF6633FF3333FF00
00FFFF00FFCC00FF9900FF6600FF3300FF00
FFCCFFFFCCCCFFCC99FFCC66FFCC33FFCC00
CCCCFFCCCCCCCCCC99CCCC66CCCC33CCCC00
99CCFF99CCCC99CC9999CC6699CC3399CC00
66CCFF66CCCC66CC9966CC6666CC3366CC00
33CCFF33CCCC33CC9933CC6633CC3333CC00
00CCFF00CCCC33CC6633CC3300CC9900CC66
00CC3300CC00FF99FFFF99CCFF9999FF9966
FF9933FF9900CC99FFCC99CCCC9999CC9966
CC9933CC99009999FF9999CC999999999966
9999339999006699FF6699CC669999669966
6699336699003399FF3399CC339999339966
3399333399000099FF0099CC009999009966
009933009900FF66FFFF66CCFF6699FF6666
FF6633FF6600CC66FFCC66CCCC6699CC6666
CC6633CC66009966FF9966CC996699996666
9966339966006666FF6666CC666699666666
6666336666003366FF3366CC336699336666
3366333366000066FF0066CC006699006666
006633006600FF33FFFF33CCFF3399FF3366
FF3333FF3300CC33FFCC33CCCC3399CC3366
CC3333CC33009933FF9933CC993399993366
9933339933006633FF6633CC663399663366
6633336633003333FF3333CC333399333366
3333333333000033FFFF33330033CC003399
003366003333003300FF00FFFF00CCFF0099
FF0066FF0033FF0000CC00FFCC00CCCC0099
CC0066CC0033CC00009900FF9900CC990099
9900669900339900006600FF6600CC660099
6600666600336600003300FF3300CC330099
3300663300333300000000FF0000CC000099
00006600003300FF0000EE0000DD0000CC00
00BB0000AA00009900008800007700006600
0055000044000033000022000011000000FF
0000EE0000DD0000CC0000BB0000AA000099
000088000077000055000044000022000011

miércoles, 19 de marzo de 2014

           Como fue evolucionando android


 




            Las primeras versiones
 
 
Android 1.0 Nivel de API 1 (septiembre 2008)
Primera versión de Android. Nunca se utilizó comercialmente.
Android 1.1 Nivel de API 2 (febrero 2009)
 No se añadieron apenas funcionalidades simplemente se fijaron algunos errores de la versión anterior.

 

Android 1.5 Nivel de API 3 (abril 2009)



 
 
 
Es la primera versión con algún usuario. Como novedades, se incorpora la posibilidad de teclado en pantalla con predicción de texto.

 

Android 1.6 Nivel de API 4 (septiembre 2009)


 
Permite capacidades de búsqueda avanzada en todo el dispositivo. También se incorpora gestores y multi-touch. Permite la síntesis de texto a voz. 

 

Android 2.0 Nivel de API 5 (octubre 2009)

Esta versión de API apenas cuenta con usuarios, dado que la mayoría de fabricantes pasaron directamente de la versión 1.6 a la 2.1. Como novedades cabría destacar que incorpora un API para manejar el bluetooth 2.1.

Android 2.1 Nivel de API 7 (enero 2010)
Se considera una actualización menor, por lo que le siguieron llamando Éclair. Destacamos el reconocimiento de voz que permite introducir un campo de texto dictando sin necesidad de utilizar el teclado. También permite desarrollar fondos de pantalla animados.

 

Android 2.2 Nivel de API 8 (mayo 2010)
Como característica más destacada se puede indicar la mejora de velocidad de ejecución de las aplicaciones (ejecución del código de la CPU de 2 a 5 veces más rápido que en la versión 2.1 de acuerdo a varios benchmarks). Esto se consigue con la introducción de un nuevo compilador JIT de la máquina Dalvik.

Se añaden varias mejoras, Adobe Flash 10.1 y la incorporación del motor JavaScript V8 utilizado en Chrome.

 

Android 2.3 Nivel de API 9 (diciembre 2010)



 
Debido al éxito de Android en las nuevas tabletas ahora soporta mayores tamaños de pantalla y resoluciones (WXGA y superiores).
Incorpora un nuevo interfaz de usuario con un diseño actualizado.

 

Android 3.0 Nivel de API 11 (febrero 2011)


 
Para mejorar la experiencia de Android en las nuevas tabletas se lanza la versión 3.0 optimizada para dispositivos con pantallas grandes. La nueva interfaz de usuario ha sido completamente rediseñada con paradigmas nuevos para la interacción y navegación. Se mejora los gráficos 2D/3D gracias al renderizador OpenGL acelerado por hardware.

Android 3.1 Nivel de API 12 (mayo 2011)
Se permite manejar  dispositivos conectados por USB (tanto host como dispositivo). Protocolo de transferencia de fotos y vídeo (PTP/MTP) y de tiempo real (RTP).
Android 3.2 Nivel de API 13 (julio 2011)
Optimizaciones para distintos tipos de tableta. Zoom compatible para  aplicaciones de tamaño fijo. Sincronización multimedia desde SD.

 

Android 4.0 Nivel de API 14 (octubre 2011)

 
La característica más importante es que se unifican las dos versiones anteriores (2.x para teléfonos y 3.x para tabletas) en una sola compatible con cualquier tipo de dispositivo.
Nuevo API de reconocedor facial.
Gestor de tráfico de datos por Internet.

Android 4.0.3 Nivel de API 15 (diciembre 2011)
Se introducen ligeras mejoras en algunas APIs  incluyendo el de redes sociales, calendario, revisor ortográfico, texto a voz y bases de datos entre otros. En marzo de 2012 aparece la actualización 4.0.4.

 

Android 4.1 Nivel de API 16 (julio 2012)


En esta versión se hace hincapié en mejorar un punto débil de Android: la fluidez del interfaz de usuario. Con este propósito se incorporan varias técnicas, como: sincronismo vertical, triple búfer y aumentar la velocidad del procesador al tocar la pantalla.

 
Android 4.2 Nivel de API 17 (noviembre 2012)
Una de las novedades más importantes es que podemos crear varias cuentas de usuario en el mismo dispositivo. Aunque, esta característica solo está disponible en tabletas. Cada cuenta tendrá sus propias aplicaciones y configuración.
Android 4.3 Nivel de API 18 (julio 2013)
Esta versión introduce mejoras en múltiples áreas. Entre ellas los perfiles restringidos (disponible sólo en tabletas) que permiten controlar los derechos de los usuarios para ejecutar aplicaciones específicas y para tener acceso a datos específicos.

 

Android 4.4 Nivel de API 19 (octubre 2013)




Un objetivo principal de la versión 4.4 es hacer Android disponible en una gama aún más amplia de dispositivos, incluyendo aquellos con tamaños de memoria RAM de sólo 512 MB ​​.