jueves, 29 de agosto de 2013

Cuota de las versiones

Descripción: http://bits.wikimedia.org/static-1.22wmf12/skins/common/images/magnify-clip.png
Distribución de la cuota de mercado entre las diferentes versiones.
Datos recogidos a principios del mes de junio de 2013
Versión
Nombre en código
Fecha de distribución
API level
Cuota (3 junio, 2013)
24 de Julio de 2013
18
0.0%
13 de noviembre de 2012
17
4.0%
9 de julio de 2012
16
29.0%
16 de diciembre de 2011
15
25.6%
15 de julio de 2011
13
0.1%
9 de febrero de 2011
10
36.4%
6 de diciembre de 2010
9
0.1%
20 de mayo de 2010
8
3.2%
26 de octubre de 2009
7
1.5%
15 de septiembre de 2009
4
0.1%
1.5
30 de abril de 2009
3
0.0%
Demanda de Oracle[editar · editar fuente]
A través de un comunicado de prensa, Oracle anunció el 12 de agosto de 2010 una demanda contra Google por violación de propiedad intelectual en el uso de Java en el sistema operativo Android. La razón citada: «Al desarrollar Android, Google a sabiendas, infringió directa y repetidamente la propiedad intelectual de Oracle en relación con Java. Esta demanda busca remediar apropiadamente su infracción».90
Sin embargo, el 1 de junio de 2012 se celebró el juicio fallando a favor de Google, siendo así que no violaba ninguna patente de Oracle.91

Java
Plataforma Java
Java
Desarrollador
Información general
Versión 7 Actualización 21 (1.7.0.21) (info)16 de abril de 2013; hace 3 meses
Descripción: Sí 
La plataforma Java es el nombre de un entorno o plataforma de computación originaria de Sun Microsystems, capaz de ejecutar aplicacionesdesarrolladas usando el lenguaje de programación Java u otros lenguajes que compilen a bytecode y un conjunto de herramientas de desarrollo. En este caso, la plataforma no es un hardware específico o un sistema operativo, sino más bien una máquina virtual encargada de la ejecución de las aplicaciones, y un conjunto de bibliotecas estándar que ofrecen una funcionalidad común.
La plataforma es así llamada la plataforma Java (antes conocida como Plataforma Java 2[1]), e incluye:
·         Plataforma Java, Edición Estándar (Java Platform, Standard Edition), o Java SE (antes J2SE).
·         Plataforma Java, Edición Empresa (Java Platform, Enterprise Edition), o Java EE (antes J2EE).
·         Plataforma Java, Edición Micro (Java Platform, Micro Edition), o Java ME (antes J2ME).
Desde 2006, la versión actual de la Plataforma Java Standard Edition se le conoce como Java SE 6 como versión externa, y 1.6 como versión interna. Sin embargo, se prefiere el término versión 6. Una visión general de la multitud de tecnologías que componen la Plataforma Java puede encontrarse en la página de documentación del JDK.
Índice
·         1 Tecnologías Java
·         2 Java Runtime Environment
·         3 Lenguajes
·         4 Plataformas similares
·         5 Véase también
·         6 Enlaces externos
Tecnologías Java
La Plataforma Java se compone de un amplio abanico de tecnologías, cada una de las cuales ofrece una parte del complejo de desarrollo o del entorno de ejecución en tiempo real. Por ejemplo, los usuarios finales suelen interactuar con la máquina virtual de Java y el conjunto estándar de bibliotecas. Además, las aplicaciones Java pueden usarse de forma variada, como por ejemplo ser incrustadas en una página web. Para el desarrollo de aplicaciones, se utiliza un conjunto de herramientas conocidas como JDK (Java Development Kit, o herramientas de desarrollo para Java).
Java Runtime Environment
Un programa destinado a la Plataforma Java necesita dos componentes en el sistema donde se va a ejecutar: una máquina virtual de Java (JVM), y un conjunto de bibliotecas para proporcionar los servicios que pueda necesitar la aplicación. La JVM que proporciona Sun Microsystems, junto con su implementación de las bibliotecas estándar, se conocen como Java Runtime Environment (JRE) o Entorno en tiempo de ejecución para Java. El JRE es lo mínimo que debe contener un sistema para poder ejecutar una aplicación Java sobre el mismo.
Máquina Virtual de Java
El corazón de la Plataforma Java es el concepto común de un procesador “virtual” que ejecuta programas escritos en el lenguaje de programación Java. En concreto, ejecuta el código resultante de la compilación del código fuente, conocido como bytecode. Este “procesador” es la máquina virtual de Java o JVM (Java Virtual Machine), que se encarga de traducir ( interpretar o compilar al vuelo) el bytecode en instrucciones nativas de la plataforma destino. Esto permite que una misma aplicación Java pueda ser ejecutada en una gran variedad de sistemas con arquitecturas distintas, siempre que con una implementación adecuada de la JVM. Este hecho es lo que ha dado lugar a la famosa frase: “write once, run anywhere” (escribir una vez, ejecutar en cualquier parte). La condición es que no se utilicen llamadas nativas o funciones específicas de una plataforma y aún así no se asegura completamente que se cumpla una verdadera independencia de plataforma.
Desde la versión 1.2 de JRE, la implementación de la máquina virtual de Sun incluye un compilador JIT (Just In Time). De esta forma, en vez de la tradicional interpretación del código bytecode, que da lugar a una ejecución lenta de las aplicaciones, el JIT convierte el bytecode a código nativo de la plataforma destino. Esta segunda compilación del código penaliza en cuanto a tiempo, pero el código nativo resultante se ejecuta de forma más eficaz y rápida que si fuera interpretado. Otras técnicas de compilación dinámica del código durante el tiempo de ejecución permiten optimizar más aún el código, dejando atrás la losa que sobre Java caía en cuanto a su lentitud y en sus últimas versiones la JVM se ha optimizado a tal punto que ya no se considera una plataforma lenta en cuanto a ejecución de aplicaciones.
Sin embargo, no se puede decir que Java pueda compilar el código con un máximo de eficiencia, y aprovechar los beneficios en cuanto a velocidad de código máquina nativo. Aunque los compiladores cada vez son más avanzados, no todas las bibliotecas de Java tienen asociado un código máquina equivalente que utilizar. Por ejemplo, la biblioteca “reflect”, que permite a los programadores de Java explorar instrucciones que sólo están disponibles en tiempo de ejecución, está pobremente representado por código máquina.
Java no fue la primera plataforma basada en el concepto de una máquina virtual, aunque es la que ha gozado de una mayor difusión. El empleo de máquinas virtuales se había centrado principalmente en el uso de emuladores para ayudar al desarrollo de hardware en construcción o sistemas operativos, pero la JVM se diseñó para ser implementada completamente en software, y al mismo tiempo hacer que fuera portable a todo tipo de hardware.
Bibliotecas de Java
En la mayoría de los sistemas operativos actuales, se ofrece una cantidad de código para simplificar la tarea de programación. Este código toma la forma, normalmente, de un conjunto de bibliotecas dinámicas que las aplicaciones pueden llamar cuando lo necesiten. Pero la Plataforma Java está pensada para ser independiente del sistema operativo subyacente, por lo que las aplicaciones no pueden apoyarse en funciones dependientes de cada sistema en concreto. Lo que hace la Plataforma Java, es ofrecer un conjunto de bibliotecas estándar, que contiene mucha de las funciones reutilizables disponibles en los sistemas operativos actuales.
Las bibliotecas de Java tienen tres propósitos dentro de la Plataforma Java. Al igual que otras bibliotecas estándar, ofrecen al programador un conjunto bien definido de funciones para realizar tareas comunes, como manejar listas de elementos u operar de forma sofisticada sobre cadenas de caracteres. Además, las bibliotecas proporcionan una interfaz abstracta para tareas que son altamente dependientes del hardware de la plataforma destino y de su sistema operativo. Tareas tales como manejo de las funciones de red o acceso a ficheros, suelen depender fuertemente de la funcionalidad nativa de la plataforma destino. En el caso concreto anterior, las bibliotecas java.net y java.io implementan el código nativo internamente, y ofrecen una interfaz estándar para que aplicaciones Java puedan ejecutar tales funciones. Finalmente, no todas las plataformas soportan todas las funciones que una aplicación Java espera. En estos casos, las bibliotecas bien pueden emular esas funciones usando lo que esté disponible, o bien ofrecer un mecanismo para comprobar si una funcionalidad concreta está presente.
Diseño y desarrollo

Descripción: http://bits.wikimedia.org/static-1.22wmf12/skins/common/images/magnify-clip.png
Teléfono móvil virtual con Android 1.5
Android es considerado como uno de los modelos de negocio más exitosos, pues su desarrollo estratégico contempla los factores que más se tienen en cuenta dentro de las herramientas y metodologías desarrollados por expertos en negocios, tales como el modelo Business Life por Santiago Restrepo B, Fluid minds por Patrick S, y Business model generation por Alexander Osterwalder. Este sistema operativo se ha convertido en un modelo a seguir por desarrolladores de tendencias y negocios de alto impacto.[cita requerida]
Android, al contrario que otros sistemas operativos para dispositivos móviles como iOS o Windows Phone, se desarrolla de forma abierta y se puede acceder tanto al código fuente65 como a la lista de incidencias66 donde se pueden ver problemas aún no resueltos y reportar problemas nuevos.
El que se tenga acceso al código fuente no significa que se pueda tener siempre la última versión de Android en un determinado móvil, ya que el código para soportar el hardware (controladores) de cada fabricante normalmente no es público, así que faltaría un trozo básico del firmware para poder hacerlo funcionar en dicho terminal, y porque las nuevas versiones de Android suelen requerir más recursos, por lo que los modelos más antiguos quedan descartados por razones de memoria (RAM), velocidad de procesador, etc.
En sus comienzos, Android era eminentemente un sistema operativo pensado para usar con teclado,67 y gracias a un cursor poder navegar entre las aplicaciones. Desde su comienzo, Android ha sido altamente personalizable. Poco después, antes del lanzamiento del primer teléfono Android, esta filosofía cambió para convertirse en eminentemente táctil, y poder competir contra el iPhone, presentado 1 año y 9 meses antes.
Aplicaciones
Las aplicaciones se desarrollan habitualmente en el lenguaje Java con Android Software Development Kit (Android SDK),68 pero están disponibles otras herramientas de desarrollo, incluyendo un Kit de Desarrollo Nativo para aplicaciones o extensiones en C o C++Google App Inventor, un entorno visual para programadores novatos y varios cruz aplicaciones de la plataforma web móvil marcos.69 y también es posible usar las bibliotecas Qt gracias al proyecto Necesitas SDK.
El desarrollo de aplicaciones para Android no requiere aprender lenguajes complejos de programación. Todo lo que se necesita es un conocimiento aceptable de Java y estar en posesión del kit de desarrollo de software o «SDK» provisto por Google el cual se puede descargar gratuitamente.70
Todas las aplicaciones están comprimidas en formato APK, que se pueden instalar sin dificultad desde cualquier explorador de archivos en la mayoría de dispositivos.
Google Play[editar · editar fuente]
Google Play es la tienda en línea de software desarrollado por Google para dispositivos Android. Una aplicación llamada "Play Store" que se encuentra instalada en la mayoría de los dispositivos Android y permite a los usuarios navegar y descargar aplicaciones publicadas por los desarrolladores. Google retribuye a los desarrolladores el 70% del precio de las aplicaciones. Esta aplicación remplazó a "Market".
Por otra parte, los usuarios pueden instalar aplicaciones desde otras tiendas virtuales (tales como Amazon Appstore71 72 o SlideME73 ) o directamente en el dispositivo si se dispone del archivo APK de la aplicación.74
Privacidad
Se han descubierto ciertos comportamientos en algunos dispositivos que limitan la privacidad de los usuarios, de modo similar a iPhone, pero ocurre al activar la opción «Usar redes inalámbricas» en el menú «Ubicación y seguridad», avisando que se guardarán estos datos, y borrándose al desactivar esta opción, pues se usan como caché y no como log tal como hace iPhone.75
Seguridad[editar · editar fuente]
Según un estudio de Symantec de 2013,76 demuestra que en comparación con iOS, Android es un sistema menos vulnerable. El estudio en cuestión habla de 13 vulnerabilidades graves para Android y 387 vulnerabilidades graves para iOS. El estudio también habla de los ataques en ambas plataformas, en este caso Android se queda con 113 ataques nuevos en 2012 a diferencia de iOS que se queda en 1 solo ataque. Aun así Google y Apple se empeñan cada vez más en hacer sus sistemas operativos más seguros incorporando más seguridad tanto en sus sistemas operativos como en sus mercados oficiales.

Tipografía
La tipografía de Android se llama Norad, solo usado en el texto del logo.79 Para Ice Cream Sandwich se introduce una tipografía llamada Roboto, que, según los propios creadores, está pensada para aprovechar mejor la legibilidad en los dispositivos de alta resolución
Cuota de mercado[editar · editar fuente]
La compañía de investigación de mercado Canalys estima que en el segundo trimestre de 2009, Android tendría 2,8% del mercado de teléfonos inteligentes en el ámbito mundial.80
En febrero de 2010, ComScore dijo que la plataforma Android tenía el 9% del mercado de teléfonos inteligentes en los Estados Unidos, como estaba tasado por los operadores. Esta cifra fue superior al estimado anterior de noviembre de 2009, el cual fue del 9%.81 Para finales del tercer trimestre de 2010, el mercado de Android en los Estados Unidos había crecido en un 21,4%.82
En mayo de 2010, Android superó en ventas a iPhone, su principal competidor. De acuerdo a un informe del grupo NPD, Android obtuvo un 28% de ventas en el mercado de los Estados Unidos, un 8% más que en el trimestre anterior. En el segundo trimestre de 2010, los dispositivos iOS incrementaron su participación en un 1%, indicando que Android está tomando mercado principalmente de RIM.15 Adicionalmente, los analistas apuntaron que las ventajas de que Android fuera un sistema multi-canal, multi-operador, le permitiría duplicar el rápido éxito que obtuvo el sistema Windows Mobile de Microsoft.83
A principios de octubre de 2010, Google agregó 20 países a su lista de lugares geográficos donde los desarrolladores pueden enviar aplicaciones. Para mediados de octubre, la compra de aplicaciones estaba disponible en un total de 32 países.84
En diciembre de 2011 Andy Rubin dijo que se activaban 700.000 dispositivos diariamente,85 anteriormente en julio de 2011 se declaró que se activan unos 550.000 dispositivos Android cada día.86 en comparación con diciembre de 2010 que se activaban 300.000 dispositivos móviles con Android,87 y los 100.000 que se activaban en mayo de 2010.88
En abril de 2013 se hizo público que Android alcanzó el 92% en ventas de nuevos smartphones para el trimestre comprendido entre diciembre 2012 y febrero 2013 en España, seguido de iOS con un 4.4%89