martes, 7 de junio de 2016

Reporte del Programa #11


Empezamos a hacer el diseño, primero... de "Form Widgets" arrastramos hacia la hoja de diseño 2 "Medium Text"; a uno le escribí "primer numero" y al otro "segundo numero", después... de "Text Fields" arrastramos la etiqueta "abc", luego arrastramos un boton de "Form Widgets" y editamos el texto como Calcular, por ultimo arrastramos un "Text View" de "Form Widgets".
Lo siguiente era cambiarle las propiedades al "text View", haciéndolo en las propiedades que se encuentran en la parte inferior derecha o solo con darle clic derecho y buscarlas, las propiedades quedarian asi:
 id  @+id/res  => Yes => OK
Hint RESULTADO
On Click suma

Finalmente nos fuimos a la pestaña "MainActivity" y escribimos un código debajo del que estaba.

Reporte del Programa #10

Dentro de eclipse me fui al menú => File => New => Android Application Project, despues escribi el nombre de la aplicación, cumpliendo con las reglas: que la primer letra de cada palabra este en mayúscula y sin espacio en blanco, luego le di clic varias veces en "Next" y un clic en Finish. Después se observo el area de trabajo, para empezar, borre todo el código que se encuentra en la pestaña "activity_main.xml" que esta en la parte inferior, con esto elimino el RelativeLayout que se encuentra automáticamente, para yo agregar uno me voy a "GraphicalLayout" => Layouts y elegí el LinearLayout (Vertical) arrastrándolo hacia la parte gris y después se observo la hoja de diseño, luego arrastre etiquetas que se encuentran en "Form Widgets" y en "Text Fields". De "Form Widgets" arrastre la etiqueta Medium hacia la hoja de diseño y le di clic derecho y seleccione Edit Text y en el cuadro de dialogo que se lanzo escribi codigo y le di clic en OK, y asi sucesivamente para los demas escritos. Para los renglones simplemente en Text Fields arrastre la etiqueta abc hacia la hoja de diseño. Para los botones, primero clic en Form Widgets y arratre Button y le di clic derecho => Edit Text y escribi lo correspondiente y asi lo mismo para los demas botones.

Reporte del Programa #9

Dentro de eclipse me fui al menú => File => New => Android Application Project, despues escribi el nombre de la aplicación, cumpliendo con las reglas: que la primer letra de cada palabra este en mayúscula y sin espacio en blanco, luego le di clic varias veces en "Next" y un clic en Finish. Después se observo el area de trabajo, para empezar, borre todo el código que se encuentra en la pestaña "activity_main.xml" que esta en la parte inferior, con esto elimino el RelativeLayout que se encuentra automáticamente, para yo agregar uno me voy a "GraphicalLayout" => Layouts y elegí el LinearLayout (Vertical) arrastrándolo hacia la parte gris y después se observo la hoja de diseño, luego arrastre etiquetas que se encuentran en "Form Widgets" y en "Text Fields". De "Form Widgets" arrastre la etiqueta Medium hacia la hoja de diseño y le di clic derecho y seleccione Edit Text y en el cuadro de dialogo que se lanzo escribi codigo y le di clic en OK, y asi sucesivamente para los demas escritos. Para los renglones simplemente en Text Fields arrastre la etiqueta abc hacia la hoja de diseño. Para los botones, primero clic en Form Widgets y arratre Button y le di clic derecho => Edit Text y escribi lo correspondiente y asi lo mismo para los demas botones.

Reporte del Programa #8

Dentro de eclipse me fui al menú => File => New => Android Application Project, despues escribi el nombre de la aplicación, cumpliendo con las reglas: que la primer letra de cada palabra este en mayúscula y sin espacio en blanco, luego le di clic varias veces en "Next" y un clic en Finish. Después se observo el area de trabajo, para empezar, borre todo el código que se encuentra en la pestaña "activity_main.xml" que esta en la parte inferior, con esto elimino el RelativeLayout que se encuentra automáticamente, para yo agregar uno me voy a "GraphicalLayout" => Layouts y elegí el LinearLayout (Vertical) arrastrándolo hacia la parte gris y después se observo la hoja de diseño, luego arrastre etiquetas que se encuentran en "Form Widgets" y en "Text Fields".

Reporte del Programa #7

Dentro de eclipse me fui al menú => File => New => Android Application Project, después escribí el nombre de la aplicación, cumpliendo con las reglas: que la primer letra de cada palabra este en mayúscula y sin espacio en blanco, luego le di clic varias veces en "Next" y un clic en Finish. Después se observo el area de trabajo, para empezar, borre todo el código que se encuentra en la pestaña "activity_main.xml" que esta en la parte inferior, con esto elimino el RelativeLayout que se encuentra automáticamente, para yo agregar uno me voy a "GraphicalLayout" => Layouts y elegí el LinearLayout (Vertical) arrastrándolo hacia la parte gris y después se observo la hoja de diseño, luego arrastre etiquetas que se encuentran en "Form Widgets" y en "Text Fields"

Reporte del Programa #6

Al estar dentro de eclipse, me fui al menú y seleccione "File" => "New" => "Android Application Project" y le di nombre a la aplicacion, le di clic en "Next" muchas veces y en "Finish". Habia cuatro pestañas llamadas "activity_main.xml", "MainActivity.java", "Graphical Layout" y "activity_main.xml", lo que hice fue que en "activity_main.xml" que se encuentra en la parte inferior, le di clic y borre el código y me fui a "Graphical Layout" y desaparecio la hoja en blanco dejando el espacio en color gris, agregue un layout que dice LinearLayout (Vertical) hacia la parte gris que se apreciaba. Después arrastre etiquetas hacia la hoja en blanco y también etiquetas especiales para fecha y hora desde "Text Fields".

Reporte del Programa #5

Al darle clic a eclipse, se abrió una pequeña ventana en la cual seleccione Browse para buscar mi carpeta, que es en donde se guardara todo lo que hiciera. Al estar dentro me fui al menú, File => New => Android Application Project y despues le puse un nombre a la aplicacion, seleccione en "Next" por varias veces y finalmente en "Finish". Despues de esto se observaron cuatro pestañitas, dos en la parte superior y dos en la inferior.

Las de la superior son:
* Activity_main.xml:  que es en donde se encuentra el diseño.
* MainActivity.java: que es donde hay un codigo.

Las de la inferior son:
* Graphical Layout: donde se encuentra el diseño.
* Activity_main.xml: se presenta el código del formulario.

Lo que procede es borrar el código de la pestaña "Activity_main.xml" que esta en la parte inferior, enseguida me voy a "Graphical Layout", le di clic en Layouts y seleccione "Linearalayout (Vertical)" y lo arrastre hacia la parte gris que se observaba y automaticamente se agrega una hojita con el formato de este layout, finalmente arrastre etiquetas desde "Form Widgets" y "Text Fields".



Reporte del Programa #4 (Layout horizontal)

Una vez que estuve en eclipse, en el menú seleccione File => New => Android Application Project y después en el cuadro de dialogo escribí el nombre de la aplicación, luego le di clic a "Next" hasta que el botón "Finish" estuviera disponible para seleccionarlo. Después se prosiguió al diseño, empezando primero a borrar el código que se encontraba en la pestaña "activity_main.xml", lo siguiente era arrastrar el "LineraLayout (Horizontal)" que se encuentra en la pestaña "Graphical Layout" => Layouts. Y lo arrastre hacia la hoja de diseño, automáticamente daría efecto su propio formato. Ahora se arrastrarían las etiquetas desde dos sitios, llamados: "Form Widgets" y "Text Fields".

Reporte del Programa #3 (Layout Vertical)

En eclipse, en el menú seleccione File => New => Android Application Project, automáticamente se lanza un cuadro de dialogo en el cual le di un nombre a la aplicación, una vez hecho esto le di clic en "Next" mas de una vez hasta que se iluminara el botón Finish, dándole clic a este. Después me voy a la pestaña que que esta en la parte supérior la cual dice "activity_main.xml" después seleccione nuevamente esta pestaña pero ahora la que se encuentra en la parte inferior, lo que se observo fue un codigo y este lo borre, en instantes seleccione la pestaña "Graphical Layout", que es donde esta el diseño, y solamente se observa que se puso color gris en donde se encuentra el diseño. Esto se trataba de usar Layouts, el cual nos sirve para dar formato al diseño, entonces seleccione en "Layouts", y arrastre el que dice "LinearLayout (Vertical)" hacia la parte gris que se observaba y lo que hace es que apareciera una hoja de diseño, lo que prosigue fue  arrastrar etiquetas hacia la hoja de diseño desde Form Widgets y Text Fields.

Reporte del Programa #2

Después de que entramos a eclipse, me fui a File => New => Android Application Proyect y escribi el nombre de la aplicacion, le di clic en Next varias veces y finalmente en Finish.
Lo que hicimos fue arrastrar una etiqueta llamada Large Med. desde Text Fields hasta la hoja de diseño y escribir Hola Mundo en text, que este se encuentra en las propiedades.

Reporte del Programa #1

Al estar dentro de Eclipse, me fui al menú y seleccione File => New => Android Aplication Project y en el cuadro de dialogo escribí Programa1, despues le estuve dando clic en Next varias veces hasta llegar a Finish. Despues se observaron dos pestañas, en una decia "activity_main.xml" que es en donde viene el diseño y en la otra "Activitymain.java" que es en donde viene el código. En la parte que trabajamos fue en la del diseño, lo que hicimos fue arrastrar objetos a la hoja en blanco desde solamente de dos sitios que se llaman: Form Widgets, y Text Fields.

CONFIGURAR LA MAQUINA VIRTUAL

  Clic en el icono “Android Virtual Device Manager”



   Clic en New



En el siguiente cuadro de dialogo; en “AVD Name” escribir el nombre para identificar el Plugin. En Device se selecciono “2.7” QUGA (240x320:ldpi), es una resolución bastante baja pero es la mínima para todos los dispositivos Android y se utilizara así para que la mayoría de las aplicaciones corran mucho mas rápido en la computadora. En target seleccionamos “Android 2.2 – Apl Level 8”. En “Keyboard” y en “Skin”, dejamos las palomitas ahí. En “Front Camera”no se puede hacer nada. En “Back Camera” y “Memory Options” las dejamos así. En “Internal Storage”, que es el almacenamiento interno, se puede cambiar el valor, el cual se puso 650. En “SD Card”, es opcional. En “Emulation Option”, palomear en el cuadrito de “Snapshot”. Y por ultimo le damos clic en “OK”



    Ya se tiene lista la maquina virtual, así que se la da clic en “Start”



Se abrira la máquina virtual.










LAYOUTS

Si queremos combinar varios elementos de tipo vista tendremos que utilizar un objeto de tipo Layout. Un Layoutes un contenedor de una o más vistas y controla su comportamiento y posición. Hay que destacar que un Layoutpuede contener a otro Layout y que es un descendiente de la clase View.
 La siguiente lista describe los Layout más utilizados en Android:
LinearLayout: Dispone los elementos en una fila o en una columna.
TableLayout: Distribuye los elementos de forma tabular.
RelativeLayout: Dispone los elementos en relación a otro o al padre.
AbsoluteLayout: Posiciona los elementos de forma absoluta.
FrameLayout: Permite el cambio dinámico de los elementos que contiene.

LinearLayout es uno de los Layout más utilizado en la práctica. Distribuye los elementos uno detrás de otro, bien de forma horizontal o vertical.

Utiliza un LinearLayout horizontal que contenga en su interior otros LinearLayout para realizar un diseño similar al siguiente:

TableLayout distribuye los elementos de forma tabular. Se utiliza la etiqueta <TableRow> cada vez que queremos insertar una nueva línea. Utiliza un TableLayout para realizar un diseño similar al siguiente:


RelativeLayout permite comenzar a situar los elementos en cualquiera de los cuatro lados del contenedor e ir añadiendo nuevos elementos pegados a estos. Utiliza un RelativeLayout para realizar un diseño similar al siguiente:


También podemos utilizar otras clases de Layouts, que son descritas a continuación:
ScrollView: Visualiza una columna de elementos; cuando estos no caben en pantalla se permite un deslizamiento vertical.
HorizontalScrollView: Visualiza una fila de elementos; cuando estos no caben en pantalla se permite un deslizamiento horizontal.

TabHost: Proporciona una lista de ventanas seleccionables por medio de etiquetas que pueden ser pulsadas por el usuario para seleccionar la ventana que desea visualizar. Se estudia al final del capítulo.

ListView: Visualiza una lista deslizable verticalmente de varios elementos. Su utilización es algo compleja. Se verá un ejemplo en el capítulo siguiente.


GridView: Visualiza una cuadrícula deslizable de varias filas y varias columnas.

ViewFlipper: Permite visualizar una lista de elementos de forma que se visualice uno cada vez. Puede ser utilizado para intercambiar los elementos cada cierto intervalo de tiempo.












ESTRUCTURA DE UN PROYECTO ANDROID

Carpeta /src/
Esta carpeta contendrá todo el código fuente de la aplicación, clases auxiliares, etc. Inicialmente, Android Studio creará por nosotros el código básico de la pantalla (actividad o activity) principal de la aplicación, que recordemos que en nuestro caso era MainActivity, y siempre bajo la estructura del paquete java definido durante la creación del proyecto.

Carpeta /res/
Contiene todos los ficheros de recursos necesarios para el proyecto: imágenes, layouts, cadenas de texto, etc. Los diferentes tipos de recursos se pueden distribuir entre las siguientes subcarpetas:
     /res/drawable/
    Contiene las imágenes y otros elementos gráficos usados por la aplicación.           Para poder definir diferentes recursos dependiendo de la resolución y                   densidad de la pantalla del dispositivo se suele dividir en varias                             subcarpetas:
/drawable (recursos independientes de la densidad)
/drawable-ldpi (densidad baja)
/drawable-mdpi (densidad media)
/drawable-hdpi (densidad alta)
/drawable-xhdpi (densidad muy alta)
/drawable-xxhdpi (densidad muy muy alta)
     /res/layout/
    Contiene los ficheros de definición XML de las diferentes pantallas de la               interfaz gráfica. Para definir distintos layouts dependiendo de la orientación del     dispositivo se puede dividir también en subcarpetas:
/layout (vertical)
/layout-land  (horizontal)
     /res/anim/
     /res/animator/
    Contienen la definición de las animaciones utilizadas por la aplicación.
     /res/color/
    Contiene ficheros XML de definición de listas de colores según estado.
     /res/menu/
    Contiene la definición XML de los menús de la aplicación.
     /res/xml/
     Contiene otros ficheros XML de datos utilizados por la aplicación.
     /res/raw/
     Contiene recursos adicionales, normalmente en formato distinto a XML, que          no se incluyan en el resto de carpetas de recursos.
     /res/values/
    Contiene otros ficheros XML de recursos de la aplicación, como por ejemplo         cadenas de texto (strings.xml), estilos (styles.xml), colores (colors.xml), arrays     de valores (arrays.xml), tamaños (dimens.xml), etc.
Fichero /app/src/main/AndroidManifest.xml
Contiene la definición en XML de muchos de los aspectos principales de la aplicación, como por ejemplo su identificación (nombre, icono, …), sus componentes (pantallas, servicios, …),  o los permisos necesarios para su ejecución. Veremos más adelante más detalles de este fichero.
Fichero /app/build.gradle
Contiene información necesaria para la compilación del proyecto, por ejemplo la versión del SDK de Android utilizada para compilar, la mínima versión de Android que soportará la aplicación, referencias a las librerías externas utilizadas, etc. Más adelante veremos también más detalles de este fichero.
En un proyecto pueden existir varios ficheros build.gradle, para definir determinados parámetros a distintos niveles. Por ejemplo, en nuestro proyecto podemos ver que existe un fichero build.gradle a nivel de proyecto, y otro a nivel de módulo dentro de la carpeta /app. El primero de ellos definirá parámetros globales a todos los módulos del proyecto, y el segundo sólo tendrá efecto para cada módulo en particular.
Carpeta /app/libs
Puede contener las librerías java externas (ficheros .jar) que utilice nuestra aplicación. Normalmente no incluiremos directamente aquí ninguna librería, sino que haremos referencia a ellas en el fichero build.gradle descrito en el punto anterior, de forma que entren en el proceso de compilación de nuestra aplicación. Veremos algún ejemplo más adelante.
Carpeta /app/build/
Contiene una serie de elementos de código generados automáticamente al compilar el proyecto. Cada vez que compilamos nuestro proyecto, la maquinaria de compilación de Android genera por nosotros una serie de ficheros fuente java dirigidos, entre otras muchas cosas, al control de los recursos de la aplicación. Importante: dado que estos ficheros se generan automáticamente tras cada compilación del proyecto es importante que no se modifiquen manualmente bajo ninguna circunstancia.

LA PRIMERA APLICACION DE ANDROID EN ECLIPSE

Accedemos al menú superior de Eclipse, en File => New => Android Application Proyect
En la siguiente ventana escribimos el nombre de la aplicación: “PrimerHolaMundo”

En Project Name y en Package Name no modificarlos, porque solitos se iran escribiendo de acuerdo al nombre de la aplicación.

En los siguientes apartados indicamos la versión mínima del SDK con la que debería funcionar nuestra aplicación, y también la versión idónea del programa

 Pulsamos siguiente y aparecerá otra ventana donde se pueden configurar diferentes aspectos del proyecto
Seleccionamos como en la siguiente ventana:



Clic en Next
La siguiente pantalla no la modificamos,


 por tanto,  pulsamos de nuevo next.

En esta ventana elegimos el nombre de la actividad principal, en esta ocasión la dejamos como está


Le damos “Next”
En la siguiente ventana no modificamos y le damos clic en “Finish”
Después para escribir nuestro propio texto damos doble clic donde lo muestra la siguiente imagen

Luego borramos lo que esta subrayado


Y escribimos “Hola Mundo…!!!”

Después guardamos



Nos vamos al Proyecto => Run As =>2 Android Application


Y nos lanza la siguiente ventana







PASOS PARA INSTALAR ECLIPSE CON EL PLUGIN DE ANDROID

1.- DESCARGAR E INSTALAR JDK
   - Entramos a la pagina dando clic al link www.oracle.com/index.html
   - Nos vamos a la sección de descargas "DOWNLOADS" dandole clic.
   - Nos vamos a la pestaña de descargas mas populares y descargamos Java.
   - Vamos a descargar la version Standar Edition "Java SE".
   - Damos clic en la plataforma de Java la version 7, actualizacion 17 (7u17).
   - Tenemos la lista de las distintas versiones, de las versiones que podemos descargar para nuestra computadora dependiendo la plataforma.
   - Aceptamos las condiciones de uso.
   - Se da clic al link, y se espera hasta que se descargue.
   - Una vez descargado, lo abrimos y se procede a la instalación .
   - Cuando lo abrimos aparece una ventana y daremos Next, Next, Next, Close. (Y ya se tiene instalado el JDK en la computadora).

2.- DESCARGAR E INSTALAR SDK
   - Se accede a la siguiente pagina www.android.com
   - Clic en "Developers".
   - Clic en "Get the SDK".
   - Clic en "USE AN EXISTING IDE".
   - Clic en "Download the SDK Tools for Windows".
   - Clic en el cuadrito que esta a lado de donde dice "I have read and agree with the above terms and        conditions".
   - Clic en  "Download the SDK Tools for Windows".
   - Cuando ya se haya terminado de descargar, abrimos el archivo y le damos clic en: Next, Next,            Next, Next, despues copiamos la ruta para guardarla, porque es indispensable, la guardamos en un      archivo de texto, y esto se hace porque mas adelante se ocupará.
   - Clic en "Next", "Install", "Next", "Finish".
 
3.- CONFIGURANDO SDK
   - Automaticamente despues de instalar se ejecuta el administrador del SDK
   - Clic en Android 4.2.2 (Api 17), se da clic  en el triangulito celeste y de la misma manera en Tools.
   - Clic en el recuadro "Android 2.2 (API 8) y en el triangulito celeste"
   - Clic en el triangulito Extras
   - Clic en "Install 5 packages"
   - Clic en "Samples for SDK API 8, revision 1"
   - Aceptan la licencia
   - Clic en Install

4.- DESCARGAR ECLIPSE
   - Clic en www.eclipse.org
   - Clic en Downloads
   - Descargar la primera que nos aparece
   - Asegurarse de que en la pestaña diga la version que utilizamos, (la plataforma congruente)
   - Drscargar version de 32 bit "Windows 32 Bit"
   - Clic sobre el link [Brazil] Edugraf-INE-CTC-UFSC(http)
   - Aparece la pestaña "Información del Fichero de Descarga", clic en "Cancelar" y en la otra ventana también en "Cancelar".
   - Una vez descomprimido ya se tiene, la abrimos y buscamos el icono de eclipse, le damos clic.
   - Seleccionamos el Workspace, "OK".

5.- INSTALAR PLUGIN
   - Ir a menú  "Helo"
   - Clic en "Install New Software..."
   - Se abre un cuadro de dialogo, clic en "Add"
   - Escribimos un nombre intuitivo, (se coloco: PluginAndroid)
   - En localization se pone: https://dl-ssl.google.com/android/eclipse/
   - Clic en "OK", luego va a comenzar a buscar en los reporsitorios de Google
   - Clic en la palabra "Pending"
   - Clic en el triangulito de "Developer Tools"
   - Clic en el cuadrito solamente de "Developers Tools"
   - Clic en Next
   - Cuando ya se halla  terminado de buscar los reporsitorios, clic en "Next"
   - Aceptar los términos de la licencia
   - Clic en "Finish"
   - Se abre un cuadro de diálogo en el cual nos muestra el progreso de la instalación del plugin (esperar...), durante el proceso de instalación también nos manda unas advertencias por que estamos instalando un nuevo software, darle clic en "OK", para que proceda con una instalación, al mismo tiempo Windows nos manda una alerta de seguridad que permita el acceso a las redes, dar clic en "Allow access" (confío en este software)
   - Luego aparece una ventanita que dice que ya se hizo la autorización, pero que necesita reiniciar eclipse, clic en "Yes"
   - Clic en "Yes"
   - Y aparece un error, dice que no puede encontrar este directorio, así que falta otra paso para configurar el Plugin en eclipse, por lo tanto pasamos al paso número 6

6.- CONFIGURAR LAS PREFERENCIAS DE ECLIPSE
   - Clic en "Open Preferences"
   - Aparece un cuadro de diálogo y esta pidiendo la ruta aquella que se guardo cuando se instaló el SDK
   - Esa ruta ponerla donde dice  SDK Location
   - Clic en "OK"

7.- CONFIGURAR LA MAQUINA VIRTUAL
   - Clic en el icono "Android Virtual Device Manager"
   - Clic en "New"
   - Aparece un cuadro de diálogo y en AVD Name escribir el nombre para identificar el Plugin como "Android2.2"
   - Después clic en "v" a lado de Device para escoger el dispositivo que se va a utilizar, se selecciono "2.7" QUGA (240x320:ldpi)
   - En Target seleccionamos "Android 2.2- Apl Level 8", dejamos las siguientes dos palomitas así
   - En Internal Storage, poner "650"
   - En Emulation Options, palomear a Snapshot
   - Clic en "Ok"
   - En el cuadro de diálogo clic en "Android2.2" y luego en "Start..."
   - Y aparecerá una ventana la cual se llama "5554:Android2.2"

CARACTERISTICAS DE ANDROID

Android es un sistema operativo que desde el 2005 es propiedad de Google, esta basado en Linux, esta diseñado principalmente para dispositivos que tienen pantalla táctil, una característica es que es multitarea, es decir, la capacidad de desarrollar al mismo tiempo muchas tareas, por ejemplo, podemos tener abierto nuestro contacto, nuestro navegador, nuestro reproductor de musica y podemos acceder a ella en cualquier momento. Lo hace especial, ya que permite a los desarrolladores ejecutar la aplicación en Java. Otra caracteristica es que es multi-táctil, es decir, la capacidad de percibir mediante pequeños toques en la pantalla e interpretarlo como clic y touch, arrastrar o desplazar elementos.
Android también aplica soporte para bases de datos, lo hace a través de un sistema de gestión de base de datos llamado SQLite.

VERSIONES DEL SISTEMA OPERATIVO ANDROID


Version
Licencia
Caracteristicas
Android 1.0 Apple Pie
paga
Android Market Programa con un mercado para la descarga y actualización de aplicaciones.
Navegador Web para visualizar páginas webs en full HTML y XHTML – múltiples páginas mostradas como ventanas ("tarjetas").
Soporte Cámara – sin embargo esta versión carece de la opción de cambiar la resolución de la cámara, balance de blancos, calidad, etc.
Carpo de iconos de aplicaciones dentro de una simple carpeta en la pantalla de inicio.
Acceso a servidores de correo electrónico por web, soporte POP3, IMAP4 y SMTP.

Android 1.1 Banana Bread
gratuita
Detalles y reseñas disponibles cuando un usuario busca negocios en los mapas.
Pantalla en llamada más larga por defecto cuando están en uso el manos libres, además la habilidad de mostrar/esconder el marcador.
Posibilidad de guardar archivos adjuntos en los mensajes.
Añadido soporte para marquesina en diseños de sistemas.

Android 1.5 Cupcake
gratuita
Soporte para teclados virtuales de terceros con predicción de texto y diccionario de usuarios para palabras personalizadas.
Soporte para Widgets - vistas de miniaturas de las aplicaciones que pueden ser incrustadas en otras aplicaciones (tal como la pantalla inicio) y recibir actualizaciones periódicas.24
Grabación y rep en formatos MPEG-4 y 3GP.
Auto-sincronización y soporte para Bluetooth estéreo añadido (perfiles A2DP y AVRCP)
Características de Copiar y pegar agregadas al navegador web.

Android 1.6 Donut
gratuita
Mejora en la búsqueda por entrada de texto y voz para incluir historial de favoritos, contactos y la web.
Habilidad de los desarrolladores de incluir su contenido en los resultados de búsqueda.
Motor multi-lenguaje de Síntesis de habla para permitir a cualquier aplicación de Android "hablar" una cadena de texto.
Búsqueda facilitada y habilidad para ver capturas de las aplicaciones en el Android Market(Google Play).
Galería, cámara y videocámara con mejor integración, con rápido acceso a la cámara.

Android 2.0/2.1 Eclair
gratuita
Sincronización cuenta expandida, permitiendo a los usuarios agregar múltiples cuentas al dispositivo para sincronización de correo y contactos.
Soporte intercambio de correo, con bandeja combinada para buscar correo desde múltiples cuentas en la página.
Soporte Bluetooth 2.1.
Habilidad para tocar un foto de un contacto y seleccionar llamar, enviar SMS o correo a la persona.
Habilidad para en todos los mensajes SMS y MMS guardados, con eliminación de mensajes más antiguos en una conversación automáticamente cuando un límite definido se ha alcanzado.

Android 2.2.x Froyo
gratuita
Optimizaciones en velocidad, memoria y rendimiento
Mejoras adicionales de rendimiento de aplicación, implementadas mediante compilación Just-in-time (JIT)
Integración del motor de JavaScript V8 de Chrome en el navegador.
Soporte para el servicio Android Cloud to Device Messaging (C2DM), habilitando notificaciones push
Soporte para Microsoft Exchange mejorado, incluyendo políticas de seguridad, auto-descubrimiento, consulta a la Global Access List (GAL), sincronización de calendario, y borrado remoto.

Android 2.3.x Gingerbread
gratuita
Actualizado el diseño de la interfaz de usuario con incrementos en velocidad y simpleza.
Soporte para tamaños y resoluciones de pantalla extra-grandes (WXGA y mayores).38
Soporte nativo para SIP y telefonía por internet VoIP.
Entrada de texto del teclado virtual más rápida e intuitiva, con mejoras en precisión, texto sugerido y entrada por voz.
Mejoras en la funcionalidad de copiar/pegar, permitiendo a los usuarios seleccionar una palabra al presionar-mantener, copiar y pegar.

Android 3.x Honeycomb
gratuita
Soporte optimizado para tablets, con una nueva y "virtual" interfaz de usuario holográfica.
Agregada barra de sistema, con características de acceso rápido a notificaciones, estados y botones de navegación suavizados, disponible en la parte inferior de la pantalla.
Añadida barra de acción (Action Bar en inglés), entregando acceso a opciones contextuales, navegación, widgets u otros tipos de contenido en la parte superior de la pantalla.
Multitarea simplificada – tocando Aplicaciones recientes en la barra del sistema permite a los usuarios ver instantáneas de las tareas en curso y saltar rápidamente de una aplicación a otra.
Teclado rediseñado, permitiendo una escritura rápida, eficiente y acertada en pantallas de gran tamaño.

Android 4.0.x Ice Cream Sandwich
gratuita
Botones software(en pantalla) Android 3.x están ahora disponibles para usar en los teléfonos móviles.
Separación de widgets en una nueva pestaña, listados de forma similar a las aplicaciones.
Facilidad para crear carpetas, con estilo de arrastrar y soltar.
Lanzador personalizable.
Buzón de voz mejorado con la opción de acelerar o retrasar los mensajes del buzón de voz.

Android 4.3 Jelly Bean (Michel)
gratuita
Soporte para Bluetooth de baja energía para máximo 4 dispositivos
OpenGL ES 3.0
Modo de perfiles con acceso restringido
DRM APIs de mayor calidad
Mejora en la escritura

PASOS PARA INSTALAR ECLIPSE

Eclipse es un buen IDE por donde empezar, ya que Java lo maneja perfectamente. Hay a quien no le gusta que la gente sin conocimientos de programación empiece a aprender Java desde un IDE profesional, por la abrumadora cantidad de opciones disponibles y por la cantidad advertencias que suele generar. Personalmente, me parece la mejor manera de comenzar a programar, ya que puedes ver el resultado de manera sencilla, y familiarizarte con un entorno que es bastante completo ¡A jugar se aprende jugando!. Como veremos, lo que llamamos profesional no es para tanto, sin asustarnos, cualquiera puede si se pone y quiere.
Para quitar miedos, y cualquiera lo tendría al ver tal cantidad de posibilidades es acotar, y para eso estamos aquí, para ir de poco en poco y solo con aquello que sea propiamente necesario para lo que se tiene que saber.
Para descargar Eclipse pulsamos aquí.
¿Pero qué…? ¡Qué montón de Eclipses hay en la página Web oficial! ¿Cuál es el que necesito? ¡Locura! Tampoco es tanta locura, nosdescargamos el que se llama Standard, que para hacer todo lo que necesitamos nos sirve.
Descargar bien Eclipse - www.jarroba.com
La versión de 32 o 64 Bits la dejo a tú elección (debería de ser la misma que la del sistema operativo; si no sabes cual descargar, elige 32 Bits). Nos redirigirá a otra página para que elijamos un vínculo de descarga, elegimos alguno disponible.


Seguido esto debería empezar la descarga, sino pulsar en “click here” justo debajo del texto que dice “Thank you for downloading Eclipse” (y si te gusta Eclipse y quieres donar a la fundación Eclipse puedes donar en esta pantalla de agradecimiento, estaría bien :) )
Mientras se descarga os cuento un poco mi vida. Después de un motón de años programando con la versión de Eclipse Standard -antes llamado Classic- hoy día es el que sigo usando y el que más comunidad de usuarios tiene. Por lo que no te preocupes por los demás Eclipses existentes, que tienen características especiales que, al menos que nos especialicemos, no necesitaremos (además, en un futuro podrás descargar los plugins que necesites para este Eclipse y convertirlo en un entorno de trabajo todavía más poderoso). Esta versión de Eclipse tiene todo lo necesario para empezar a programar con comodidad y soltura.
Una vez que lo tenemos descargado, descomprimirlo es la forma de instalación. Con lo que hay que descomprimirlo por en algún sitio que no se vaya a mover hasta la desinstalación (para desinstalar vale con eliminar esta carpeta descomprimida) que esperemos que sea en un futuro lejano. Recomiendo descomprimir directamente en la unidad “C” o unidad principal que tengamos todo el Eclipse entero para que quede como en la siguiente imagen.




Bueno, ya está instalado. Vamos a crear un acceso directo al escritorio para poder acceder de una manera más cómoda. Para ello entramos en la carpeta recién descomprimida llamada “eclipse”  y buscamos el icono llamado también “eclipse” (el que es “eclipse.exe”, la extensión suele estar oculta). Con el botón derecho del ratón seleccionamos “Enviar a”, y luego “Escritorio (crear acceso directo)”.





Ya tendremos el acceso directo en el escritorio. Pero antes de ejecutar Eclipse una última cosa. En cualquier sitio, como por ejemplo al lado de donde hemos descomprimido Eclipse, creamos una carpeta que será nuestro espacio de trabajo en Eclipse (para ver como funcionan los espacios de trabajo puedes ver una descripción aquí). Para ello tan solo tenemos que crear una nueva carpeta llamada por ejemplo “Mi Espacio de Trabajo de Eclipse” -es un nombre largo sí, pero así queda claro que aquí se guardará nuestro espacio de trabajo al trabajar con Eclipse, lo explicaremos un poco más adelante.
Nota 1: Si no tenemos la máquina virtual de Java instalada tenemos que instalarla. Sino no podremos arrancar Eclipse. Si te ha aparecido alguna vez la taza de café del logotipo de Java junto al reloj de Windows es que está instalada. Si está instalada podemos omitir este cuadro.
Java es un lenguaje de programación orientado a objetos, que se ejecuta sobre una máquina virtual de Java. Así es posible que Java sea ejecutado en múltiples dispositivos, como ordenadores con múltiples sistemas operativos o móviles, entre otros muchos aparatos.
Para instalar la máquina virtual de Java solo tenemos que dirigirnos al siguiente vínculo aquí.



Pulsamos en “Descarga gratuita de Java” para que comience la instalación.
Cuando esté descargado, ejecutamos el archivo. En caso de que esté instalado nos avisará. Si no lo está, seguimos los pasos hasta que esté instalado.
Nota 2: Recomiendo instalar también encarecidamente el JDK. No es obligatorio, pero evitará quebraderos de cabeza futuros. En el resto de tutoriales se dará por instalado. Si lo tenemos instalado omitimos este cuadro.
El JDK de Java sirve para desarrollar Software Java y disponer de herramientas adicionales. JDK es un entorno de desarrollo para hacer aplicaciones, applets  y varios componentes utilizando Java.
Para descargarlo pulsamos aquí.
Aquí pulsamos en “Download” que está debajo de la palabra JDK.






Nos redirigirá a otra nueva ventana.
En esta pulsamos “Accept License Agreement” para que nos deje seleccionar la descarga.
Luego descargamos el de Windows el que corresponda para nuestro sistema. Si no sabemos cual de los dos, descargamos el que se llama “Windows x86”.





Cuando se descargue lo ejecutamos y seguimos el asistente hasta que esté instalado
Por fin podemos ejecutar por primera vez Eclipse. En el escritorio doble clic en el icono de Eclipse que hemos creado antes.
Nos aparecerá el logo de Eclipse y al poco se nos abrirá un cuadro para que seleccionemos el “Espacio de trabajo” que queramos. Como no tenemos ninguno, buscamos en “Browse…” la carpeta vacía que creamos antes llamada “Mi Espacio de Trabajo de Eclipse”. Eclipse se encargará de crear aquí nuestro espacio de trabajo, en esta carpeta estará todo el código que programemos en Eclipse. Si queremos transportar nuestro código, bastará con mover esta carpeta que llamamos “Mi Espacio de Trabajo de Eclipse” –se moverá nuestro espacio de trabajo, no el IDE, que en este caso es Eclipse.






Si al ejecutar Eclipse nos aparece una ventana de error que nos dice:
A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. No Java virtual machine was found after searching the following locations: C:Users…eclipsejrebinjavaw.exe javaw.exe in your current PATH
Para corregirlo hacemos lo siguiente. Cerramos la ventana de error. Vamos al buscador de nuestro sistema operativo:
En Windows 8: el buscador está  en la esquina superior derecha, seleccionamos la lupa
En Windows 7 o Vista: está en el botón de Inicio.
En XP no nos queda otra que ir al panel de control.
Buscamos “variables de entorno”. Pulsamos en el recuadro “Configuración”, y ahí elegimos “Editar las variables de entorno del sistema”. La siguiente imagen muestra como buscar esto en Windows 8:

Ahí se nos abrirá una ventana en el escritorio que se llama “Propiedades del sistema”, donde pulsaremos el botón “Variables de entorno…”. En la nueva ventana que se llama justo “Variables de entorno” pulsamos sobre el botón “Nueva…”. En el recuadro de “Nueva variable del sistema” introducimos lo siguiente:
Nombre de la variable: JAVA_HOME
Valor de la variable:  Ruta de donde está instalado el JDK de java, por defecto está en C:Program FilesJavajdk.


 En mi caso, que es la localización por defecto, el JDK está instalado en la siguiente carpeta, la cual copio la ruta y la pego en el campo “Valor de la variable:”.

CARACTERÍSTICAS, VENTAJAS Y DESVENTAJAS DE ENTORNOS DE TRABAJO PARA APLICACIONES MOVILES


Nombre: Eclipse

Caracteristicas:
Eclipse es un programa informático compuesto por un conjunto de herramientas de programación de código abierto multiplataforma para desarrollar lo que el proyecto llama "Aplicaciones de Cliente Enriquecido", opuesto a las aplicaciones "Cliente-liviano" basadas en navegadores. Esta plataforma, típicamente ha sido usada para desarrollar entornos de desarrollo integrados (del inglés IDE), como el IDE de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entrega como parte de Eclipse (y que son usados también para desarrollar el mismo Eclipse). Sin embargo, también se puede usar para otros tipos de aplicaciones cliente, como BitTorrent o Azureus.

Ventajas:
*Dispone de un editor de texto con resaltador de sintaxis.
*La compilación es en tiempo real
*Tiene pruebas unitarias con (JUnit).
*Control de versiones con (CVS).
*Integración con (Ant),
*Asistentes (wizards) para creación de proyectos
*Clases, test, etc...
*El entorno de desarrollo integrado (IDE) de Eclipse emplea módulos (en inglés plug-in) para proporcionar toda su funcionalidad al frente de la Plataforma de Cliente rico, a diferencia de otros entornos monolíticos donde las funcionalidades están todas incluidas, las necesite el usuario o no.
*Este mecanismo de módulos es una plataforma ligera para componentes de software. Adicionalmente a permitirle a Eclipse extenderse usando otros lenguajes de programación como son C/C++ y Python, permite a Eclipse trabajar con lenguajes para procesado de texto como LaTeX, aplicaciones en red como Telnet y Sistema de gestión de base de datos.

Desventajas:
*Su principalmente inconveniente, común a otros IDEs en mayor o menor medida, en el consumo de recursos del sistema.

*También que carece de mucho soporte para webapps (.war, jsp y servlets) tal y como lo hace netbeans. (los plugins por lo general no son ni tan potentes ni tan sencillos como el módulo que en Netbeans viene preinstalado).

Nombre: Xcode

Caracteriticas:Es el entorno de desarrollo integrado (IDE, en sus siglas en inglés) de Apple Inc. y se suministra gratuitamente junto con Mac OS X. Xcode trabaja conjuntamente con Interface Builder, una herencia de NeXT, una herramienta gráfica para la creación de interfaces de usuario.Xcode incluye la colección de compiladores del proyecto GNU (GCC), y puede compilar código C, C++, Objective-C, Objective-C++, Java y AppleScript mediante una amplia gama de modelos de programación, incluyendo, pero no limitado a Cocoa, Carbón y Java. Otras compañías han añadido soporte para GNU Pascal, Free Pascal, Ada y Perl.Entre las características más apreciadas de Xcode está la tecnología para distribuir el proceso de construcción a partir de código fuente entre varios ordenadores, utilizando Bonjour.

Ventajas:
*Compilación de múltiples lenguajes.
*Es de apple xD!
*Tiene simulación virtual IOS
*Insepección de código ("en tiempo real")
* Es gratuito

Desventajas:
*Esta diseñado sólo para Mac
 *No hay mucha información sobre su uso.
*Es un poco extenso en herramientas, es bueno para cuando se sabe usar .

Nombre:Carbide C++

Caracteriticas:
Es una herramienta para el desarrollo de software en lenguaje C++ destinado a dispositivos que funcionan bajo Symbian OS. Se usa tanto para desarrollar los teléfonos que incorporan dicho OS como para las aplicaciones que ejecutan estos.Está formada por una familia de IDEs desarrollada por Nokia, basada en Eclipse, al que se han incorporado plug-ins para el desarrollo de Symbian OS. Reemplazó a CodeWarrior como primer entorno de desarrollo para Symbian OS.Desde la versión 2.0, Carbide.c++ es gratuito y se ofrece en tres versiones (Developer, Professional, y OEM)
Ventajas:Economía de las expresiones
*Abundancia en operadores y tipos de datos
*Codificación de alto y bajo nivel simultáneamente
*Reemplaza ventajosamente a la programación en ensamblador
*Utilización natural de las funciones primitivas del sistema
*No está orientado a ninguna área especial
*Producción de código objeto altamente optimizado
*Facilidad de aprendizaje Historia Compiladores Uno de los compiladores libres de C++ es el de GNU, el compilador G++ (parte del proyecto GCC, que engloba varios compiladores para distintos lenguajes). Otros compiladores comunes son Intel C++ Compiler, el compilador de Xcode, el compilador de Borland C++, el compilador de CodeWarrior C++, el compilador g++ de Cygwin, el compilador g++ de MinGW, el compilador de Visual C++, Carbide.c++, entre otros. Diferencia entre C++ y VB La diferencia principal radica en que son lenguajes de programación diferentes y por lo tanto, sus interfaces de desarrollo (IDE - Integrated Development Environment) son distintas.

Desventajas:
No es recomendable para desarrollo de páginas Web.
*Existen muchos entornos de programación para C++. No existen estándares para ello. De manera que puedes encontrar C++ para Unix/Linux, C++ para Windows, C++ para MacOS, y asi indistintamente. Además, en cada SO encuentras diferentes IDEs de desarrollo, y también encuentras IDEs para desarrollo de aplicaciones gráficas como Anjuta, Qt para Unix/Linux, Borland C++ Builder y Visual Studio C++ para Windows. Presentado Por: Gabriela Elizabeth Pavón Colindres I Computacion.

Nombre:Netbeans

Caracteriticas:
Es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programación Java. Existe además un número importante de módulos para extenderlo. NetBeans IDE2 es un producto libre y gratuito sin restricciones de uso.
NetBeans es un proyecto de código abierto de gran éxito con una gran base de usuarios, una comunidad en constante crecimiento, y con cerca de 100 socios en todo el mundo. Sun MicroSystems fundó el proyecto de código abierto NetBeans en junio de 2000 y continúa siendo el patrocinador principal de los proyectos.
La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de software llamados módulos. Un módulo es un archivo Java que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como módulo. Las aplicaciones construidas a partir de módulos pueden ser extendidas agregándole nuevos módulos. Debido a que los módulos pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma NetBeans pueden ser extendidas fácilmente por otros desarrolladores de software.
Ventajas:
Dispone de un editor de texto con resaltador de sintaxis.
*La compilación es en tiempo real
*Tiene pruebas unitarias con (JUnit).
*Control de versiones con (CVS).
*Integración con (Ant),
*Asistentes (wizards) para creación de proyectos
*Clases, test, etc...
*El entorno de desarrollo integrado (IDE) de Eclipse emplea módulos (en inglés plug-in) para proporcionar toda su funcionalidad al frente de la Plataforma de Cliente rico, a diferencia de otros entornos monolíticos donde las funcionalidades están todas incluidas, las necesite el usuario o no.
*Este mecanismo de módulos es una plataforma ligera para componentes de software. Adicionalmente a permitirle a Eclipse extenderse usando otros lenguajes de programación como son C/C++ y Python, permite a Eclipse trabajar con lenguajes para procesado de texto como LaTeX, aplicaciones en red como Telnet y Sistema de gestión de base de datos.

Desventajas:

Poca existencia de pluguins para esta plataforma.
*hace falta documentación del Rich Client Plataform (RCP).
*No posee un editor de código HTML.

Nombre:Java

Caracteristicas:
Es un lenguaje de programación de propósito general, concurrente, orientado a objetos y basado en clases que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o "write once, run anywhere"), lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java es, a partir de 2012, uno de los lenguajes de programación más populares en uso, particularmente para aplicaciones de cliente-servidor de web, con unos 10 millones de usuarios reportados.
Desde la creación de la especificación J2ME (Java 2 Platform, Micro Edition), una versión del entorno de ejecución Java reducido y altamente optimizado, especialmente desarrollado para el mercado de dispositivos electrónicos de consumo se ha producido toda una revolución en lo que a la extensión de Java se refiere.
Es posible encontrar microprocesadores diseñados para ejecutar bytecode Java y software Java para tarjetas inteligentes (JavaCard), teléfonos móviles, buscapersonas, set-top-boxes, sintonizadores de TV y otros pequeños electrodomésticos.

Ventajas:
*El JDK es una herramienta libre de licencias (sin costo), creada por Sun.- Está respaldado por un gran número de proveedores.
*Existe soporte dado por Sun.
Debido a que existen diferentes productos de Java, hay más de un proveedor de servicios.
*Sun saca al mercado cada 6 meses una nueva versión del JDK.*Es independiente de la plataforma de desarrollo.
*Existen dentro de su librería clases gráficas como awt y swing, las cuales permiten crear objetos gráficos comunes altamente configurables y con una arquitectura independiente de la plataforma.
*Java permite a los desarrolladores aprovechar la flexibilidad de la Programación Orientada a Objetos en el diseño de sus aplicaciones.
*El conocimiento sobre tecnología Java está en alto crecimiento en el mercado.
*Se puede acceder a bases de datos fácilmente con JDBC, independientemente de la plataforma utilizada.
* El manejo de las bases de datos es uniforme, es decir transparente y simple.
*Existen las herramientas Crystal Reports o herramientas libres como iText que los genera en formato pdf.
*La API que utilizan estas herramientas en Java, es la más recomendable para generar reportes en Web.

Desventajas:
*Hay diferentes tipos de soporte técnico para la misma herramienta, por lo que el análisis de la mejor opción se dificulta
*Para manejo a bajo nivel deben usarse métodos nativos, lo que limita la portabilidad.
*El diseño de interfaces gráficas con awt y swing no es simple.
*Existen herramientas como el JBuilder que permiten generar interfaces gráficas de manera sencilla, pero tienen un costo adicional.
*Puede ser que no haya JDBC para bases de datos poco comerciales.
*Algunas herramientas tienen un costo adicional.


ARQUITECTURA DEL SISTEMA OPERATIVO ANDROID

Android es una plataforma para dispositivos móviles que contiene una pila de software donde se incluye un sistema operativo, middleware y aplicaciones básicas para el usuario.
En las siguientes líneas se dará una visión global por capas de cuál es la arquitectura empleada en Android. Cada una de estas capas utiliza servicios ofrecidos por las anteriores, y ofrece a su vez los suyos propios a las capas de niveles superiores.
  • Aplicaciones: Este nivel contiene, tanto las incluidas por defecto de Android como aquellas que el usuario vaya añadiendo posteriormente, ya sean de terceras empresas o de su propio desarrollo. Todas estas aplicaciones utilizan los servicios, las API y librerías de los niveles anteriores.
  • Framework de Aplicaciones: Representa fundamentalmente el conjunto de herramientas de desarrollo de cualquier aplicación. Toda aplicación que se desarrolle para Android, ya sean las propias del dispositivo, las desarrolladas por Google o terceras compañías, o incluso las que el propio usuario cree, utilizan el mismo conjunto de API y el mismo "framework", representado por este nivel.
        Entre las API más importantes ubicadas aquí, se pueden encontrar las siguientes:
·Activity Manager: Conjunto de API que gestiona el ciclo de vida de las aplicaciones en Android.
·Window Manager: Gestiona las ventanas de las aplicaciones y utiliza la librería Surface Manager.
·Telephone Manager: Incluye todas las API vinculadas a las funcionalidades propias del teléfono (llamadas, mensajes, etc.).
·Content Provider: Permite a cualquier aplicación compartir sus datos con las demás aplicaciones de Android. Por ejemplo, gracias a esta API la información de contactos, agenda, mensajes, etc. será accesible para otras aplicaciones.
·View System: Proporciona un gran número de elementos para poder construir interfaces de usuario (GUI), como listas, mosaicos, botones, "check-boxes", tamaño de ventanas, control de las interfaces mediante teclado, etc. Incluye también algunas vistas estándar para las funcionalidades más frecuentes.
                · Location Manager: Posibilita a las aplicaciones la obtención de información de localización y                                     posicionamiento.
·Notification Manager: Mediante el cual las aplicaciones, usando un mismo formato, comunican al usuario eventos que ocurran durante su ejecución: una llamada entrante, un mensaje recibido, conexión Wi-Fi disponible, ubicación en un punto determinado, etc. Si llevan asociada alguna acción, en Android denominada Intent, (por ejemplo, atender una llamada recibida) ésta se activa mediante un simple clic.
·XMPP Service: Colección de API para utilizar este protocolo de intercambio de mensajes basado en XML.
  • Librerías: La siguiente capa se corresponde con las librerías utilizadas por Android. Éstas han sido escritas utilizando C/C++ y proporcionan a Android la mayor parte de sus capacidades más características. Junto al núcleo basado en Linux, estas librerías constituyen el corazón de Android.
              Entre las librerías más importantes ubicadas aquí, se pueden encontrar las siguientes:
·Librería libc: Incluye todas las cabeceras y funciones según el estándar del lenguaje C. Todas las demás librerías se definen en este lenguaje.
·Librería Surface Manager: Es la encargada de componer los diferentes elementos de navegación de pantalla. Gestiona también las ventanas pertenecientes a las distintas aplicaciones activas en cada momento.
·OpenGL/SL y SGL: Representan las librerías gráficas y, por tanto, sustentan la capacidad gráfica de Android. OpenGL/SL maneja gráficos en 3D y permite utilizar, en caso de que esté disponible en el propio dispositivo móvil, el hardware encargado de proporcionar gráficos 3D. Por otro lado, SGL proporciona gráficos en 2D, por lo que será la librería más habitualmente utilizada por la mayoría de las aplicaciones. Una característica importante de la capacidad gráfica de Android es que es posible desarrollar aplicaciones que combinen gráficos en 3D y 2D.
·Librería Media Libraries: Proporciona todos los códecs necesarios para el contenido multimedia soportado en Android (vídeo, audio, imágenes estáticas y animadas, etc.)
·FreeType: Permite trabajar de forma rápida  y sencilla con distintos tipos de fuentes.
·Librería SSL: Posibilita la utilización de dicho protocolo para establecer comunicaciones seguras.
·Librería SQLite: Creación y gestión de bases de datos relacionales. 
·Librería WebKit: Proporciona un motor para las aplicaciones de tipo navegador y forma el núcleo del actual navegador incluido por defecto en la plataforma Android.
  • Tiempo de ejecución de Android: Al mismo nivel que las librerias de Android se sitúa el entorno de ejecución. Éste lo constituyen las Core Libraries, que son librerias con mulititud de clases Java y la máquina vistual Dalvik.
  • Núcleo Linux: Android utiliza el núcleo de Linux 2.6 como una capa de abstracción para el hardware disponible en los dispositivos móviles. Esta capa contiene los drivers necesarios para que cualquier componente hardware pueda ser utilizado mediante las llamadas correspondientes. Siempre que un fabricante incluye un nuevo elemento de hardware, lo primero que se debe realizar para que pueda ser utilizado desde Android es crear las librerias de control o drivers necesarios dentro de este kernel de Linux embebido en el propio Android.

ENTORNOS DE TRABAJO PARA APLICACIONES MOVILES

Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación; es decir, que consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI). Los IDEs pueden ser aplicaciones por sí solas o pueden ser parte de aplicaciones existentes.
Eclipse
Eclipse es un programa informático compuesto por un conjunto de herramientas de programación de código abierto multiplataforma para desarrollar lo que el proyecto llama "Aplicaciones de Cliente Enriquecido", opuesto a las aplicaciones "Cliente-liviano" basadas en navegadores. Esta plataforma, típicamente ha sido usada para desarrollar entornos de desarrollo integrados (del inglés IDE), como el IDE de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entrega como parte de Eclipse (y que son usados también para desarrollar el mismo Eclipse). Sin embargo, también se puede usar para otros tipos de aplicaciones cliente, como BitTorrent o Azureus.

XCode
Es el entorno de desarrollo integrado (IDE, en sus siglas en inglés) de Apple Inc. y se suministra gratuitamente junto con Mac OS X. Xcode trabaja conjuntamente con Interface Builder, una herencia de NeXT, una herramienta gráfica para la creación de interfaces de usuario.Xcode incluye la colección de compiladores del proyecto GNU (GCC), y puede compilar código C, C++, Objective-C, Objective-C++, Java y AppleScript mediante una amplia gama de modelos de programación, incluyendo, pero no limitado a Cocoa, Carbón y Java. Otras compañías han añadido soporte para GNU Pascal, Free Pascal, Ada y Perl.Entre las características más apreciadas de Xcode está la tecnología para distribuir el proceso de construcción a partir de código fuente entre varios ordenadores, utilizando Bonjour.


Carbide.C++

Es una herramienta para el desarrollo de software en lenguaje C++ destinado a dispositivos que funcionan bajo Symbian OS. Se usa tanto para desarrollar los teléfonos que incorporan dicho OS como para las aplicaciones que ejecutan estos.Está formada por una familia de IDEs desarrollada por Nokia, basada en Eclipse, al que se han incorporado plug-ins para el desarrollo de Symbian OS. Reemplazó a CodeWarrior como primer entorno de desarrollo para Symbian OS.Desde la versión 2.0, Carbide.c++ es gratuito y se ofrece en tres versiones (Developer, Professional, y OEM)

NetBeans

es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programación Java. Existe además un número importante de módulos para extenderlo. NetBeans IDE2 es un producto libre y gratuito sin restricciones de uso.
NetBeans es un proyecto de código abierto de gran éxito con una gran base de usuarios, una comunidad en constante crecimiento, y con cerca de 100 socios en todo el mundo. Sun MicroSystems fundó el proyecto de código abierto NetBeans en junio de 2000 y continúa siendo el patrocinador principal de los proyectos.
La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de software llamados módulos. Un módulo es un archivo Java que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como módulo. Las aplicaciones construidas a partir de módulos pueden ser extendidas agregándole nuevos módulos. Debido a que los módulos pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma NetBeans pueden ser extendidas fácilmente por otros desarrolladores de software.

JAVA

Es un lenguaje de programación de propósito general, concurrente, orientado a objetos y basado en clases que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o "write once, run anywhere"), lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java es, a partir de 2012, uno de los lenguajes de programación más populares en uso, particularmente para aplicaciones de cliente-servidor de web, con unos 10 millones de usuarios reportados.
Desde la creación de la especificación J2ME (Java 2 Platform, Micro Edition), una versión del entorno de ejecución Java reducido y altamente optimizado, especialmente desarrollado para el mercado de dispositivos electrónicos de consumo se ha producido toda una revolución en lo que a la extensión de Java se refiere.
Es posible encontrar microprocesadores diseñados para ejecutar bytecode Java y software Java para tarjetas inteligentes (JavaCard), teléfonos móviles, buscapersonas, set-top-boxes, sintonizadores de TV y otros pequeños electrodomésticos.