miércoles, 2 de marzo de 2016

Programación Android 2: configuración de PC para desarrollar como Android
A continuación te dejo el video que te ayudará con los pasos para realizar la configuración.







Resumen:
·         Paso uno: Instalar UDK (conjunto de herramientas para Java).
·         Paso dos: Descargar e instalar SDK (conjunto de herramientas para Android).
·         Paso tres: Descargar Eclipse, para esto debes ingresar al sitio oficial de Eclipse (https://eclipse.org/), después vas a la sección de descargas y elijes la primera opción. Ya descargado lo comprimes.
·         Paso cuatro: Instalar Plugin, lo cual va a permitir integrar las herramientas de desarrollo  para Android con Eclipse, así van a ser reconocidos los pasos.
·         Paso cinco: Configurar las preferencias de Eclipse.
·         Paso seis: Configurar la máquina virtual a través del controlador virtual de Android.
Programación Android tutorial 1: Introducción
A continuación se muestra un video que ayudará a comprender mas sobre Android y las características de su sistema operativo.

Resumen:
Android es un sistema operativo que desde 2005 es propiedad de Google  y está basado en Linux. Está diseñado principalmente para dispositivos que tienen pantalla táctil.
Características del sistema operativo:
·         Es multitarea, es decir, la capacidad de desarrollar muchas tareas al mismo tiempo.
·         Permite desarrollar aplicaciones como Java.
·         Es multitáctil, es decir, la capacidad de percibir mediante pequeños toques en la pantalla e interpretarlos como touch, arrastrar o mover elementos.

·         También brinda un soporte para bases de datos y lo hace a través del sistema llamado SQLite.







Entornos de trabajo para aplicaciones moviles

En
tor
no
Características
Ventajas
Desventajas
E
C
L
I
P
S
E

·         Dispone de un editor de texto con resaltado de sintaxis donde puedes ver el contenido del fichero en el que estás trabajando.
·         Contiene una lista de tareas y otros módulos similares.
·         La compilación es en tiempo real.
·         Tiene pruebas unitarias con Junit.
·         Integración con Ant, asistentes (wizards) para creación de proyectos, clases, tests, etc. y refactorización.
·         El entorno de desarrollo integrado de Eclipse emplea módulos 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 de componentes de software. Adicionalmente permite 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 en bases de datos.
·         La arquitectura Plug-in permite escribir cualquier extensión deseada en el ambiente, como seria gestión de la configuración.
·         La definición que da el proyecto Eclipse acerca de su Software es: “Una especie de herramienta universal-un IDE abierto y extensible para todo y nada en particular.
·         Su principal inconveniente es el consumo de recursos del sistema.
·         Carece de muchos recursos para webapps tal y como lo hace netbeans.
X
C
O
D
E

·         Es el entorno de desarrollo integrado de Apple Inc. Y se suministra gratuitamente junto con Mac OS X.
·         Xcode trabaja conjuntamente con Interface Builder, una herencia de NeXT, una herramienta básica para la creación de interfaces de usuario.
·         Incluye la colección de compiladores del proyecto GNU (GCC), y puede compilar código C, C++, Objetive-C, Objetive-C++, Java y Apple Script.
·         Compilación de múltiples lenguajes.
·         Tiene simulación virtual IOS.
·         Insepección de código (“en tiempo real”).
·         Es gratuito.
·         Está diseñado solo para Mac.
·         No hay mucha información sobre su uso.
·         Es un poco extenso en herramientas y eso es bueno solo cuando se sabe usar bien.
N
E
T
B
E
A
N
S

·         La plataforma NetBeans es una base modular y extensible usada como una estructura de integración para crear aplicaciones de escritorio grandes. 
·         La plataforma ofrece servicios comunes a las aplicaciones de escritorio, permitiéndole al desarrollador enfocarse en la lógica específica de su aplicación. 
·         Entre las características de la plataforma están: 
  ü  Administración de las interfaces de usuario (ej. menús y barras de herramientas). 
  ü  Administración de las configuraciones del usuario. 
  ü  Administración del almacenamiento (guardando y cargando cualquier tipo de dato). 
  ü  Administración de ventanas. 
  ü  Framework basado en asistentes (diálogos paso a paso). 
·         Paquetes que componen a NetBeans (algunos pueden ser descargados individualmente). 
·         NetBeans Enterprise Pack provee Soporte para la creación de aplicaciones orientadas a servicios (SOA), incluyendo herramientas de esquemas XML, un editor WSDL, y un editor BPEL para web services.
·         La plataforma Netbeans puede ser usada para desarrollar cualquier tipo de aplicación.
·         Reutilización del Módulos.
·         Permite el uso de la herramienta Update Center Module.
·         Instalación y actualización simple.
·         Incluye Templates y Wizards.
·         Posee soporte para Php.

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

J
A
V
A

·         Lenguaje totalmente orientado a Objetos. 
·         Disponibilidad de un amplio conjunto de bibliotecas. 
·         Lenguaje simple. 
·         Distribuido. 
·         Interpretado y compilado a la vez. 
·         Robusto. 
·         Seguro. 
·         Indiferente a la arquitectura. 
·         Portable. 
·         Alto rendimiento. 
·         Multihebra. 
·         Dinámico. 
·         Produce applets. 
§  Manejo automático de la memoria. (para los que vienen de C/C++) " Si, no hay punteros! WOW!". El manejo de la memoria se hace automáticamente y utilizando el garbage collector. Esto ahorra SIGNIFICANTE tiempo de programación.
§  Lenguaje Multi-plataforma: El código que escrito en java es leído por un intérprete, por lo que su programa andará en cualquier plataforma.
§  Programación Orientada a Objetos: Paradigma muy utilizado hoy en dia que facilita y organiza mucho la programación.
§  Puede correr en el explorador y en dispositivos móviles.
§  Sintaxis similar a C/C++, pero más simple.

§  Menos Eficiente, comparado a C/C++.
§  Requiere un intérprete.
§  Algunas implementaciones y librerías pueden tener código rebuscado.
§  Una mala implementación de un programa en java, puede resultar en algo muy lento.

viernes, 26 de febrero de 2016

Cómo instalar Eclipse con el Plugin Android paso a paso

Android ofrece un plugin personalizado para el IDE de Eclipse, llamado Android Development Tools (ADT), para programar con esta solución, necesitas descargarte Java JDK y el propio Eclipse versión Indigo.

1.- Java JDK 6. http://www.oracle.com/technetwork/java/javase/downloads/index.html.




Cuando pulses sobre el botón"JDK Download" te llevara a otra pantalla, ve a la parte de Java JDK, tendrás que aceptar una licencia y ya seleccionar el sistema operativo que usas (windows, mac, 32bit(x86) o 64bit(x64)....)



2.- Eclipse Indigo (v 3.7.2 o mayor). http://eclipse.org/downloads/packages/release/Indigo/SR2
como veras hay varias compilaciones de Indigo, debes asegurarte que llevaEclipse JDT plugin (que esta incluido en la mayoría de los paquetes de Eclipse IDE) yo te recomiendo que descargues la versión que te marco aquí abajo (Eclipse IDE for Java Developers).





La instalación de Eclipse es sencilla, basta con que descomprimas el archivo que te descargaste, y saques un acceso directo del ejecutable Eclipse.exe que encontraras dentro de la carpeta Eclipse.





Una vez que hayas instalado el Java JDK y tengas Eclipse localizado, toca instalar el Plugin de Android para Eclipse, para esto haz lo siguiente:

1. Inicia Eclipse, lo primero que te preguntara será sobre la ubicación del WorkSpace, esta es la ubicación donde se guardaran tus proyectos, selecciona una ruta y acepta el dialogo. Truco: Si usas varios PC's usa DropBox o Drive para tener tus proyectos en todos tus PC's.





Después selecciona en el menú superior, selecciona Help > Install New Software.






2. Haz Click en Add, en la esquina superior derecha, en la ventana que aparece escribe "ADT Plugin" para el Name y la siguiente URL para la Location:


https://dl-ssl.google.com/android/eclipse/






3. Haz Click en OK.
4. Aparecerá entonces el software disponible, debes seleccionar el repositorio Developer Tools y hacer click en Next.





5. En la siguiente ventana, veras la lista del software que se va a descargar, haz Click en Next.





6. Lee y acepta la license agreements, después haz click en Finish.





Nota: Es muy posible que te aparezca un mensaje de aviso diciendo que la conexión ni es segura. Acepta el dialogo y continua, cuando termine la descarga reinicia Eclipse.




Tienes toda la documentación oficial aquí: http://developer.android.com/sdk/installing/installing-adt.html




A continuación, veremos una pantalla de bienvenida, esta pantalla la podrás cerrar pulsando la tecla ESCAPE o pulsando sobre la X en la esquina superior Izquierda. Una vez cerrada, entramos la ventana de trabajo principal.




2. Añadiendo las plataformas de Android (APIs Android)

Para descargarte las distintas plataformas Android (son las APIs o versiones de Android) hay que usar lo que llamamos SDKManager en Eclipse.




Se abrirá una ventana, espera hasta que el listado se cargue por completo, en ese momento podrás ver las carpetas correspondientes a todas las versiones de cada versión de sistema operativo Android, en función de la versión para que quieras desarrollar aplicaciones, marca la casilla correspondiente y pulsa en la parte inferior “Install packages…” para comenzar con su descarga.




Ahora ya esta todo listo para comenzar a programar y desarrollar tus aplicaciones para Android.

Otra cosa útil que deberías saber (por si mueves la carpeta de instalación de Eclipse o renombras la carpeta por defecto donde se guarda el SDK) es saber como se cambia la ruta o como se comprueba que el SDK esta bien instalado, en la barra de menú busca: Windows > Preferences.




En la ventana que se abre a continuación, en la parte izquierda selecciona Android, y en la parte derecha comprueba que la carpeta android-sdks está en la ruta que figura, si no... mal asunto!










*Información original click aquí*

jueves, 18 de febrero de 2016

Arquitectura del Sistema Operativo Android
Como ya se ha mencionado, 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, tal como muestra la siguiente figura:
 
Como ya se ha mencionado, 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, tal como
muestra la siguiente figura: 


 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 mas 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 mas importantes ubicadas aquí, se pueden encontrar la 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.