Android 2.0, versión 1

Nivel de API: 5

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

Para los desarrolladores, la plataforma Android 2.0 se encuentra disponible como componente descargable para el SDK de Android. La plataforma descargable incluye un imagen del sistema y biblioteca de Android compatibles, además de un conjunto de emuladores máscaras, aplicaciones de muestra y más. La plataforma descargable está completamente cumple con los requisitos y no incluye bibliotecas externas.

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

Puntos destacados de la plataforma

Para obtener una lista de las nuevas funciones para el usuario y las funciones destacadas de la plataforma, consulta el documento Funciones destacadas de la plataforma de Android 2.0.

Aplicaciones integradas

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

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

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 configuraciones regionales. En otros casos, se usa una versión predeterminada del idioma. El idiomas que están disponibles en el sistema Android 2.0 imagen se enumeran a continuación (con la configuración regional en language_country/region) descriptor).

  • Chino, PRC (zh_CN)
  • Chino, Taiwán (zh_TW)
  • Checo (cs_CZ)
  • Holandés, Países Bajos (nl_NL)
  • Neerlandés y Bélgica (nl_BE)
  • Inglés, EE.UU. (en_US)
  • Inglés (británico) (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)
  • Polaco (pl_PL)
  • Ruso (ru_RU)
  • Español (es_ES)
  • Las cadenas de IU localizadas coinciden con las configuraciones regionales a las que se puede acceder en Configuración.

    Máscaras 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, densidad baja, pantalla normal)
    • FWQVGA (240 x 432, densidad baja, pantalla normal)
    • HVGA (320 x 480, densidad media, pantalla normal)
    • WVGA800 (480 x 800, densidad alta, pantalla normal)
    • WVGA854 (480 x 854 de alta densidad, pantalla normal)

    Para obtener más información sobre cómo desarrollar una aplicación que se muestre y funcione correctamente en todos los dispositivos con Android, consulta Compatibilidad con varias pantallas.

    Funciones para desarrolladores

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

    Soporte para hormigas

    • Firma de aplicaciones en modo de depuración y de lanzamiento La firma en modo de lanzamiento incluye compatibilidad integrada con 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 con compatibilidad para 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 marco de trabajo de aplicaciones proporcionada por la plataforma de Android 2.0.

    Nivel de API

    La plataforma de Android 2.0 ofrece una versión actualizada de la API del 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 sistema. Este identificador, llamado “nivel de API”, permite que la para determinar de forma correcta si una aplicación es compatible con en el sistema antes de instalar la aplicación.

    Para usar las APIs que se introdujeron en Android 2.0 en tu aplicación, debes establecer el valor correcto, "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 los cambios en la API

    Bluetooth

    • Cómo activar o desactivar Bluetooth
    • Descubrimiento de dispositivos y servicios
    • Conectarse a un dispositivo remoto mediante RFCOMM y enviar/recibir datos
    • Anunciar servicios RFCOMM y escuchar las conexiones RFCOMM entrantes

    Adaptadores de sincronización

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

    Administrador de cuentas

    • API de administrador de cuentas centralizada para almacenar de forma segura tokens y contraseñas de autenticación, y acceder a ellos

    Contactos

    • Nuevas APIs de contactos que permiten datos de varias cuentas
    • Las nuevas APIs del framework de Quick Contact permiten a los desarrolladores crear insignias de contacto en su app. Si se hace clic en la insignia, se abre 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 para efecto de color, modo panorámico, modo flash, modo de enfoque, balance de blancos, rotación y otros parámetros de configuración.
    • 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 miniaturas para recuperar miniaturas de imágenes y videos a pedido.

    Otro framework

    • Nuevos temas del sistema en android.R.style para mostrar actividades fácilmente sobre el fondo de pantalla actual del sistema o mantener la actividad anterior visible en segundo plano.
    • La nueva API de WallpaperManager reemplaza y extiende las APIs de fondo de pantalla que antes estaban en Context para permitir que las aplicaciones soliciten y establezcan el fondo de pantalla del sistema.
    • Se agregaron nuevas APIs de servicios para ayudar a las aplicaciones a controlar correctamente el ciclo de vida de los servicios, en particular, en situaciones de poca memoria en las que se puede finalizar un servicio mientras se ejecuta.
      • Service.setForeground() dejó de estar disponible y no realiza operaciones efectivas. Esto se reemplaza por una nueva API, startForeground(), que ayuda (y requiere) a asociar una notificación en curso con el estado en primer plano.
    • MotionEvent ahora puede informar información de toques simultáneos para los dispositivos que la admiten. Se pueden rastrear hasta tres punteros de forma simultánea.
    • KeyEvent tiene nuevas APIs de despacho de claves, para ayudar a implementar el comportamiento de acción en el momento y mantener presionado, así como un nuevo mecanismo para cancelar las pulsaciones de teclas (para teclas virtuales).
    • WindowManager.LayoutParams tiene constantes nuevas que permiten que una ventana active la pantalla cuando se muestra y la muestre incluso si la pantalla está bloqueada. Esto permite que las aplicaciones implementen de forma más clara elementos como despertadores que deben activar el dispositivo.
    • Nuevas APIs de intents que transmiten el estado de la estación de carga del dispositivo y permiten que las aplicaciones inicien actividades especiales cuando el dispositivo se coloca en una estación de carga para computadoras de escritorio o automóviles.

    Eventos de tecla ejecutados cuando se suelta la tecla

    Android 2.0 está diseñado para ejecutarse en dispositivos que usan teclas virtuales para las teclas INICIO, MENÚ, ATRAS y BUSCAR, en lugar de teclas físicas. Para admitir la mejor experiencia del usuario en esos dispositivos, la plataforma de Android ahora ejecuta estos botones en el levantamiento de la tecla, para un par de teclas abajo/arriba, en lugar de la tecla abajo. Esto ayuda a evitar eventos de botones accidentales y permite que el usuario presione el área del botón y luego arrastre sin generar un evento.

    Este cambio de comportamiento solo debería afectar a tu aplicación si esta intercepta eventos de botones y realiza una acción cuando se presiona una tecla, en lugar de cuando se suelta. En especial, si tu aplicación intercepta la tecla ATRAS, debes asegurarte de que controle los eventos de teclas 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 en con la tecla presionada, en lugar de la tecla hacia arriba, deberías modificar tu código.

    Si tu aplicación usará las APIs que se introdujeron en Android 2.0 (nivel de API 5), puedes aprovechar las nuevas APIs para administrar pares de eventos de teclas:

    • Si interceptas la tecla ATRÁS en una actividad o un diálogo, simplemente implementa el nuevo método onBackPressed().
    • Si interceptas la tecla ATRÁS en una vista, debes realizar un seguimiento de la tecla evento al presionar la tecla hacia abajo (mediante el nuevo startTracking() método) y, luego, invocar la acción al subir la tecla. 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 manejo de la tecla BACK funcione correctamente en Android 2.0 y versiones anteriores de la plataforma, puedes usar un enfoque similar al que se muestra más arriba. Tu código puede detectar la evento de botón objetivo al presionar la tecla hacia abajo, establecer una marca para rastrear el evento clave y y, luego, captar el evento en la tecla key-up y ejecutar la acción deseada si el seguimiento marca de verificación. También te recomendamos que observes los cambios de enfoque y que borres la marca de seguimiento cuando ganes o pierdas el enfoque.

    Informe de diferencias de API

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