Android 2.0, versión 1

Nivel de API: 5

Android 2.0 es una importante actualización de la plataforma que se puede implementar en teléfonos celulares con Android a partir de noviembre de 2009. La versión incluye funciones nuevas para usuarios y desarrolladores, además de cambios en la API del framework de Android.

Para los desarrolladores, la plataforma Android 2.0 está disponible como componente descargable del SDK de Android. La plataforma descargable incluye una biblioteca de Android y una imagen del sistema totalmente compatibles, así como un conjunto de máscaras de emulador, aplicaciones de ejemplo y mucho más. La plataforma descargable cumple todos los requisitos y no incluye bibliotecas externas.

Para comenzar a desarrollar o realizar pruebas con la plataforma de Android 2.0, usa el SDK de Android y la herramienta Administrador de AVD para descargar la plataforma en tu SDK.

Aspectos destacados de la plataforma

Para ver una lista de las nuevas funciones del usuario y los aspectos destacados de la plataforma, consulta el documento Funciones destacadas de la plataforma Android 2.0.

Aplicaciones integradas

La imagen del sistema incluida en la plataforma descargable proporciona estas aplicaciones integradas:

  • Alarma
  • Navegador
  • Calculadora
  • Cámara de video
  • Cámara
  • Contactos
  • Configuración regional personalizada (app para desarrolladores)
  • Herramientas para desarrolladores (app de desarrollador)
  • Dialer
  • Correo electrónico
  • Galería
  • Creador de gestos
  • IME para entrada de texto en japonés
  • Mensajería
  • Música
  • Configuración
  • Piezas de repuesto (app de desarrollador)

Idiomas

La imagen del sistema incluida en la plataforma descargable proporciona una variedad de configuraciones regionales integradas. En algunos casos, las cadenas específicas de la región están disponibles para las configuraciones regionales. En otros casos, se usa una versión predeterminada del idioma. Los idiomas que están disponibles en la imagen del sistema de Android 2.0 se enumeran a continuación (con el descriptor de configuración regional language_country/region).

  • Chino, República Popular China (zh_CN)
  • Chino, Taiwán (zh_TW)
  • Checo (cs_CZ)
  • Neerlandés y Países Bajos (nl_NL)
  • Neerlandés, Bélgica (nl_BE)
  • Inglés, EE.UU. (en_US)
  • Inglés, Gran Bretaña (en_GB)
  • Inglés, Canadá (en_CA)
  • Inglés, Australia (en_AU)
  • Inglés, Nueva Zelanda (en_NZ)
  • Inglés, Singapur(en_SG)
  • Francés, Francia (fr_FR)
  • Francés, Bélgica (fr_BE)
  • Francés, Canadá (fr_CA)
  • Francés, Suiza (fr_CH)
  • Alemán, Alemania (de_DE)
  • Alemán, Austria (de_AT)
  • Alemán, Suiza (de_CH)
  • Alemán, Liechtenstein (de_LI)
  • Italiano, Italia (it_IT)
  • Italiano, Suiza (it_CH)
  • Japonés (ja_JP)
  • Coreano (ko_KR)
  • Pulidor (pl_PL)
  • Ruso (ru_RU)
  • Español (es_ES)
  • Las cadenas de IU localizadas coinciden con los parámetros de configuración regional a los que se puede acceder a través de Configuración.

    Skins de emulador

    La plataforma descargable incluye un conjunto de máscaras de emulador que puedes usar para modelar tu aplicación en diferentes tamaños y resoluciones de pantalla. Las máscaras del emulador son las siguientes:

    • QVGA (240 x 320, baja densidad, pantalla pequeña)
    • WQVGA (240 x 400, baja densidad, pantalla normal)
    • FWQVGA (240 x 432, baja densidad, pantalla normal)
    • HVGA (320 x 480, densidad media, pantalla normal)
    • WVGA800 (480 x 800, alta densidad, pantalla normal)
    • WVGA854 (480 x 854 de alta densidad, pantalla normal)

    Puedes obtener más información para desarrollar una aplicación que se muestre y funcione correctamente en todos los dispositivos Android en Compatibilidad con varias pantallas.

    Funciones para desarrolladores

    Las siguientes secciones proporcionan información sobre las nuevas funciones para desarrolladores que ofrece el componente descargable de la plataforma Android 2.0.

    Compatibilidad con hormigas

    • Firma de aplicaciones en modo de lanzamiento y depuración. La firma de modo de lanzamiento incluye compatibilidad integrada para la optimización de zipalign. Para obtener más información, consulta Cómo firmar tus aplicaciones.
    • Se agregó un nuevo sistema de compilación Ant compatible con proyectos de instrumentación de Emma (cobertura de código).

    API de framework

    En las siguientes secciones, se brinda información sobre la API de framework de aplicaciones proporcionada por la plataforma Android 2.0.

    Nivel de API

    La plataforma de Android 2.0 entrega una versión actualizada de la API de framework. Al igual que con las versiones anteriores, a la API de Android 2.0 se le asigna un identificador de número entero, 5, que se almacena en el propio sistema. Este identificador, llamado "nivel de API", permite que el sistema determine correctamente si una aplicación es compatible con él antes de instalarla.

    Para usar las APIs de Android 2.0 en tu aplicación, debes configurar el valor adecuado, "5", en los atributos del elemento <uses-sdk> del manifiesto de tu aplicación.

    Para obtener más información sobre cómo usar el nivel de API, consulta el documento Niveles de API.

    Resumen de cambios en la API

    Bluetooth

    • Activar o desactivar el Bluetooth
    • Descubrimiento de dispositivos y servicios
    • Conectarse a un dispositivo remoto mediante RFCOMM y enviar/recibir datos
    • Anunciar servicios RFCOMM y escuchar la conexión RFCOMM entrante

    Adaptadores de sincronización

    • Nuevas APIs para que los adaptadores de sincronización se conecten a cualquier backend

    Administrador de cuentas

    • Se centralizó la API del administrador de cuentas para almacenar contraseñas y tokens de autenticación, y acceder a ellos de forma segura.

    Contactos

    • Nuevas APIs de contactos que permiten datos de múltiples cuentas
    • Las nuevas APIs del framework de Contacto rápido permiten a los desarrolladores crear insignias de contacto en su app. Si haces clic en la insignia, se abrirá una ventana con una lista de formas de comunicarse con la persona con un solo clic.

    WebView

    • Clases obsoletas: UrlInterceptHandler, Plugin, PluginData, PluginList y UrlInterceptRegistry.

    Cámara

    • Nuevos parámetros de configuración para el efecto de color, el modo panorámico, el modo de flash, el modo de enfoque, el balance de blancos, la rotación y otras opciones.
    • Nueva interfaz ZoomCallback para realizar acciones cuando cambia el nivel de zoom.

    Contenido multimedia

    • MediaScanner ahora genera miniaturas para todas las imágenes cuando se insertan en MediaStore
    • Nueva API de Miniatura para recuperar miniaturas de imágenes y videos on demand.

    Otro marco de trabajo

    • Nuevos temas del sistema en android.R.style para mostrar actividades fácilmente sobre el fondo de pantalla actual del sistema o mantener visible la actividad anterior en segundo plano
    • La nueva API de WallpaperManager reemplaza y extiende las APIs de Wallpaper que antes estaban en Contexto para permitir que las aplicaciones soliciten y establezcan el fondo de pantalla del sistema.
    • Nuevas API de servicio para ayudar a las aplicaciones a manejar correctamente el ciclo de vida del servicio, en situaciones particulares de poca memoria en las que un servicio puede finalizarse mientras se está ejecutando.
      • Service.setForeground() quedó obsoleto y ya no realiza ninguna operación. Esto se reemplazará por una nueva API, startForeground(), que ayuda (y requiere) asociar una notificación continua con el estado en primer plano.
    • MotionEvent ahora puede enviar información táctil simultánea para dispositivos compatibles. Se pueden rastrear hasta tres punteros a la vez.
    • KeyEvent tiene nuevas API para el envío de claves que ayudan a implementar un comportamiento de acción en funcionamiento y de presión prolongada, además de un nuevo mecanismo para cancelar las pulsaciones de teclas (para las teclas virtuales).
    • WindowManager.LayoutParams tiene constantes nuevas que permiten que una ventana active la pantalla cuando se muestra y la muestra incluso si está bloqueada Esto permite que las aplicaciones implementen de forma más clara cosas como los relojes de alarma que deberían activar el dispositivo.
    • Nuevas APIs de Intent que transmiten el estado de conexión del dispositivo y permiten que las aplicaciones inicien actividades especiales cuando el dispositivo se coloca en un conector de escritorio o automóvil.

    Eventos de tecla que se ejecutan al pulsar las teclas

    Android 2.0 está diseñado para ejecutarse en dispositivos que usan teclas virtuales para INICIO, MENÚ, ATRÁS y BÚSQUEDA, en lugar de teclas físicas. Para brindar la mejor experiencia del usuario en esos dispositivos, la plataforma de Android ahora ejecuta estos botones al principio, para un par de teclas presionadas, en lugar de hacerlo con una tecla hacia arriba. Esto ayuda a evitar eventos de botón accidentales y permite al usuario presionar el área del botón y, luego, arrastrarlo fuera sin generar un evento.

    Este cambio en el comportamiento solo debería afectar a tu aplicación si intercepta eventos de botones y realiza una acción cuando se presiona la tecla, en lugar de hacerlo cuando se presiona la tecla. En especial si tu aplicación intercepta la tecla ATRÁS, debes asegurarte de que esté manejando los eventos clave de forma correcta.

    En general, no se recomienda interceptar la tecla ATRÁS en una aplicación; sin embargo, si tu aplicación lo hace e invoca alguna acción de la tecla de tecla hacia abajo, en lugar de la tecla hacia arriba, debes modificar el código.

    Si tu aplicación usará APIs presentadas en Android 2.0 (nivel de API 5), puedes aprovechar las nuevas APIs para administrar pares clave-eventos:

    • Si interceptas la tecla ATRÁS en una actividad o un diálogo, solo implementa el nuevo método onBackPressed().
    • Si interceptas la tecla ATRÁS en una vista, debes realizar un seguimiento del evento de tecla presionada con la tecla presionada (a través del nuevo método startTracking()) y, luego, invocar la acción cuando se presiona la tecla hacia arriba. Este es un patrón que puedes usar:
    • Kotlin

      override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
          return when (keyCode) {
              KeyEvent.KEYCODE_BACK -> {
                  if (event.repeatCount == 0) {
                      event.startTracking()
                      true
                  } else {
                      false
                  }
              }
              ...
              else -> super.onKeyDown(keyCode, event)
          }
      }
      
      override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean {
          return when (keyCode) {
              KeyEvent.KEYCODE_BACK -> {
                  if (event.isTracking && !event.isCanceled) {
                      // *** DO ACTION HERE ***
                      true
                  } else {
                      false
                  }
              }
              ...
              else -> super.onKeyUp(keyCode, event)
          }
      }
      

      Java

      public boolean onKeyDown(int keyCode, KeyEvent event) {
              if (keyCode == KeyEvent.KEYCODE_BACK
                      && event.getRepeatCount() == 0) {
                  event.startTracking();
                  return true;
              }
              return super.onKeyDown(keyCode, event);
          }
      
          public boolean onKeyUp(int keyCode, KeyEvent event) {
              if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking()
                      && !event.isCanceled()) {
                  // *** DO ACTION HERE ***
                  return true;
              }
              return super.onKeyUp(keyCode, event);
          }
      

    Si deseas actualizar una aplicación heredada para que el control de la tecla ATRÁS funcione correctamente en Android 2.0 y versiones anteriores de la plataforma, puedes usar un enfoque similar al que se muestra más arriba. El código puede capturar el evento del botón de destino cuando se presiona la tecla de destino, establecer una marca para realizar un seguimiento del evento de tecla y, luego, detectar el evento cuando se presiona la tecla. Para ello, ejecuta la acción deseada si se establece la marca de seguimiento. También es recomendable que observes los cambios de enfoque y borres la marca de seguimiento cuando obtengas o pierdas el enfoque.

    Informe de diferencias de las APIs

    Para obtener una vista detallada de los cambios de API en Android 2.0 (nivel de API 5) en comparación con la versión anterior, consulta el informe de diferencias de API.