martes, 28 de marzo de 2017

Estructura de carpetas de un proyecto android.

Carpetas y subcarpetas de eclipse.

Resultado de imagen para carpetas de eclipse

Src: Esta carpeta contendrá todo el código fuente de la aplicación, código de la interfaz gráfica, clases auxiliares, etc. Inicialmente, Eclipse creará por nosotros el código básico de la pantalla (Activity) principal de la aplicación, que recordemos que en nuestro caso era MainActivity, y siempre bajo la estructura del paquete java definido
carpeta-java

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:

Carpeta                                Descripción
/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/mipmap/Contiene los iconos de lanzamiento de la aplicación (el icono que aparecerá en el menú de aplicaciones del dispositivo) para las distintas densidades de pantalla existentes. Al igual que en el caso de las carpetas /drawable, se dividirá en varias subcarpetas dependiendo de la densidad de pantalla:
  • /mipmap-mdpi
  • /mipmap-hdpi
  • /mipmap-xhdpi
/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.



Gen:contiene una serie de elementos de código generados automáticamente al compilar el proyecto. Cada vez que generamos nuestro proyecto, la maquinaria de compilación de Android genera por nosotros una serie de ficheros fuente java dirigidos 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.

Assets: Contiene todos los demás ficheros auxiliares necesarios para la aplicación (y que se incluirán en su propio paquete), como por ejemplo ficheros de configuración, de datos, etc.
La diferencia entre los recursos incluidos en la carpeta /res/raw/ y los incluidos en la carpeta /assets/ es que para los primeros se generará un ID en la clase R y se deberá acceder a ellos con los diferentes métodos de acceso a recursos. Para los segundos sin embargo no se generarán ID y se podrá acceder a ellos por su ruta como a cualquier otro fichero del sistema. Usaremos uno u otro según las necesidades de nuestra aplicación.
Bin: Ésta es otra de ésas carpetas que en principio no tendremos por qué tocar. Contiene los elementos compilados de la aplicación y otros ficheros auxiliares. Cabe destacar el fichero con extensión “.apk”, que es el ejecutable de la aplicación que se instalará en el dispositivo.


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.



sábado, 25 de marzo de 2017

Primera aplicacion android

Ya tenemos todo lo necesario instalado para implementar el primer proyecto.
Desde el menú de opciones: File -> New -> Android Application Project


En este diálogo especificamos el nombre de la aplicación y proyecto (pueden ser iguales) y el nombre del paquete java donde se almacenarán los archivos java que creemos (normalmente la url de su empresa al revés).
Ahora empezaremos a presionar el botón next para pasar a otras configuraciones de nuestra aplicación, por el momento dejaremos todos los valores por defecto en cada una de los diálogos que aparece (son 5 diálogos actualmente), en el último diálogo debe aparecer el botón "Finish" el cual presionamos.
El ADT nos genera todos los directorios y archivos básicos para iniciar nuestro proyecto:

No haremos en este momento un análisis del significado y objetivo de cada uno de estos directorios y archivos generados, sino a medida que avancemos con este curso iremos viendo en forma puntual y profunda.
La interfaz visual de nuestro programa para Android se almacena en un archivo XML en la carpeta res, subcarpeta layout y el archivo se llama activity_main.xml. En esta carpeta tenemos creada nuestra primer pantalla.
Al seleccionar este archivo el ADT nos permite visualizar el contenido en "vista de diseño (Graphical Layout)":

Si seleccionamos la otra pestaña podemos visualizar el archivo activity_main.xml en formato de texto:


El ADT ya insertó un control de tipo RelativeLayout que permite ingresar controles visuales alineados a los bordes y a otros controles que haya en la ventana (más adelante analizaremos este layout)
Ya veremos que podemos modificar todo este archivo para que se adapte a la aplicación que queremos desarrollar.

Luego contenido en el control RelativeLayout hay otro control de tipo TextView que es básicamente una etiqueta o label que mostrará en pantalla el valor almacenado en la propiedad text.

Podemos modificar directamente el archivo xml o en "vista de diseño" modificar los valores de las propiedades. Elegimos nuevamente la pestaña "Graphical Layout" y seleccionamos el TextView con el mouse y vemos que en la parte derecha de la pantalla aparece una ventana llamada "properties":


Y estando seleccionado el TextView buscamos la propiedad Text y cargamos: "Mi primer programa para Android" y presionamos enter, podemos ver que se actualiza la vista:

Con esto ya podemos probar nuestra primer aplicación para un dispositivo Android. SELECCIONAMOS con el mouse en la ventana de la izquierda (Package Explorer) el proyecto001 y presionamos el ícono de Run (triángulo verde) o desde el menú. Seleccionamos que se ejecute como aplicación "Android Application". Ahora se abrirá el AVD(Android Virtual Device) esto tarda bastante tiempo, es muy importante recordar que luego de ver ejecutándose el programa NO debemos cerrar el AVD para que la próxima ejecución se inicie más rápido (podemos minimizar el AVD)
Ahora podemos ver nuestra primer aplicación corriendo en el emulador de Android:


Como hemos visto el ADT nos genera en forma automática todas las carpetas y archivos básicos que necesitamos en un principio. En el siguiente concepto podremos empezar a programar verdaderamente. El único objetivo de este ejercicio es recordar los pasos para crear un proyecto.

Como configurar PC para realizar AM para android

1 Descargar e instalar JDK
Es el conjunto de herramientas para Java. Primero abrimos nuestro ordenador y entramos a la página www.oracle.com, vamos a la sección de descargas y cuando estemos ahí vamos a la pestaña que está al lado derecho que dice “descargas más populares”, damos clic en Java para descargarlo. En esta parte nos aparecerá la opción Java SE que es la que en esta ocasión descargaremos, damos clic, nos manda a otra pestaña y damos clic en la primera plataforma de Java la versión 7, damos clic y nos aparecerá una lista con las distintas versiones que podemos descargar, aceptamos las condiciones de uso y en esta ocasión vamos a configurar la computadora para la plataforma de 32 bits así que hacemos clic en el respectivo link y esperamos a que se descargue. Una vez descargada y que ya tengamos el archivo lo abrimos y procedemos a la instalación, es bastante sencilla, elegimos Windows, damos clic en siguiente cuantas veces se pida y esperamos a que se instale, esta es corta, cuando finalice damos clic en siguiente, esperamos y cuando finalice damos clic en cerrar y ya tenemos instalado el JDK en nuestra computadora.


        2. Descargar e instalar SDK
Es el conjunto de herramientas para Android.
Primero vamos a nuestro navegador para descargar e ingresamos a la dirección www.android.com vamos a la sección Developers y damos clic en el botón Get the SDK, después tenemos que dar clic en USE AN EXISTING IDE damos clic en esta pestaña y después en Download the SDK Tools for Windows damos clic en este botón, luego aceptamos los términos de uso y licencia y vamos a la descarga atreves de este botón. Una vez terminado de descargar abrimos el archivo e igual que el anterior damos clic en siguiente hasta que nos parezca un recuadro con una ruta que tendremos que copiar porque es indispensable que la tengamos copiada y guardada porque más adelante la vamos a utilizar, después damos clic en siguiente y finalmente instalar cuando termine se inicia automáticamente el SDK 


3. Configurando SDK
Una vez que se finaliza la instalación se ejecuta el administrador de SDK en caso de no ejecutarse lo puedes buscar en el disco duro, cuando se encuentre abre la carpeta de Android SDK Manager en este aparecerán todas las versiones de las API los distintos niveles pero en esta ocasión elegiremos una menor a la que tengamos, vamos a usar la versión 2.2 de la API Número 8 ya que bastantes dispositivos la tienen y así vamos a abarcar mayor rango de dispositivos, checamos que este bien y finalmente instalamos, aparecerá un  recuadro donde tendremos que aceptar la licencia e instalamos, la instalación lo que realmente hace es descargar las herramientas. Solo queda esperar porque esta instalación toma tiempo.


4. Descargar Eclipse
En este caso vamos a la página oficial  de Eclipse www.eclipse.org, vamos a la sección de descargas “Downloads” vamos a descargar la primera que nos aparece, descargaremos l versión 32 bit damos clic, aquí nos redirige a una nueva página y ahí vamos a dar clic sobre el link que nos dirige a la página para descargar el archivo comprimido de Eclipse. Lo descargamos y una vez descomprimido la carpeta la abrimos y buscamos el logo de eclipse damos clic y esperamos, la primera vez puede tardar, luego seleccionamos el workspace o el entorno de trabajo y esperamos a que se abra para verlo por primera vez. 


5. Instalar plugin
Nos permitirá integrar el SDK como otra herramienta de desarrollo para Android con nuestro Eclipse, así vamos a poder reconocer y crear proyectos mediante ese entorno. Por lo mismo vamos a Eclipse y damos clic en el botón “help” y después en “Install New Software” se abrirá un cuadro de dialogo, vamos a dar clic en “Add…” en el cuadro que aparece escribimos un nombre distintivo y luego la localización de donde podemos poner por ejemplo http://dl-ssl.google.com/android/eclipse/ esto es indispensable ya que nos ayudar a unir el SDK con eclipse, una vez que lo tenemos solo damos, clic en OK e inmediatamente comenzara a buscar cuando esté listo, checamos solamente la primera opción “Developer Tools y damos clic en siguiente, este proceso suele tardar. Una vez haya terminado damos clic en siguiente, aceptamos los términos de la licencia y damos clic en finalizar, automáticamente abre un cuadro de dialogo de nos muestra el progreso de la instalación de plugin, durante el proceso de instalación nos manda advertencias porque estamos instalando un nuevo software, damos clic en ok para que proceda con la instalación al mismo tiempo Windows nos manda una advertencia de seguridad que permite el acceso a las redes, damos clic en permitir acceso y aparece un recuadro que nos dice que se hizo la autorización pero necesita reiniciar eclipse, damos clic en sí. Cuando lo reiniciamos aparece un recuadro que nos marca error, dice que no puede encontrar el directorio así que nos faltó un paso por configurar el plugin en eclipse. 


6. Configuración de las preferencias de Eclipse
En el paso anterior nos manda un pequeño erro con respecto a las preferencias de eclipse. Así que damos clic en Open Preferences, se abre un cuadro de dialogo en donde nos pide la ruta que guardamos cuando instalamos SDK, remplazamos la ruta que aparece por la que guardamos y damos, clic en ok, así ya tenemos listo Eclipse. 


7. Configurar la máquina virtual
En este último paso ya tenemos e controlado de SDK en donde, cuando queramos descargar nuevas actualizaciones de la versión de Android vamos a hacerlo  atreves del botón que tiene el icono de descarga, nosotros tenemos instalada la versión 2.2. Para poder configurar la máquina virtual damos clic en Android Virtual Device Manager, damos clic en New y en el nuevo cuadro de dialogo colocamos en el recuadro un nombre para identificar el plugin ejemplo “Android 2.2” en “Divice”: que vamos a utilizar va a ser uno que tiene una pantalla de 2.7 pulgadas y una resolución de 240 por 320 pixeles es una resolución muy baja pero es la mínima para todos los dispositivos Android, en destino “Target” seleccionamos la versión de Android que tenemos instalado en este instante la 2.2, dejamos igual el teclado, también en el skin, la cámara frontal no se tiene, dejamos la mayoría así pero podemos cambiar el “internal storage” a una de 650 y por ultimo damos clic en ok y tenemos lista la máquina virtual y si todo esta correcto podemos iniciarla dando clic en “start” esperamos un momento y aparece un pequeña ventana en donde se verán las aplicaciones que vamos a desarrollar, luego en esta aparecerá la pantalla y los botones que tienen los móviles, esperamos un poco a que cargue y nos aparecerá la máquina virtual e iniciando, damos clic en menú es tal cual como si estuviéramos en un  teléfono.   

miércoles, 15 de marzo de 2017

Proceso de instalación del programa eclipse

              Pasos de instalación del programa eclipse.


En el navegador que sea de tu preferencia buscas el programa de "Eclipse" y das clic en el enlace de "Eclipse" que sera la primera opción.

Una vez estés en la página de Eclipse, fíjate en la parte derecha de la ventana. Allí verás un botón color naranja, el cual dice “Download”

Al darle clic al botón “Download”, verás un texto que dice “Eclipse … Release for” y al lado un menú desplegable. y pondras que eres si WindowsLinux o Mac.

Ya que hayas seguido los pasos que se han brindando escogeras si quieres instalargo de 32 o 64 bit y selecionaras alguno de estos dos segun tu pc.

despues de que dieras clic a una de esas dos opciones te mandara a esta pagina. y oprimirás el botón “Download”
Al darle clic al botón “Download” comenzará la descarga por si sola.y ya que termine la descarga el archivo eclipse ya esta instalado.
ya das clic en el archivo y se abre y ya comenzaras su uso. estos son los pasos que yo segui para la descarga del programa eclipse.

viernes, 3 de marzo de 2017

Versiones del sistema operativo android

VERSIONES DEL SISTEMA OPERATIVO ANDROID.




Arquitectura del sistema operativo android

Arquitectura del sistema operativo android. 

Android es un sistema operativo basado en el núcleo Linux. Fue diseñado principalmente para dispositivos móviles con pantalla táctil, como teléfonos inteligentes, tablets o tabléfonos; y también para relojes inteligentes, televisores y automóviles. Inicialmente fue desarrollado por Android Inc., empresa que Google respaldó económicamente y más tarde, android fue presentado en 2007 junto la fundación del Open Handset Alliance (un consorcio de compañías de hardware, software y telecomunicaciones) para avanzar en los estándares abiertos de los dispositivos móviles. El primer móvil con el sistema operativo Android fue el HTC Dream y se vendió en octubre de 2008. Los dispositivos de Android venden más que las ventas combinadas de Windows Phone e IOS.

                  Esquema. 

APLICACIONES.
La capa superior de esta pila software la forman, como no podría ser de otra forma, las aplicaciones. En este saco se incluyen todas las aplicaciones del dispositivo, tanto las que tienen interfaz de usuario como las que no, tanto las nativas (programadas en C o C++) como las administradas (programadas en Java), tanto las que vienen de serie con el dispositivo como las instaladas por el usuario.
Aquí está también la aplicación principal del sistema: Inicio (Home), también llamada a veces lanzador (launcher), porque es la que permite ejecutar otras aplicaciones proporcionando la lista de aplicaciones instaladas y mostrando diferentes escritorios donde se pueden colocar accesos directos a aplicaciones o incluso pequeñas aplicaciones incrustadas o widgets, que son también aplicaciones de esta capa.
Lo principal a tener en cuenta de esta arquitectura es que todas las aplicaciones, ya sean las nativas de Android, las que proporciona Google, las que incluye de serie el fabricante del teléfono o las que instala después el usuario utilizan el mismo marco de aplicación para acceder a los servicios que proporciona el sistema operativo. Esto implica dos cosas: que podemos crear aplicaciones que usen los mismos recursos que usan las aplicaciones nativas (nada está reservado o inaccesible) y que podemos reemplazar cualquiera de las aplicaciones del teléfono por otra de nuestra elección. Este es el verdadero potencial de Android y lo que lo diferencia de su competencia: control total por parte del usuario del software que se ejecuta en su teléfono.
MARCO DE APLICACIÓN.
La siguiente capa la forman todas las clases y servicios que utilizan directamente las aplicaciones para realizar sus funciones y que, obviamente, se apoyan en las bibliotecas y en el entorno de ejecución que ya hemos detallado. La mayoría de los componentes de esta capa son bibliotecas Java que acceden a los recursos a través de la máquina virtual Dalvik. Entre las más importantes se encuentran las siguientes:
  • Administrador de actividades (Activity Manager): se encarga de controlar el ciclo de vida de las actividades  y la propia pila de actividades. Sin entrar en muchos detalles ahora, las actividades se pueden definir como las ventanas que se muestran, una sobre otra, en la pantalla del dispositivo Android (usando un concepto de ventana similar al de los sistemas operativos gráficos de PC, aunque el funcionamiento en Android sea muy diferente).
  • Administrador de ventanas (Windows Manager): se encarga de organizar lo que se muestra en pantalla, creando superficies que pueden ser rellenadas por las actividades.
  • Proveedor de contenidos (Content Provider): permite encapsular un conjunto de datos que va a ser compartido entre aplicaciones creando una capa de abstracción que hace accesible dichos datos sin perder el control sobre cómo se accede a la información. Por ejemplo, uno de los proveedores de contenido existentes permite a las aplicaciones acceder a los contactos almacenados en el teléfono. Esta biblioteca nos permite crear también nuestros propios proveedores para permitir que otras aplicaciones accedan a información que gestiona la nuestra.
  • Vistas (Views): si antes equiparábamos las actividades con las ventanas de un sistema operativo de PC, las vistas las podríamos equiparar con los controles que se suelen incluir dentro de esas ventanas. Android proporciona numerosas vistas con las que construir las interfaces de usuario: botones, cuadros de texto, listas, etc. También proporciona otras más sofisticadas, como un navegador web o un visor de Google Maps.
  • Administrador de notificaciones (Notification Manager): proporciona servicios para notificar al usuario cuando algo requiera su atención. Normalmente las notificaciones se realizan mostrando alerta en la barra de estado, pero esta biblioteca también permite emitir sonidos, activar el vibrador o hacer pardear los LEDs del teléfono (si los tiene).
  • Administrador de paquetes (Package Manager): las aplicaciones Android se distribuyen en paquetes (archivos .apk) que contienen tanto los archivos .dex como todos los recursos y archivos adicionales que necesite la aplicación, para facilitar su descarga e instalación. Esta biblioteca permite obtener información sobre los paquetes actualmente instalados en el dispositivo Android, además de gestionar la instalación de nuevos paquetes.
  • Administrador de telefonía (Telephony Manager): proporciona acceso a la pila hardware de telefonía del dispositivo Android, si la tiene. Permite realizar llamadas o enviar y recibir SMS/MMS, aunque no permite reemplazar o eliminar la actividad que se muestra cuando una llamada está en curso (por motivos de seguridad).
  • Administrador de recursos (Resource Manager): proporciona acceso a todos los elementos propios de una aplicación que se incluyen directamente en el código: cadenas de texto traducidas a diferentes idiomas, imágenes, sonidos e incluso disposiciones de las vistas dentro de una actividad (layouts). Permite gestionar esos elementos fuera del código de la aplicación y proporcionar diferentes versiones en función del idioma del dispositivo o la resolución de pantalla que tenga, por ejemplo.
  • Administrador de ubicaciones (Location Manager): permite determinar la posición geográfica del dispositivo Android (usando el GPS o las redes disponibles) y trabajar con mapas.
  • Administrador de sensores (Sensor Manager): permite gestionar todos los sensores hardware disponibles en el dispositivo Android: acelerómetro, giroscopio, sensor de luminosidad, sensor de campo magnético, brújula, sensor de presión, sensor de proximidad, sensor de temperatura, etc.
  • Cámara: proporciona acceso a las cámaras del dispositivo Android, tanto para tomar fotografías como para grabar vídeo.
  • Multimedia: conjunto de bibliotecas que permiten reproducir y visualizar audio, vídeo e imágenes en el dispositivo.


ENTORNO DE EJECUCION.
El entorno de ejecución de Android, aunque se apoya en las bibliotecas enumeradas anteriormente, no se considera una capa en sí mismo, dado que también está formado por bibliotecas. En concreto, las bibliotecas esenciales de Android, que incluyen la mayoría de la funcionalidad de las bibliotecas habituales de Java así como otras específicas de Android.
El componente principal del entorno de ejecución de Android es la máquina virtual Dalvik, componente que ejecuta todas y cada una de las aplicaciones no nativas de Android. Las aplicaciones se codifican normalmente en Java y son compiladas, pero no para generar un ejecutable binario compatible con la arquitectura hardware específica del dispositivo Android. En lugar de eso, se compilan en un formato específico para la máquina virtual Dalvik, que es la que las ejecuta. Esto permite compilar una única vez las aplicaciones y distribuirlas ya compiladas teniendo la total garantía de que podrán ejecutarse en cualquier dispositivo Android que disponga de la versión mínima del sistema operativo que requiera cada aplicación.
Aunque las aplicaciones se escriben en Java, Dalvik no es realmente una máquina virtual Java. Es decir, no es compatible con el bytecode Java (instrucciones ejecutables independientes de la arquitectura hardware) que ejecutan las máquinas virtuales Java normales. Java se usa únicamente como lenguaje de programación, pero los ejecutables que se generan con el SDK de Android no son ejecutables Java convencionales y, por lo tanto, no se pueden ejecutar en máquinas virtuales Java convencionales. Durante el proceso de compilación de los programas Java (normalmente archivos .java) sí que se genera, de forma intermedia, el bytecode habitual (archivos .class). Pero esos archivos son convertidos al formato específico de Dalvik en el proceso final (.dex, de Dalvik executable).
Google hace esto por una cuestión de optimización. Los archivos .dex son mucho más compactos que los .class equivalentes (hasta un 50% menos de tamaño), lo que permite ahorrar espacio en el teléfono (algo siempre escaso) y acelerar el proceso de carga. Además, a diferencia de las máquinas virtuales tradicionales, Dalvik se basa en registros en lugar de una pila para almacenar los datos, lo que requiere menos instrucciones. Esto permite ejecuciones más rápidas en un entorno con menos recursos.
Las aplicaciones Android se ejecutan cada una en su propia instancia de la máquina virtual Dalvik, evitando así interferencias entre ellas, y tienen acceso a todas las bibliotecas mencionadas antes y, a través de ellas, al hardware y al resto de recursos gestionados por el kernel.

BIBLIOTECAS.

La capa que se sitúa justo sobre el kernel la componen las bibliotecas nativas de Android (también mal llamadas librerías, por el término inglés libraries). Estas bibliotecas están escritas en C o C++ y compiladas para la arquitectura hardware específica del teléfono, tarea que normalmente realiza el fabricante, que también se encarga de instalarlas en el terminal antes de ponerlo a la venta. Su cometido es proporcionar funcionalidad a las aplicaciones, para tareas que se repiten con frecuencia, evitando tener que codificarlas cada vez y garantizando que se llevan a cabo de la forma más eficiente (en teoría, al menos).
Estas son algunas de las bibliotecas que se incluyen habitualmente:
  • Gestor de superficies (Surface Manager): se encarga de componer las imágenes que se muestran en la pantalla a partir de capas gráficas 2D y 3D. Cada vez que la aplicación pretende dibujar algo en la pantalla, la biblioteca no lo hace directamente sobre ella. En vez de eso, realiza los cambios en imágenes (mapas de bits) que almacena en memoria y que después combina para formar la imagen final que se envía a pantalla. Esto permite realizar con facilidad diversos efectos: superposición de elementos, transparencias, transiciones, animaciones, etc.
  • SGL (Scalable Graphics Library): desarrollada por Skia (empresa adquirida por Google en 2005) y utilizada tanto en Android como en Chrome (navegador web de Google), se encarga de representar elementos en dos dimensiones. Es el motor gráfico 2D de Android.
  • OpenGL | ES (OpenGL for Embedded Systems): motor gráfico 3D basado en las APIs (Application Program Interface) de OpenGL ES 1.0, 1.1 (desde la versión 1.6 de Android) y 2.0 (desde la versión 2.2 de Android). Utiliza aceleración hardware (si el teléfono la proporciona) o un motor software altamente optimizado (o eso dice Google) cuando no la hay.
  • Bibliotecas multimedia: basadas en OpenCORE, permiten visualizar, reproducir e incluso grabar numerosos formatos de imagen, vídeo y audio como JPG, GIF, PNG, MPEG4, AVC (H.264), MP3, AAC o AMR.
  • WebKit: motor web utilizado por el navegador (tanto como aplicación independiente como embebido en otras aplicaciones). Es el mismo motor que utilizan Google Chrome y Safari (el navegador de Apple, tanto en Mac como en el iPhone).
  • SSL (Secure Sockets Layer): proporciona seguridad al acceder a Internet por medio de criptografía.
  • FreeType: permite mostrar fuentes tipográficas, tanto basadas en mapas de bits como vectoriales.
  • SQLite: motor de bases de datos relacionales, disponible para todas las aplicaciones.
  • Biblioteca C de sistema (libc): está basada en la implementación de Berkeley Software Distribution (BSD), pero optimizada para sistemas Linux embebidos. Proporciona funcionalidad básica para la ejecución de las aplicaciones.

KERNEL DE LINUX.

El núcleo del sistema operativo Android es un kernel Linux versión 2.6, similar al que puede incluir cualquier distribución de Linux, como Ubuntu, solo que adaptado a las características del hardware en el que se ejecutará Android (normalmente, un smartphone).
Proporciona una capa de abstracción para los elementos hardware a los que tienen que acceder las aplicaciones. Esto permite que se pueda acceder a esos componentes sin necesidad de conocer el modelo o características precisas de los que están instalados en cada teléfono. De esta forma, si una aplicación necesita, por ejemplo, la brújula, podrá utilizar la que incluya el teléfono, sea cual sea. Para cada elemento hardware del teléfono existe un controlador (o driver) dentro del kernel que permite utilizarlo desde el software.
Además de proporcionar controladores hardware, el kernel se encarga de gestionar los diferentes recursos del teléfono (energía, memoria, …) y del sistema operativo en sí: procesos, elementos de comunicación (networking), etc.

jueves, 2 de marzo de 2017

Java

Java es un lenguaje de programación de propósito general, concurrente, orientado a objetos 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.1 2
El lenguaje de programación Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compañía Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems. Su sintaxis deriva en gran medida de C y C++, pero tiene menos utilidades de bajo nivel que cualquiera de ellos. Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier máquina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente.
La compañía Sun desarrolló la implementación de referencia original para los compiladores de Java, máquinas virtuales, y librerías de clases en 1991 y las publicó por primera vez en 1995. A partir de mayo de 2007, en cumplimiento con las especificaciones del Proceso de la Comunidad Java, Sun volvió a licenciar la mayoría de sus tecnologías de Java bajo la Licencia Pública General de GNU. Otros también han desarrollado implementaciones alternas a estas tecnologías de Sun, tales como el Compilador de Java de GNU y el GNU Classpath.

CARACTERISTICAS:
*Simple
*Orientada a Objetos
*Tipado estáticamente
*Distribuido
*Alto rendimiento: sobre todo con la aprición de hardware y mejor software
*Dinamico

VENTAJAS:
*El JDK es una herramienta libre de licencias
*Debido a qque existen diferentes productos de java, hay más proveedor de servicios.
*Sun saca al mercado cada 6 meses una nueva versión del JDK
*Es independiente de la plataforma de desarrollo.

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
*Algunas herramientas tienen un costo adicional
*Para manejo a bajo nivel deben usarse metodos nativos
*Puede ser que no haya JDBC Para baser comerciales

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 (Actualmente Sun Microsystems es administrado por Oracle Corporation).
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.
El NetBeans IDE soporta el desarrollo de todos los tipos de aplicación Java (J2SE, web, EJB y aplicaciones móviles). Entre sus características se encuentra un sistema de proyectos basado en Ant, control de versiones y refactoring.
NetBeans IDE 6.5.2, la cual fue publicada el 19 de noviembre de 2008, extiende las características existentes del Java EE (incluyendo Soporte a Persistencia, EJB 3 y JAX-WS). Adicionalmente, el NetBeans Enterprise Pack soporta el desarrollo de Aplicaciones empresariales con Java EE 5, incluyendo herramientas de desarrollo visuales de SOA, herramientas de esquemas XML, orientación a web servicies (for BPEL), y modelado UML. El NetBeans C/C++ Pack soporta proyectos de C/C++, mientras el PHP Pack, soporta PHP 5.
Modularidad. Todas las funciones del IDE son provistas por módulos. Cada módulo provee una función bien definida, tales como el soporte de Java, edición, o soporte para el sistema de control de versiones. NetBeans contiene todos los módulos necesarios para el desarrollo de aplicaciones Java en una sola descarga, permitiéndole al usuario comenzar a trabajar inmediatamente.
Sun Studio, Sun Java Studio Enterprise, y Sun Java Studio Creator de Sun Microsystems han sido todos basados en el IDE NetBeans.
Desde julio de 2006, NetBeans IDE es licenciado bajo la Common Development and Distribution License (CDDL), una licencia basada en la Mozilla Public License (MPL). En octubre de 2007, Sun anunció que NetBeans desde entonces se ofrecerá bajo licenciamiento dual de Licencia CDDL y la GPL versión 2.\

   
 Versiones NetBeans
VersiónFecha de lanzamiento
NetBeans 8.23 de octubre de 2016
NetBeans 8.14 de noviembre de 2015
NetBeans 8.0.15 de octubre de 2014
NetBeans 7.415 de octubre de 2013
NetBeans 7.3.112 de junio de 2013
NetBeans 7.321 de febrero de 2013
NetBeans 7.2noviembre de 2012
NetBeans 7.1.2Mayo de 2012
NetBeans 7.0.11 de agosto de 2011
NetBeans 7.020 de abril de 2011
NetBeans 6.9.14 de agosto de 2010
NetBeans 6.915 de junio de 2010
NetBeans 6.810 de diciembre de 2009
NetBeans 6.7.127 de julio de 2009
NetBeans 6.729 de junio de 2009
NetBeans 6.525 de noviembre de 2008
NetBeans 6.128 de abril de 2008
NetBeans 6.03 de diciembre de 2007
NetBeans 5.5.124 de mayo de 2007
NetBeans 5.530 de octubre de 2006
NetBeans 5.0enero de 2006
NetBeans 4.1mayo de 2005
NetBeans 4.0diciembre de 2004
NetBeans 3.6abril de 2004
NetBeans 3.5junio de 2003
Netbeans 3.4.1enero de 2003
Netbeans 3.4agosto de 2002
Netbeans 3.3.2julio de 2002
Netbeans 3.3.1febrero de 2002
Netbeans 3.3diciembre de 2001
Netbeans 3.2.12001
Netbeans 3.2marzo de 2001
Netbeans 3.1diciembre de 2000
VENTAJAS
*Amplio soporte de la comunidad
*Aceptable
*Múltiples lenguajes, multiplataforma
*Agregar y quitar módulos (Java, pyton, cordova)
*Java y JSP por excelencia

DESVENTAJAS
*Hecho en Java (lento)
*Entre más proyectos más lento
*Lee todo el código de los proyectos (más lento)

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. Reeemplazó 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).
CARACTERÍSTICAS:
*Herramienta para el desarrollo de software en lenguaje c++ destinado a dispositivos que funcionan bajo Symbain.Os
*Se usa tanto para desarrollar los teléfonos que incorporan dicho OS para las aplicaciones que ejecutan
*Es formada por una familia de IDES desarrollada por NOKIA, basada en eclipse, al que se han incorporado plug-ins para el desarrollo de Symbain OS

VENTAJAS
*Es muy potente en lo que se refiere a creación de sistemas complejos
*Actualmente, puede copilar y ejecutar código de C, ya viene con librería, para realizar esta labor.
*Existen muchos algoritmos cuyo pseudocódigo se encuentra ya en C++
*Permite elaborar aplicaciones sencillas como un "HOLA MUNDA" Hasta sistemas operativos y mucho más, todo esto dependiendo del lenguaje.

DESVENTAJAS
*Si existen errores en los pisos inferiores toda la parte superior se viene abajo
*No es recomendable para el desarrollo de paginas web
*Existen ya muchos entornos de programación