James Gosling

“Java debe ser un territorio neutral, la suiza de la tecnología informática.”

Michael Feldman

“Java es, en muchos sentidos, c++"

Andy Rubin

“Tendré un pie en el listo del móvil y un pie en el futuro, y puedo saltar atrás cuando el siguiente ecosistema emerges. Es un bonito lugar para ser.”

James Gosling

“La imitación es la forma más sincera de adulación —muchas gracias.”

Eagleson's Law

“Cualquier código tuyo que no hayas mirado en los últimos seis meses o más es como si lo hubiese escrito otro”

1

HISTORIA DE 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, en 2005, compró. 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.
Android ejecutándose en un Samsung Galaxy.

El éxito del sistema operativo se ha convertido en objeto de litigios sobre patentes en el marco de las llamadas «Guerras por patentes de teléfonos inteligentes» (en inglés, Smartphone patent wars) entre las empresas de tecnología. Según documentos secretos filtrados en 2013 y 2014, el sistema operativo es uno de los objetivos de las agencias de inteligencia internacionales.

La versión básica de Android es conocida como Android Open Source Project (AOSP).

El 25 de junio de 2014 en la Conferencia de Desarrolladores Google I/O, Google mostró una evolución de la marca Android, con el fin de unificar tanto el hardware como el software y ampliar mercados.

Historia

En octubre de 2003, en la localidad de Palo Alto, Andy Rubin, Rich Miner, Chris White y Nick Sears fundan Android Inc. con el objetivo de desarrollar un sistema operativo para móviles basado en Linux. En julio de 2005, la multinacional Google compra Android Inc. El 5 de noviembre de 2007 se crea la Open Handset Alliance, un conglomerado de fabricantes y desarrolladores de hardware, software y operadores de servicio. El mismo día se anuncia la primera versión del sistema operativo: Android 1.0 Apple Pie. Los terminales con Android no estarían disponibles hasta el año 2008.
Las unidades vendidas de teléfonos inteligentes con Android se ubican en el primer puesto en los Estados Unidos, en el segundo y tercer trimestres de 2010,  con una cuota de mercado de 43,6% en el tercer trimestre. A escala mundial alcanzó una cuota de mercado del 50,9% durante el cuarto trimestre de 2011, más del doble que el segundo sistema operativo (iOS de Apple, Inc.)

Logotipo de Android (2007-2014).
Tiene una gran comunidad de desarrolladores creando aplicaciones para extender la funcionalidad de los dispositivos. A la fecha, se ha llegado ya al 1.000.000 de aplicaciones disponibles para la tienda de aplicaciones oficial de Android: Google Play, sin tener en cuenta aplicaciones de otras tiendas no oficiales para Android como la tienda de aplicaciones Samsung Apps de Samsung, slideme de java y amazon appstore.  Google Play es la tienda de aplicaciones en línea administrada por Google, aunque existe la posibilidad de obtener software externamente. La tienda F-Droid es completamente de código abierto así como sus aplicaciones, una alternativa al software privativo. Los programas están escritos en el lenguaje de programación Java.26 No obstante, no es un sistema operativo libre de malware, aunque la mayoría de ello es descargado de sitios de terceros.
El anuncio del sistema Android se realizó el 5 de noviembre de 2007 junto con la creación de la Open Handset Alliance, un consorcio de 78 compañías de hardware, software y telecomunicaciones dedicadas al desarrollo de estándares abiertos para dispositivos móviles. Google liberó la mayoría del código de Android bajo la licencia Apache, una licencia libre y de código abierto.
La estructura del sistema operativo Android se compone de aplicaciones que se ejecutan en un framework Java de aplicaciones orientadas a objetos sobre el núcleo de las bibliotecas de Java en una máquina virtual Dalvik con compilación en tiempo de ejecución hasta la versión 5.0, luego cambio al entorno Android Runtime (ART).
Las bibliotecas escritas en lenguaje C incluyen un administrador de interfaz gráfica (surface manager), un framework OpenCore, una base de datos relacional SQLite, una Interfaz de programación de API gráfica OpenGL ES 2.0 3D, un motor de renderizado WebKit, un motor gráfico SGL, SSL y una biblioteca estándar de C Bionic. El sistema operativo está compuesto por 12 millones de líneas de código, incluyendo 3 millones de líneas de XML, 2,8 millones de líneas de lenguaje C, 2,1 millones de líneas de Java y 1,75 millones de líneas de C++.

VERSIONES DE ANDROID





Año 2008, Android 1.0 Apple Pie

El 22 de Octubre del año 2008 salió al mercado el HTC Dream, el primer smartphone con el sistema operativo Android 1.0 Apple Pie. En apenas 6 meses, el HTC Dream vendió más de 1 millón de terminales en Estados Unidos, y unos 100.000 terminales más en Reino Unido.

Android 1.0 Apple Pie era una versión muy sencilla de Android que no preocupó en exceso a sus competidores en aquel momento, aunque lo cierto es que incluía algunas de las características que aún se utilizan en versiones de Android posteriores y que son características de este sistema operativo, como:
Un menú desplegable para las notificaciones.
La posibilidad de contar con widgets (accesos directos) en el escritorio.
Integración con Google Mail (Gmail), Google Contacts y Google Calendar.
Navegador, Google Maps, Google Talk, soporte para cámaras y reproductor de Youtube.
Android Market, con un catálogo de aplicaciones completamente gratuitas.


Android 1.1 Banana Bread

En Febrero de 2009, poco después del primer lanzamiento de Android al mercado, Google nos sorprendía con el lanzamiento de Android 1.1 Banana Bread. Esta versión de Android apenas introdujo cambios, y fue más bien una versión dedicada a arreglar fallos y bugs de Android 1.0 Apple Pie.

Eso sí, la única cosa que se añadió en Android 1.1 Banana Bread fue algo que potenció el sistema operativo: las actualizaciones automáticas.
Android 1.5 Cupcake
Para dar salida a esta nueva herramienta, Google lanza en Abril de 2009 su siguiente versión: Android 1.5 Cupcake. A esta altura fue cuando comenzó a calar el hecho de que Google iba a utilizar nombres de postres para sus versiones de Android, además de que la salida sería en orden alfabético.

En Android 1.5 Cupcake nos encontramos con algunas novedades muy utilizadas aún a día de hoy:
Teclado táctil desplegable QWERTY con predicción de escritura en la pantalla.
La introducción de un widget de escritorio de Google para realizar búsquedas rápidas por Internet.
Bluetooth.
La aplicación Camcorder para grabar y reproducir vídeos.
Una interfaz mejorada para grabar y reproducir vídeos.
Una mejora del portapapeles.
SDK, el cual permitió el desarrollo de aplicaciones por parte de terceros.

Los smartphones que salieron a la venta con Android 1.5 Cupcake de fábrica fueron el HTC Magic y el HTC myTouch 3G, aunque sólo en Estados Unidos. Su precio y sus novedades le llevaron a volver a vender más de 1 millón de terminales en 6 meses.

Android 1.6 Donut
En Septiembre de 2009 aparece Android 1.6 Donut, una pequeña actualización que incluía un buen número de mejoras en la interfaz Android. Pero además, Android 1.6 Donut realizó cambios en el núcleo del sistema operativo para mejor:
Se añadió un soporte para CDMA/EVDO, VPN y 802.1x, el cual amplió el alcance de mercado de Android.
Se modificó el sistema operativo para añadir compatibilidad con diferentes resoluciones de pantallas.
Se añadió un motor de búsqueda de Internet y en el dispositivo integrado.
Se re-diseñó la interfaz de la aplicación de la cámara.
Nuevo diseño de Android Market.

Con soporte de Android 1.6 Donut, salió al mercado el Motorola Droid, pensado para competir con el iPhone. Su éxito fue rotundo, y en una semana se vendieron más de 250.000 terminales en Estados Unidos. Aquí es cuando la popularidad de Android se hizo patente.

Android 2.x Eclair
Siguiendo con el ritmo acelerado de Android, en Noviembre de 2009 salió a la luz Android 2.x Eclair, pensada y adaptada para terminales con un tamaño un poco mayor. Además, se introdujeron algunos cambios interesantes en la forma de funcionamiento del sistema operativo:
  • Soporte para multicuentas de usuario en un mismo terminal.
  • GPS gratuito a través de Google Maps Navigation.
  • Navegador de Internet actualizado con soporte para HTML5.
  • Introducción de la función “Text to Speech”.
  • Zoom digital en la cámara.
  • Pantalla de desbloqueo nueva.
  • Compatibilidad con Microsoft Exchange.
  • Soporte para más pantallas.
Los fabricantes utilizaron tanto la versión Android 2.0 Eclair como la versión Android 2.1 Eclair, aunque la 2.1 fue algo más popular.


Android 2.2 Froyo
En Mayo de 2010 veía la luz la siguiente versión del sistema operativo: Android 2.2 Froyo. El primer teléfono en recibir la actualización fue el HTC Nexus One, dejando claro que Google iba a dar prioridad a sus terminales Nexus en las actualizaciones de software. Android 2.2 Froyo incluía algunos cambios interesantes:
  • Pantalla de inicio completamente re-diseñada.
  • Galería de imágenes nueva.
  • La opción de hacer tethering.
  • Pantalla de desbloqueo mediante código PIN.
  • Grabación de vídeo en calidad 720p.
  • Mejora en la velocidad del sistema operativo.
  • Soporte para Flash 10.1.
  • Motor JavaScript V8 de Chrome utilizado en el navegador.
En 2010 salieron a la luz las primeras tablets equipadas con Android, incluyendo la Samsung Galaxy Tab original. La idea de Samsung era competir directamente con el iPad de Apple.

Android 2.3 Gingerbread
En Diciembre de 2010 Google lanzó la última actualización del año: Android 2.3 Gingerbread. Esta versión de Android supuso una revolución que la llevó a ser la versión de Android más utilizada en el mundo. Sorprendentemente, a día de hoy es la segunda versión más utilizada de Android, sólo por detrás de Android 4.x Jelly Bean. Los cambios de Android 2.3 Gingerbread fueron los siguientes:
  • Nuevo diseño estético más moderno.
  • Compatibilidad con pantallas de mayor tamaño y resoluciones más altas.
  • Soporte para conexión NFC.
  • Teclado mejorado.
  • Soporte para cámaras de fotografía frontales.
  • Sustitución de sistema de archivos YAFFS por el sistema ext4.
Al mismo tiempo, Google y Samsung sacaron a la venta el Google Nexus S, un terminal completamente táctil y el primero en retirar la bola de navegación de la carcasa.


Android 3.x Honeycomb
A estas alturas, Android ya era un sistema operativo para móviles ampliamente reconocido, y con la mejora y ampliación del mercado de tablets, se sacó una versión específica para este tipo de terminal: Android 3.x Honeycomb. Esta versión simplemente adaptó la interfaz de los teléfonos móviles a las tablets, y solamente era compatible con tablets. Posteriormente, se actualizaron a Android 3.1 Honeycomb y Android 3.2 Honeycomb, con mejoras en fallos y bugs.

En el CES 2011 se presentó la tablet Motorola Xoom, siendo esta la primera tablet equipada con Android 3.x Honeycomb, considerada como una de las mejores tablets del momento.

Android 4.0 Ice Cream Sandwich
Varios meses más tarde, en Octubre de 2011, aparecía Android 4.0 Ice Cream Sandwich. Esta versión del sistema operativo estaba basada en Android 3.x Honeycomb pero optimizada para ser utilizada en smartphones. Gracias a esta actualización, Android superó a BlackBerry en el mercado de los smartphones y se convirtió en el líder mundial de sistema operativo móvil utilizado.

Os dejamos algunas de las mejoras que incluyó Android 4.0 Ice Cream Sandwich:
  • Interfaz Holo.
  • Sistema de multitarea mejorado.
  • Sistema de notificaciones mejorado.
  • Nuevo diseño para la pantalla de inicio.
  • Posibilidad de transferir datos mediante NFC.
  • Desbloqueo del smartphone mediante reconocimiento facial.
  • Captura de pantalla.
  • Soporte MKV.
  • Soporte Stylus (lápiz táctil).
  • Nuevas aplicaciones de correo electrónico y calendario.
Ese mismo mes se presentó el Samsung Galaxy Nexus, el tercer miembro de la familia Nexus.




Año 2012, llega Android 4.1 Jelly Bean
Llegados a este punto, el lanzamiento de versiones de este sistema operativo es más pausado, y en 2012 sólo sale a la luz Android 4.1 Jelly Bean. Eso sí, los cambios que introdujo en el sistema operativo y su flexibilidad le han colocado como la versión de Android más utilizada del momento:
  • Introducción de Google Now, el asistente de voz de Google.
  • Introducción de navegador Google Chrome.
  • Mejora del rendimiento del sistema (Project Butter).
  • Búsqueda mediante el uso de la voz mejorada.
  • Mejora de las notificaciones interactivas del escritorio.
  • Re-ajuste del tamaño de los widgets.
  • Mejora en la predicción de escritura.
  • Posibilidad de dictado de voz.
Google se lanzó a la construcción de tablets durante el 2011. Su primera tablet fue la Asus Nexus 7, disponible sólo a través de Google Play.



En Noviembre de 2012 se actualiza la versión de Android Jelly Bean de la 4.1 a la 4.2, introduciendo mejoras en el rendimiento y pequeños cambios en la interfaz:
  • Nuevo panel de control.
  • Posibilidad de acceso a widgets desde la pantalla de bloqueo.
  • Soporte para streaming de vídeo y audio.
  • Soporte para más de un usuario en el mismo terminal.
  • Captura de fotografías de 360º.
  • Introducción de Gesture Mode para personas invidentes.
  • Re-diseño del reloj y de sus widgets.
Por la misma fecha, sale a la luz el Google Nexus 4 de la mano de LG y la tablet Nexus 10, la primera tablet de 10 pulgadas del mercado. Queda claro que Google tiene un interés en la producción de smartphones y tablets con sistema operativo “limpio” con la colaboración de distintas empresas.

Android 4.3 Jelly Bean
A mediados de año, en Julio de 2013, Google anuncia que sacará al mercado una última versión de Android 4.3 Jelly Bean, pensada para dar soporte a juegos y corregir algunos fallos. Lo cierto es que pese a no introducir demasiados cambios, su uso está muy extendido:
  • Mejora en el soporte multiusuario y multiperfil.
  • Compatible con TRIM.
  • Bluetooth Smart.
  • Introducción de Google Games.
  • Localización de Wi-Fi mejorada.
  • Soporte para OpenGL ES 3.0.
Al mismo tiempo que la salida al mercado de Android 4.3 Jelly Bean, se actualizó la tablet Nexus 7, con una reducción en el tamaño, una mejora en las prestaciones, pantalla FullHD y soporte LTE.

Android 4.4 KitKat
En Septiembre de 2013 se anunció la muy esperada versión de Android 4.4 KitKat. Originalmente, se había rumoreado mucho sobre si el siguiente nombre sería Key Lime Pie, pero parece que Google cedió a favor de KitKat tras llegar a un acuerdo con Nestlé.

La parte positiva de Android 4.4 KitKat es que está pensada para ser la versión unificadora de Android. A día de hoy hay muchas versiones de Android y son muy dispares, pero Google pretende que desde ahora, cualquier tipo de terminal que salga al mercado venga con Android 4.4 KitKat. Sus mejoras son:
  • Compatibilidad con terminales desde 512 MB de memoria RAM.
  • Reducción del consumo de batería.
  • Reducción de requisitos de hardware para funcionar.
  • Añadido de QuickOffice.
  • Incluye servicios de almacenamiento en la nube como Google Drive y Box.
  • Soporte para infrarrojos (posibilidad de utilizar el móvil como mando de la televisión).
  • Captura de pantalla en vídeo.
  • Aplicaciones desplegadas en pantalla completa.
Al mismo tiempo que se presentaba Android 4.4 KitKat, había una presentación del Google Nexus 5, el siguiente Nexus, y el cual está basado en el LG G2, aunque con un precio de salida al mercado mucho más reducido, como suele ser con los terminales de la familia Nexus.

Android 5.0 Lollipop
Que Google ha conseguido desarrollar un sistema operativo muy útil y eficiente para dispositivos móviles es algo indudable que nos hace disfrutar de la tecnología todos los días. Hemos pasado de utilizar un móvil solo para hablar y escribir mensajes a utilizarlo para casi todo: correo electrónico, chat, juegos, navegar por Internet… y muchísimas tareas más. Son los llamados smartphones los que han llegado para hacernos la vida más fácil gracias a su cada vez mayor utilidad y tenemos que agradecer su desarrollo al sistema operativo del robot verde, pues este es de los más utilizados por los fabricantes gracias a su facilidad de uso, compatibilidad… y muchas características más que lo hacen excelente. A continuación te contamos las mejoras y características nuevas que ha incluido esta nueva versión de Android.

SANDBOX O CAJA DE ARENA

Cuando hablamos de términos informáticos, los cuales no son pocos, debemos tener en cuenta uno muy importante, el cual se refiere a la seguridad de nuestros equipos y que probablemente salga en muchos temas o conversaciones entre informáticos y/o usuarios avanzados.

 Es lo que se denomina “Sandbox” o “Caja de arena”, un mecanismo de seguridad que nos permite el aislamiento de los programas para ser analizados en cuanto a comportamiento malintencionado, tal como el malware, spyware, etc…

En realidad, el objetivo de los programas de tipo Sandbox, permiten ejecutar cualquier programa en una porción “enjaulada” de nuestro disco duro, evitando la propagación del software malintencionado a otras partes del mismo.

Algunos ejemplos de programas que cumplen este objetivo son los siguientes:

Máquina virtual: Emula un ordenador completo, en el que un sistema operativo convencional se puede iniciar y ejecutar como lo haría en hardware real. El sistema operativo “invitado” es un recinto de seguridad, al no ejecutarse de forma nativa en la máquina, y sólo poder acceder a los recursos físicos mediante el programa emulador (algunos ejemplos son VMware Workstation, Windows Virtual PC o Virtual Box, entre otros).

Uno de los usos domésticos más extendidos es ejecutar sistemas operativos para probarlos. De esta forma podemos ejecutar un sistema operativo que queramos testear (Linux, por ejemplo) desde nuestro sistema operativo actual (Windows, por ejemplo) sin necesidad de instalarlo directamente en nuestro ordenador y sin miedo a que se desconfigure el sistema operativo primario.

Jaula: Conjunto de recursos limitados e impuestos a los programas por el núcleo del sistema operativo. Puede incluir restricciones de ancho de banda, cuotas de disco, acceso a la red, así como un listado de nombres de archivos restringidos, como los de sistema.

Estas jaulas se generan desde el propio sistema operativo o bien con la instalación de programas, como Sandboxie , que ejecutan las aplicaciones en un espacio aislado, que les impide realizar cambios permanentes en otros programas y datos en el ordenador.
Sandboxie evita desde la zona que controla toda inyección en el kernel de Windows (driver, DLL). Así, actúa de cierta manera (pero a un nivel distinto) como el sistema PatchGuard de Windows Vista 64 bits impidiendo el funcionamiento de todo software en modo supervisor, sea malicioso o no.

Applet: Componente de una aplicación que se ejecuta en el contexto de otro programa (por ejemplo: navegador web).

El applet debe ejecutarse en un contenedor, que lo proporciona un programa anfitrión, mediante un plugin o complemento (aplicación que se relaciona con otra para aportarle una función nueva y generalmente muy especifica). A diferencia de un programa, un applet no puede ejecutarse de manera independiente. Ejemplos comunes de applets son las animaciones Flash o el Windows Media Player utilizado para desplegar archivos de vídeo incrustados en los navegadores web.

Por tanto, siempre que necesites instalar un software cuya procedencia es dudosa, mejor que arriesgarse a hacerlo en nuestro propio ordenador, es preferible utilizar uno de los métodos indicados.

Si lo que se va a probar es una sola aplicación podría utilizarse un método empleado por el programa Sandboxie, o si lo que se va a evaluar es un nuevo entorno o sistema operativo lo mas indicado sería una máquina virtual.

ECLIPSE

Eclipse es una plataforma de software 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.

Eclipse es también una comunidad de usuarios, extendiendo constantemente las áreas de aplicación cubiertas. Un ejemplo es el recientemente creado Eclipse Modeling Project, cubriendo casi todas las áreas de Model Driven Engineering.

Eclipse fue desarrollado originalmente por IBM como el sucesor de su familia de herramientas para VisualAge. Eclipse es ahora desarrollado por la Fundación Eclipse, una organización independiente sin ánimo de lucro que fomenta una comunidad de código abierto y un conjunto de productos complementarios, capacidades y servicios.

Eclipse fue liberado originalmente bajo la Common Public License, pero después fue re-licenciado bajo la Eclipse Public License. La Free Software Foundation ha dicho que ambas licencias son licencias de software libre, pero son incompatibles con Licencia pública general de GNU (GNU GPL).

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".
En cuanto a las aplicaciones clientes, Eclipse provee al programador con frameworks muy ricos para el desarrollo de aplicaciones gráficas, definición y manipulación de modelos de software, aplicaciones web, etc. Por ejemplo, GEF (Graphic Editing Framework - Framework para la edición gráfica) es un plugin de Eclipse para el desarrollo de editores visuales que pueden ir desde procesadores de texto wysiwyg hasta editores de diagramas UML, interfaces gráficas para el usuario (GUI), etc. Dado que los editores realizados con GEF "viven" dentro de Eclipse, además de poder ser usados conjuntamente con otros plugins, hacen uso de su interfaz gráfica personalizable y profesional.

URL Y URI


URL
Un Localizador Uniforme de Recursos LUR (más conocido por la sigla URL, del inglés Uniform Resource Locator) es un identificador de recursos uniforme (Uniform Resource Identifier, URI) cuyos recursos referidos pueden cambiar, esto es, la dirección puede apuntar a recursos variables en el tiempo. Están formados por una secuencia de caracteres, de acuerdo a un formato modélico y estándar, que designa recursos en una red, como Internet.

Los LUR fueron una innovación en la historia de Internet. Fueron usadas por primera vez por Tim Berners-Lee en 1991, para permitir a los autores de documentos establecer hiperenlaces en la World Wide Web (WWW). Desde 1994, en los estándares de Internet, el concepto de LRU ha sido incorporado dentro del más general de URI, pero el término URL todavía se utiliza ampliamente.

Aunque nunca fueron mencionadas como tal en ningún estándar, mucha gente cree que las iniciales LRU significan universal -en lugar de 'uniform'- resource locator (localizador universal de recursos). Esta se debe a que en 1990 era así, pero al unirse las normas "Functional Recommendations for Internet Resource Locators" (RFC 1736) y "Functional Requirements for Uniform Resource Names" (RFC 1737) pasó a denominarse "Identificador Uniforme de Recursos" (RFC 2396). Sin embargo, la letra "U" en URL siempre ha significado "uniforme".

El LRU es una cadena de caracteres con la cual se asigna una dirección única a cada uno de los recursos de información disponibles en Internet. Existe un URL único para cada página de cada uno de los documentos de la WWW, para todos los elementos de Gopher y todos los grupos de debate Usenet, y así sucesivamente.

El LRU de un recurso de información es su dirección en Internet, la cual permite que el navegador web la encuentre y la muestre de forma adecuada. Por ello, el URL combina el nombre de la computadora que proporciona la información, el directorio donde se encuentra, el nombre del archivo, y el protocolo a usar para recuperar los datos para que no se pierda alguna información sobre dicho, factor que se emplea para el trabajo.
Se puede entender que una URI = URL + URN.

Formato general

El formato general de un URL es:
esquema://máquina.directorio.archivo

También pueden añadirse otros datos:
esquema://usuario:contraseña@máquina:puerto.directorio.archivo

Por ejemplo: http://www.wikipedia.org/

La especificación detallada se encuentra en la RFC 1738, titulada Uniform Resource Locators.

Esquema URL

Un URL se clasifica por su esquema, que generalmente indica el protocolo de red que se usa para recuperar, a través de la red, la información del recurso identificado. Un URL comienza con el nombre de su esquema, seguido por dos puntos, seguido por una parte específica del esquema.

Algunos ejemplos de esquemas URL:
  • http - recursos Hypertext Transfer Protocol (HTTP).
  • https - HTTP sobre Secure Sockets Layer (SSL).
  • ftp - File Transfer Protocol.
  • mailto - direcciones de correo electrónico (e-mail).
  • ldap - búsquedas Lightweight Directory Access Protocol (LDAP).
  • file - recursos disponibles en el sistema local, o en una red local.
  • news - grupos de noticias Usenet (newsgroup).
  • gopher - el protocolo Gopher (en desuso).
  • telnet - el protocolo Telnet.
  • data - el esquema para insertar pequeños trozos de contenido en los documentos esquema de URI de datos (Data: URL).
Algunos de los esquemas URL, como los populares "mailto", "http", "ftp", y "file", junto a los de sintaxis general URL, se detallaron por primera vez en 1994, en el Request for Comments (RFC 1630), sustituido un año después por los más específicos RFC 1738 y RFC 1808.

Todavía son válidos algunos de los esquemas definidos en el primer RFC, mientras que otros son debatidos o han sido refinados por estándares posteriores. Mientras tanto, la definición de la sintaxis general de los URL se ha escindido en dos líneas separadas de especificación de URI: RFC 2396 (1998) y RFC 2732 (1999), ambos ya obsoletos pero todavía ampliamente referidos en las definiciones de esquemas URL.


URI

Un identificador de recursos uniforme o URI —del inglés uniform resource identifier— es una cadena de caracteres que identifica los recursos de una red de forma unívoca. La diferencia respecto a un localizador de recursos uniforme (URL) es que estos últimos hacen referencia a recursos que, de forma general, pueden variar en el tiempo.

Normalmente estos recursos son accesibles en una red o sistema. Los URI pueden ser localizador de recursos uniforme (URL), uniform resource name (URN), o ambos.

Un URI consta de las siguientes partes:
Esquema: nombre que se refiere a una especificación para asignar los identificadores, e.g. urn:, tag:, cid:. En algunos casos también identifica el protocolo de acceso al recurso, por ejemplo http:, mailto:, ftp:, etc.
Autoridad: elemento jerárquico que identifica la autoridad de nombres (por ejemplo //www.example.com).
Ruta: Información usualmente organizada en forma jerárquica, que identifica al recurso en el ámbito del esquema URI y la autoridad de nombres (e.g. /domains/example).
Consulta: Información con estructura no jerárquica (usualmente pares "clave=valor") que identifica al recurso en el ámbito del esquema URI y la autoridad de nombres. El comienzo de este componente se indica mediante el carácter '?'.
Fragmento: Permite identificar una parte del recurso principal, o vista de una representación del mismo. El comienzo de este componente se indica mediante el carácter '#'.

Aunque se acostumbra llamar URL a todas las direcciones web, URI es un identificador más completo y por eso es recomendado su uso en lugar de la expresión URL.

Un URI se diferencia de un URL en que permite incluir en la dirección una subdirección, determinada por el “fragmento”.

APLICACIONES NATIVAS

Las aplicaciones móviles nativas son las que se desarrollan específicamente para cada sistema operativo, iOS, Android o Windows Phone, adaptando a cada uno el lenguaje con el que se desarrolla: lenguaje Objective-C para iOS, Java para Android, y .Net para Windows Phone.

Es decir, hay que realizar el desarrollo de aplicaciones móviles para cada plataforma. 

Este tipo de aplicaciones se adapta al 100% con las funcionalidades y características del dispositivo obteniendo así una mejor experiencia de uso. Sin embargo, el desarrollo de una aplicación nativo comporta un mayor coste, puesto que si se desea realizar una aplicación multiplataforma se ha de realizar una nueva versión para cada sistema operativo, multiplicando así los costes de desarrollo. 

Algunos ejemplos de aplicación nativa, serían Whatsapp o Facebook. 

Entre las ventajas de este tipo de aplicaciones destacan que aprovechan las funcionalidades del dispositivo y que pueden funcionar sin conexión a Internet.

Además, están presentes en Apple Store y en Google Play, por lo que, hablando en términos de marketing, ganan en visibilidad.

Sin embargo, el desarrollo y las actualizaciones de estas aplicaciones son costosos.

Un ejemplo de app nativa es Whatsapp.

OPEN HANDSET ALLIANCE


La Open Handset Alliance (OHA) es una alianza comercial de 84 compañías que se dedica a desarrollar estándares abiertos para dispositivos móviles. Algunos de sus miembros son Google, HTC, Dell, Intel, Motorola, Qualcomm, Texas Instruments, Samsung, LG, T-Mobile, Nvidia y Wind River Systems.


La OHA se fundó el 5 de noviembre de 2007, liderada por Google con otros 34 miembros entre los que se incluían fabricantes de dispositivos móviles, desarrolladores de aplicaciones, algunos operadores de comunicaciones y fabricantes de chips.

Productos
Al mismo tiempo que se anunciaba la formación de la Open Handset Alliance el 5 de noviembre de 2007, la OHA presentó Android, una plataforma de código libre para teléfonos móviles basada en el núcleo operativo Linux. Una beta del SDK fue lanzada para desarrolladores el 12 de noviembre de 2007. Basado en una licencia de código libre, compite contra otras plataformas móviles propietarias de Apple, Microsoft, Nokia, Palm, BlackBerry (compañía) y Bada.

El primer teléfono comercialmente disponible con Android fue el T-Mobile G1 (también conocido como HTC Dream). Fue aprobado por la FCC el 18 de agosto de 2008, y salió a la venta el 22 de octubre

WEBKIT

WebKit es una plataforma para aplicaciones que funciona como base para el navegador web Safari, Opera, hasta que cambio a Blink, Epiphany, Maxthon, Midori, QupZilla entre otros. Está basado originalmente en el motor de renderizado KHTML del navegador web del proyecto KDE, Konqueror. WebKit logra 100/100 en la prueba Acid3 desde el 26 de marzo de 2008. Desde junio de 2005 es software libre bajo las licencias GNU GPL, GNU LGPL y BSD.

La API de WebKit está desarrollada en Objective-C y posibilita interactuar con un servidor web para recuperar y renderizar páginas web, descargar archivos, y administrar plugins.
Webkit incluye dos frameworks de más bajo nivel: WebCore, un analizador sintáctico y motor de renderizado de HTML basado en KHTML, y JavaScriptCore, un intérprete de JavaScript basado en KJS.
Con los lanzamientos pre-alfa se está incluyendo un depurador de Javascript llamado Drosera.

Historia

El código que se convertiría en WebKit se inició en 1998 como parte de un proyecto KDE de renderizado HTML denominado KHTML y del motor JavaScript de KDE (KJS). El nombre del proyecto y 'WebKit' fueron creados en 2002, cuando Apple Inc. creó un «fork» (bifurcación) de KHTML y KJS. Los desarrolladores de Apple explicaron en un correo electrónico a los desarrolladores de KDE que estos motores permiten un desarrollo más fácil que otras tecnologías por el hecho de ser pequeños (menos de 140.000 líneas de código), diseñados limpiamente y compatibles con las normas. KHTML y KJS fueron portados a Mac OS X con la ayuda de una biblioteca adaptada y renombrada como WebCore y JavaScriptCore. JavaScriptCore se anunció en un correo electrónico a una lista de correo de KDE en junio de 2002, junto con la primera versión de los cambios de Apple.

¿QUÉ ES UNA ACTIVITY?

El término Activity (actividad) es de los primeros que debemos entender a la perfección en Android, ya que es de lo más básico y se usa muchísimo en las aplicaciones.
Podemos decir que todas las pantallas de una aplicación son una “activity”. Más adelante vamos a ver que existen algunas variaciones, pero por ahora digamos que todas lo son. Es decir, que si una aplicación tiene cinco pantallas, tiene 5 “Actividades” o activities.

Las activities están conformadas por dos partes: la parte lógica y la parte gráfica.
La parte lógica es una archivo .java que es la clase que se crea para poder manipular, interactuar y colocar el código de esa actividad.
La parte gráfica es un XML que tiene todos los elementos que estamos viendo de una pantalla declarados con etiquetas parecidas a las del HTML, es decir, que el diseño de una aplicación en Android se hace similar a una página web; XML es un primo de HTML.

Resumiendo, una actividad está conformada por la parte lógica (un archivo Java) y la parte gráfica (un archivo XML).

Adentrando más en el tema, ya sabemos que tenemos un archivo .java, esto quiere decir que tenemos una clase principal, al ser una actividad extiende de la clase Activity (por eso el nombre) que nos proporciona Android para crear actividades con sus métodos asignados.

ACERCA DE LAS APP.


Desde la perspectiva de un usuario, puede ser difícil percibir la diferencia entre un sitio web y una aplicación web. Según el Diccionario Oxford en línea, nos enteramos que una aplicación es "un programa o conjunto de programas para ayudar al usuario de un ordenador para procesar una tarea específica".
Una aplicación (también llamada App) es simplemente un programa informático creado para llevar a cabo o facilitar una tarea en un dispositivo informático. Cabe destacar que aunque todas las aplicaciones son programas, no todos los programas son aplicaciones. Existe multitud de software en el mercado, pero sólo se denomina así a aquel que ha sido creado con un fin determinado, para realizar tareas concretas. No se consideraría una aplicación, por ejemplo, un sistema operativo, ni una suite, pues su propósito es general.

USOS Y CLASIFICACIÓN DE LAS APP.
Las aplicaciones nacen de alguna necesidad concreta de los usuarios, y se usan para facilitar o permitir la ejecución de ciertas tareas en las que un analista o un programador han detectado una cierta necesidad. Pero las aplicaciones también pueden responder a necesidades lúdicas, además de laborales (todos los juegos, por ejemplo, son considerados aplicaciones). Se suele decir que para cada problema hay una solución, y en informática, para cada problema hay una aplicación.

Naturalmente, el campo de las aplicaciones es tan extenso, y las funciones tan dispares, que se han creado numerosas clasificaciones, según varios criterios. Así, por ejemplo, dependiendo del uso que se le vaya a dar, podemos tener aplicaciones profesionales o personales. También podemos hablar de aplicaciones para Windows, Linux, Android, Apple, PC, móvil, según el sistema operativo o la plataforma que vayamos a usar. Según su finalidad, pueden ser de entretenimiento, de negocios, empresariales, de sonido, gráficas, de edición, web, didácticas... e incluso según la rama de las ciencias en el que se usen podemos decir que hay aplicaciones de ingeniería, de telecomunicaciones, matemáticas... y un largo etcétera.



BYTECODE JAVA

El bytecode Java es el tipo de instrucciones que la máquina virtual Java espera recibir, para posteriormente ser compiladas a lenguaje de máquina, mediante un compilador JIT a la hora de su ejecución. Usualmente es el resultado de utilizar un compilador del lenguaje de programación Java (como javac), pero puede ser generado desde otros compiladores.
El bytecode un código intermedio más abstracto que el código máquina. Habitualmente es tratado como un archivo binario que contiene un programa ejecutable similar a un módulo objeto, que es un archivo binario producido por el compilador cuyo contenido es el código objeto o código máquina.
El bytecode recibe su nombre porque usualmente cada código de operación tiene una longitud de un byte, si bien la longitud del código de las instrucciones varía. Cada instrucción tiene un código de operación entre 0 y 255 seguido de parámetros tales como los registros o las direcciones de memoria. Esta sería la descripción de un caso típico, si bien la especificación del bytecode depende ampliamente del lenguaje.


FUNCIONAMIENTO.
Como código intermedio, se trata de una forma de salida utilizada por los implementadores de lenguajes para reducir la dependencia respecto del hardware específico y facilitar la interpretación. Menos frecuentemente se utiliza el bytecode como código intermedio en un compilador. Algunos sistemas, llamados traductores dinámicos o compiladores just-in-time traducen el bytecode a código máquina inmediatamente antes de su ejecución para mejorar la velocidad de ejecución.

Los programas en bytecode suelen ser interpretados por un intérprete de bytecode (en general llamado máquina 
virtual, dado que es análogo a un ordenador). Su ventaja es su portabilidad: el mismo código binario puede ser ejecutado en diferentes plataformas y arquitecturas. Es la misma ventaja que presentan los lenguajes interpretados. Sin embargo, como el bytecode es en general menos abstracto, más compacto y más orientado a la máquina que un programa pensado para su modificación por humanos, su rendimiento suele ser mejor que el de los lenguajes interpretados. A causa de esa mejora en el rendimiento, muchos lenguajes interpretados, de hecho, se compilan para convertirlos en bytecode y después son ejecutados por un intérprete de bytecode. Entre esos lenguajes se encuentran Perl, Gambas, PHP y Python. En el caso de Java se suele trasmitir como bytecode a la máquina receptora, que utiliza un compilador just-in-time para compilar el bytecode en código máquina nativo antes de su ejecución, ahorrando así procesos de interpretación.

PLAY STORE


Google Play Store (anteriormente Android Market) es una plataforma de distribución digital de aplicaciones móviles para los dispositivos con sistema operativo Android, así como una tienda en línea desarrollada y operada por Google. Esta plataforma permite a los usuarios navegar y descargar aplicaciones (desarrolladas mediante Android SDK), juegos, música, libros, revistas y películas. También se pueden adquirir dispositivos móviles como ordenadores Chromebook, teléfonos inteligentes Nexus, Google Chromecast, entre otros.

Las aplicaciones se encuentran disponibles de forma gratuita, así como también con costo. Pueden ser descargadas directamente desde un dispositivo con Android a través de la aplicación móvil Play Store. Es posible también instalar estas aplicaciones directamente y sin necesidad de una computadora, en dispositivos con sistema operativo BlackBerry 10.

En marzo de 2012, con la fusión de Android Market con Google Music, el servicio fue renombrado a Google Play, como resultado de la nueva estrategia de distribución digital de Google. En julio de 2013, se anunció que Google Play había sobrepasado un millón de aplicaciones publicadas y se habían registrado más de 50 mil millones de descargas.


CLASIFICACIÓN DE APLICACIONES.
Google Play, al igual que su competidor App Store tiene sistema de clasificación por edades pero desde el 8 de junio de 2015 las apps son clasificadas por sistemas de clasificación por edades de diferentes regiones y países, siempre y cuando no sean sobrescritas por normas como ESRB o PEGI.

Para todos: contenido sin restricciones de edad (Equivale a 4+ de app store)
Madurez baja: recomendado para mayores de 6 o 7 años (equivale a 9+ de app store)
Madurez media: Recomendado para mayores de 12 años (equivale a 12+ de app store)
Madurez alta: Recomendado para mayores de 17 años (equivale a 17+ de app store)

INTERFAZ.
Google Play tiene un acceso fácil y rápido a sus aplicaciones. Las aplicaciones son creadas por desarrolladores de todo el mundo y posteriormente puntuadas por los usuarios de Android.
El menú tiene las siguientes opciones:

Mostrado: avanza por los iconos de la parte superior para ver las aplicaciones mostradas.
Aplicaciones: examina todas las aplicaciones o busca aplicaciones por categorías.
Juegos: examina todos los juegos o busca juegos por categorías.
Búsqueda: busca aplicaciones en Google Play.
Mis descargas: visualiza las aplicaciones que están instaladas en el dispositivo.

Las categorías de juegos y aplicaciones del menú principal proporcionan submenús para que la búsqueda sea más sencilla. Los usuarios tienen la posibilidad de valorar las aplicaciones mediante un sistema similar a YouTube, con una escala del 1 al 5, también ofrece la posibilidad de poner comentarios sobre la aplicación. La novedad de la nueva versión de Google Play es también la posibilidad de añadir capturas de pantalla de su aplicación.