APIs de Android 2.2

Nivel de API: 8

Android 2.2 es una versión secundaria de la plataforma que incluye funciones para el usuario, funciones para desarrolladores, cambios en la API y correcciones de errores. Para obtener información sobre las funciones para desarrolladores y los cambios en la API, consulta la sección API de Framework.

Para los desarrolladores, la plataforma de Android 2.2 está disponible como un componente descargable del SDK de Android. La plataforma descargable incluye una biblioteca y una imagen del sistema de Android, así como un conjunto de temas de emulador y mucho más. Para comenzar a desarrollar o realizar pruebas en Android 2.2, usa el SDK Manager de Android para descargar la plataforma en tu SDK.

Puntos destacados de la plataforma

Para obtener una lista de las funciones nuevas para el usuario y los aspectos destacados de la plataforma, consulta el documento Aspectos destacados de la plataforma de Android 2.2.

Nivel de API

La plataforma de Android 2.2 ofrece una versión actualizada de la API de framework. A la API de Android 2.2 se le asigna un identificador de número entero (8) que se almacena en el sistema. Este identificador, llamado "nivel de API", permite que el sistema determine correctamente si una aplicación es compatible con el sistema antes de instalarla.

Para usar las APIs que se introdujeron en Android 2.2 en tu aplicación, debes establecer el valor correcto, "8", en los atributos android:minSdkVersion del elemento <uses-sdk> en el 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.

Cambios en la API del framework

En las siguientes secciones, se proporciona información sobre los cambios realizados en la API del framework de la aplicación que proporciona la plataforma Android 2.2.

Instalación de apps en medios de almacenamiento externo

La plataforma de Android ahora permite que las aplicaciones soliciten la instalación en el medio de almacenamiento externo del dispositivo (como la tarjeta SD), como alternativa a la instalación en la memoria interna del dispositivo.

Los desarrolladores de aplicaciones pueden expresar la ubicación de instalación preferida para sus aplicaciones a través de un nuevo atributo de <manifest> en el archivo de manifiesto, android:installLocation. El atributo admite tres valores: "internalOnly", "preferExternal" y "auto". En el momento de la instalación, el sistema verifica el valor de android:installLocation y, si es posible, instala la aplicación .apk según la ubicación preferida. Si la aplicación solicitó la instalación externa, el sistema la instala en una partición privada y encriptada en el contenido multimedia externo. Una vez que se instala un archivo .apk de la aplicación de forma externa, el sistema permite que el usuario cambie la ubicación de almacenamiento del .apk y lo mueva a la memoria interna del dispositivo si es necesario (y viceversa), a través de Administrar aplicaciones en la configuración del usuario.

De forma predeterminada, el sistema instala todas las aplicaciones en la memoria interna del dispositivo, excepto aquellas que solicitan explícitamente la instalación externa. Esto significa que el sistema siempre instalará aplicaciones heredadas en la memoria interna, ya que no tienen acceso al atributo android:installLocation. Sin embargo, es posible configurar y compilar una aplicación heredada de modo que se instale de forma interna en versiones anteriores de la plataforma y de forma externa en Android 2.2 y plataformas posteriores, si es necesario.

Ten en cuenta que solicitar la instalación en el medio externo del dispositivo no es adecuada para todas las aplicaciones, en particular porque el medio externo puede ser extraíble y desmontarlo o volver a montarlo puede interrumpir la experiencia del usuario y la configuración del sistema.

Para obtener más información sobre cómo establecer una ubicación de instalación preferida para tu aplicación, incluida una explicación de qué tipos de aplicaciones deben y no deben solicitar una instalación externa, lee el documento Ubicación de instalación de apps.

Copia de seguridad de datos

La plataforma ahora proporciona un servicio de copia de seguridad generalizado que las aplicaciones pueden usar para crear copias de seguridad de los datos del usuario y restablecerlos, lo que garantiza que los usuarios puedan mantener sus datos cuando cambien de dispositivo o reinstale la aplicación. El Administrador de copias de seguridad se encarga de transportar los datos de la aplicación hacia y desde el área de almacenamiento de copias de seguridad en la nube. El Administrador de copias de seguridad puede almacenar cualquier tipo de datos, desde datos arbitrarios hasta archivos, y administra las operaciones de copia de seguridad y restablecimiento de forma atómica. Para obtener más información, consulta Copia de seguridad de datos.

Gráficos

Contenido multimedia

  • Se agregaron nuevas APIs en android.media.AudioManager para administrar el enfoque de audio, el control de transporte, la pérdida transitoria del enfoque de audio y la atenuación.
  • Nuevo intent de transmisión para enrutar audio a SCO: ACTION_SCO_AUDIO_STATE_CHANGED con elementos adicionales que indican el estado nuevo.
  • Se agregaron nuevas APIs en SoundPool para detectar la finalización de la carga de sonido.
  • Nuevas APIs en SoundPool para pausar y reanudar automáticamente
  • Nuevas APIs en MediaRecorder para especificar la configuración de audio para la cantidad de canales, las tasas de codificación y muestreo, y la tasa de muestreo.
  • Se agregaron nuevas APIs para agregar archivos a la base de datos de contenido multimedia, de modo que se escaneen automáticamente. Consulta MediaScannerConnection.scanFile y MediaScannerConnection.OnScanCompletedListener.

Reconocimiento de voz y motores de reconocimiento de terceros

  • La plataforma proporciona nuevas APIs de reconocimiento de voz que permiten que las aplicaciones tengan una interacción más rica con el reconocedor de voz disponible. Por ejemplo, las APIs son suficientes para integrar el reconocimiento de voz en un IME.
  • La plataforma también proporciona una clase base RecognitionService que permite a los desarrolladores externos crear motores de reconocimiento de complementos.
  • Nueva interfaz RecognitionListener para recibir devoluciones de llamada.
  • Nuevos elementos adicionales de RecognizerIntent que permiten que una app solicitante especifique detalles como el idioma preferido, la longitud mínima en milisegundos, etcétera.

Cámara y videocámara

  • Se realizaron cambios en la API de vista previa de la cámara para mejorar la eficiencia de la canalización de vista previa.
  • Nueva orientación de la pantalla para la cámara (ahora puede funcionar en orientación vertical).
  • Se agregaron nuevas APIs en android.hardware.Camera para administrar el nivel de zoom.
  • Nuevas APIs android.hardware.Camera.Parameters para consultar y configurar la configuración de la cámara del dispositivo, como la distancia focal, la exposición, el nivel de zoom, el ángulo de visión y otros.
  • Nueva utilidad thumbnail para miniaturas de imágenes y videos.
  • Las nuevas clases CamcorderProfile y CamcorderProfile permiten que las apps determinen las capacidades de la cámara de hardware del dispositivo.
  • Se agregó compatibilidad nueva en android.media.ExifInterface para recuperar GPS y la longitud focal.

Administrador de políticas de dispositivo

Las nuevas APIs de administración de políticas de dispositivos permiten a los desarrolladores escribir aplicaciones de "administrador de dispositivos" que pueden controlar las funciones de seguridad del dispositivo, como la fortaleza mínima de la contraseña, la limpieza de datos, etcétera. Los usuarios pueden seleccionar los administradores habilitados en sus dispositivos. Para obtener más información, consulta las clases android.app.admin o el código de ejemplo de la aplicación en DeviceAdminSample.java.

Framework de la IU

  • Los nuevos modos de IU "modo de automóvil" y "modo nocturno", y UiModeManager permiten que las aplicaciones ajusten su IU para modos de usuario específicos.
  • Nuevo ScaleGestureDetector que permite que Views detecte y controle gestos de transformación que involucren más de un puntero (multitáctil) con los MotionEvents proporcionados.
  • Se realizaron mejoras en la forma en que se informan los eventos de varios toques en los objetos MotionEvent.
  • Se cambió el nombre del atributo de diseño fill_parent a match_parent. Esto afecta tanto al código XML como al de Java (consulta ViewGroup.LayoutParams). Ten en cuenta que la plataforma seguirá respetando los usos de fill_parent en las aplicaciones heredadas.
  • Los nuevos atributos de diseño tabStripEnabled, tabStripRight y tabStripLeft permiten a los desarrolladores personalizar la barra inferior de TabWidgets.
  • Se mejoró la compatibilidad con los diálogos administrados en Activity.

Cuentas y sincronización

  • El nuevo método AddPeriodicSync() te permite programar una sincronización periódica con una cuenta, una autoridad y elementos adicionales específicos con la frecuencia determinada.

Nuevos elementos y atributos del manifiesto

  • Para especificar la ubicación de instalación preferida de la aplicación (consulta Instalación de apps en medios de almacenamiento externo más arriba), haz lo siguiente:
    • Nuevo atributo android:installLocation del elemento <manifest> Especifica la ubicación de instalación predeterminada que define una aplicación.
  • Para administrar la copia de seguridad de los datos del usuario (consulta Administrador de copias de seguridad más arriba para obtener más información), haz lo siguiente:
    • Nuevo atributo android:backupAgent del elemento <application> Especifica el nombre del componente de la subclase de BackupAgent que proporciona la aplicación para controlar las operaciones de copia de seguridad o restablecimiento, si las hay.
    • Nuevo atributo android:restoreAnyVersion del elemento <application> Es un valor booleano que indica si la aplicación está preparada para intentar restablecer cualquier conjunto de datos de una copia de seguridad, incluso si la copia de seguridad es aparentemente de una versión más reciente de la aplicación que la que está instalada en el dispositivo.
  • Para administrar el compilador JIT de la plataforma, haz lo siguiente:
    • Nuevo atributo android:vmSafeMode del elemento <application> Es un valor booleano que especifica si se deben inhabilitar las optimizaciones del compilador JIT cuando se ejecuta la aplicación.

Permisos

  • android.permission.BIND_DEVICE_ADMIN: Cualquier receptor de transmisión de administración de dispositivos debe requerir este permiso para garantizar que solo el sistema pueda interactuar con él.
  • android.permission.KILL_BACKGROUND_PROCESSES: Permite que una aplicación llame a killBackgroundProcesses(String).
  • android.permission.BIND_WALLPAPER: Cualquier WallpaperService debe requerir este permiso para garantizar que solo el sistema pueda interactuar con él.
  • android.permission.SET_TIME: Permite que una aplicación establezca la hora del sistema.

Informe de diferencias de la API

Para obtener una vista detallada de todos los cambios en la API de Android 2.2 (nivel de API 8), consulta el Informe de diferencias de API.