Programación en android

De WikiEducator
Saltar a: navegación, buscar




Qué es android

  • Es una plataforma software y un Sistema Operativo basada en el núcleo de Linux.
  • Aplicado a un subconjunto de dispositivos móviles y tablet;
  • Como cualquier sistema operativo permite gestionar y controlar el hardware del dispositivo, como GPS, cámara de fotos,etc;
  • También la ejecución de programas en dicho entorno.
  • Para gestionar hardware tan variado (el que pueden contener dispositivos móviles), se usan bibliotecas desarrolladas o adaptadas por principalmente por Google.
  • Para el desarrollo de aplicaciones se usa el lenguaje de programación Java

Código abierto


Android es una plataforma de código abierto.

  • Esto quiere decir, que cualquier desarrollador puede crear y desarrollar aplicaciones escritas con lenguaje C u otros lenguajes y compilarlas a código nativo de ARM (API de Android)
  • Android se puede desarrollar usando diferentes lenguajes :C, VisualBasic (.NET), C++, C#, QT (Que no deja de ser C++)

Entornos de desarrollo

  • Existen diferentes entornos para desarrollar aplicaciones en android.
  1. Basic4Android
  2. Visual Studio con SDK: Android de Mono. C y C#
  3. App Inventor
  4. Live Code Entorno para desarrollar para aplicaciones móviles de diferentes plataformas
  5. In Design CS6
  6. En java con IDE Eclipse, Intellij Idea, y ahora en pruebas Android studio

Comunidad de desarrolladores de Android

Stack Overflow
un sitio colaborativo de preguntas y respuestas para desarrolladores
Los desarrolladores votan las respuestas lo cual da confianza sobre las buenas respuestas
Google Android Training
Tenemos numerosas clases agrupadas por temas
Tenemos un manual de como empezar e ir avanzando
Es una importante y garantizada fuente de información
Android Discuss
es un grupo de debate y discusión alojado en google; Seguido muy de cerca por el equipo de Android en Google
Buen sitio para aclarar dudas y aprender trucos y consejos.

Historia de Android

  1. Inicialmente desarrodo por Android Inc., una pequeña compañía o startup (así se conoce a los negocios con amplias posibilidades de crecimiento el EEUU) fundada en California en 2003
  2. En julio de 2005, Google adquirió Android Inc.
  3. En diciembre de 2006 aumentó notablemente la especulación sobre que el sistema Android de Google entraría en el mercado de la telefonía móvil.
  4. En septiembre de 2007, se conocía que Google había solicitado diversas patentes en el área de la telefonía móvil.
  5. El 5 de noviembre de 2007 se creó la Open Handset Alliance, un consorcio de más de 48 compañias de software y hardware que concluyeron la finalidad de desarrollar est´ndares abiertos para dispositivos móviles.
  6. La Open Handset Alliance, la OHA estrenó su primer producto, Android, una plataforma para dispositivos móviles construida sobre la versión 2.6 de Linux.
  7. El 9 de diciembre de 2008, se anunció que 14 nuevos miembros se unirían al proyecto Android, incluyendo PacketVideo, ARM Holdings, Atheros Communications, Asustek, Garmin, Softbank, Sony Ericsson, Toshiba, Vodafone y ZTE.

Versiones de Android

breve historia de las versiones de android
Versión de android API Nombre en clave
Android 4.3 18 JELLY_BEAN
Android 4.2 17 JELLY_BEAN
Android 4.2 17 JELLY_BEAN_MR1
Android 4.1, 4.1.1 16 JELLY_BEAN
Android 4.0.3, 4.0.4 15 ICE_CREAM_SANDWICH_MR1
Android 4.0, 4.0.1, 4.0.2 14 ICE_CREAM_SANDWICH
Android 3.2 13 HONEYCOMB_MR2
Android 3.1.x 12 HONEYCOMB_MR1
Android 3.0.x 11 HONEYCOMB
Android 2.3.4-Android 2.3.3 10 GINGERBREAD_MR1

Versiones de Android (Continuacion)

breve historia de las versiones de android
Versión de android API Nombre en clave
Android 2.3.2-Android 2.3.1-Android 2.3 9 GINGERBREAD
Android 2.2.x 8 FROYO
Android 2.1.x 7 ECLAIR_MR1
Android 2.0.1 6 ECLAIR_0_1
Android 2.0 5 ECLAIR
Android 1.6 4 DONUT
Android 1.5 3 CUPCAKE
Android 1.1 2 BASE_1_1
Android 1.0 1 BASE

Qué version usan los dispositivos

  • A la hora de desarrollar una aplicación habría que ver qué versiones tienen los dispositivos
  • Google facilita un estudio con esta información
  • Conviene echarle un vistazo
http://developer.android.com/about/dashboards/index.html
  • Esto es muy importante ya que nosotros dependemos de versiones de API
  • si mi aplicación usa API de version 15 por ejemplo, no se podrá ejecutar en dispositivos que tengan API de inferior version
  • Solución de compromiso
  • No usar API de versión moderna implica llegar a más público
  • No usar API de versión moderna implica no poder usar nuevas funionalidades

Carácterísticas de Android

Almacenamiento
Utiliza SQLite: base de datos relacional y ligera.
Conectividad
Soporta las siguientes tecnologías para conexiones
GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, incluyendo A2DP, AVRCP), Wi-Fi, LTE, WiMAX
Mensajería
tanto SMS como MMS
Navegador Web
Basado en código abierte de WebKit junto con JavaScript V8 de Chrome

Carácterísticas de Android

Multimedia
Soporte para medios con formatos comunes de audio, video e imágenes planas
incluye los siguientes soportes

H.263, H.264(1) ,MPEG-4 SP, AMR, AMR-WB(2), AAC, HE-AAC(1), MP3, MIDI, Ogg Vorgis, WAV, JPEG, PNG, GIF Y BMP

  1. En contenedor 3GP o MP4
  2. En contenedor 3GP
Soporte Harware (Siempre que el dispositivo disponga del hardware)
Sensor acelerómetro, cámaram brújula digital, sensor de proximidad y GPS

Carácterísticas de Android

Multipantalla táctil multipunto
entre 5 y 10 puntos de reconocimeintos simultáneos
Multitarea
Soporte Flash
La versión 2.1 de Android soporta Flash 10.1
Tethering
Soporta el uso compartido de conexiones a Internet como un punto de acceso por cable/inalámbrico
Framework de aplicaciones
permite el reemplazo y la reutilización de los componentes.
Máquina virtual Dalvik
Base de llamadas de instancias muy similar a Java. Para entornos de desarrollo

Arquitectura de Android

ArquitecturaAndroid.png

Arquitectura del sistema operativo Android

  • El sistema operativo Android se divide en 5 secciones de 4 niveles principales

Consta de los siguientes niveles que posteriormente comentaremos

  1. Nivel de aplicación
  2. Nivel de arquitectura de software de la aplicación o framework de aplicaciones
  3. Nivel de librerías (Formado por librerías y y nivel de tiempo de ejecución de android
  4. Nivel de Kernel de Linux

NIVEL DE APLICACIONES

  • Este nivel referencia a todas las aplicaciones que se distribuyen con el sistema operativo
  • Cada una de ellas ha de correr en una máquina virutal Dalvik
  • Entre ellas tendremos seguro:
  1. contactos
  2. cliente de correo
  3. calendario, y algun otro servicio mínimo
  4. También se incluyen todas las aplicaciones que podemos descargar e instalar desde Google Play

Arquitectura : FrameWork

  • El Framework proporciona muchas interfaces de programación
  • Esto posibilita una programación sencilla simplificando el desarrollo y reutilizando recursos
  • Todos los desarrolladores de aplicaciones Android, tienen acceso total al código fuente usado en las aplicaciones base.

Arquitectura : FrameWork (entorno de desarrollo de aplicaciones)

En ella tenemos una serie de componentes, accesibles para los desarrollo de aplicaciones. Lo que desarrollemos se puede reutilizar ya que puede implementar uno de los componentes disponibles

  • Tenemos las siguientes elementos:
  1. View
Es la base de los componentes gráficos p.e. un botón es una clase que extiende de view.
El SDK de android aunque accede a gran parte de JRE, p.e. la clase Swing no lo incorpora

Arquitectura : FrameWork (entorno de desarrollo de aplicaciones)

  1. Activity
Gestiona las actividades y la pila de ejecución arrancando, parando ocultano o eliminando actividades
  1. Content Provider
Para permitir a las aplicaciones acceder a datos y otros programas de aplicación
  1. Gestor de recursos
para gestionar las partes que no son programa como codificación multilenguaje, fotos y efectos de sonido.
  1. Gestor de notificaciones
para permitir a las aplicaciones notificar a la interfaz de mensajes de usuarios, meidante la barra de estado

Arquitectura : Librerías

  • Son librerías enlazadas de C y C++, conectadas en dos direciones
  1. Hacia arriba con el framework de aplicaciones
  2. Hacia abajo con el kernel del SO

Arquitectura : Librería principal o nativas

  • La libería principal incluye las siguientes:
  1. Una librería de sistema C
  2. Una librería multimedia (Soporta MPEG4, H.264, MP3, AAC, AMR, JPG, PNG)
  3. Librería de administrador de superficies: acceso a la representación 2D y 3D.
  4. SGL Motor gráfico 2D
  5. Una librería de base de datos SQLite

Arquitectura : Librería principal o nativas

  1. Una librería de 3D implemntación de OpenGL ES 1.0
  2. Una librería de fuentes bitmap y renderizado vectorial
  3. Una librería de WebKit para funcionalidades de navegación web.
  4. Librería de seguridad : SSL cifrado de Secure Socket Layer

Arquitectura : RunTime

  • A este nivel tenemos la librería del kernel y la máquina virtual de Dalvik
  • Se usa esta MV y no la de Java por las limitaciones de memoria y velocidad de los dispositivos.
  • Android incorpora un set de librerías que aportan la mayor parte de las funcionalidades disponibles en las librerías base del lenguaje de programación Java.
  • La Máquina Virtual está basada en registros, y corre clases compiladas por el compilador de Java que anteriormente han sido transformadas al formato .dex (Dalvik Executable) por la herramienta dx.

Arquitectura : RunTime

  • Los ficheros dex están obtimizados en espacio (menos instrucciones menos espacio y más rápida la ejecución)
  • Cada aplicación se ejecuta en una instancia de una máquia virtual.
  • Linus crfea un thread con una instanacia de la MV Dalvik
  • Esto es un principio de seguridad importante, y por ese motivo hay que dar permisos para acceder al hardware en el desarrollo de la aplicación.-

Arquitectura: Nivel de kernel de Linux

  • Esta basado en un kernel 2.6
  • Éste es el kernel sobre el que se basa Android.
  • Contienen todos los controladores de dispositivos de bajo nivel para los diversos componentes de hardware

Dónde está presente Android

  1. Smartphones
  2. Tablets
  3. Dispositivos de libros electrónicos
  4. NetBooks
  5. Reproductores MP4
  6. Internet TV