APIs de Android 2.2

Nivel de API: 8

Android 2.2 es una versión secundaria de la plataforma que incluye funciones del 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 Android 2.2 está disponible como componente descargable para el SDK de Android. La plataforma descargable incluye una imagen del sistema y una biblioteca de Android, así como un conjunto de máscaras de emulador y mucho más. Para comenzar a desarrollar o probar Android 2.2, usa Android SDK Manager para descargar la plataforma en tu SDK.

Aspectos destacados de la plataforma

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

Nivel de API

La plataforma Android 2.2 entrega 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 propio sistema. Este identificador, denominado "nivel de API", permite que el sistema determine correctamente si una aplicación es compatible con él antes de instalarla.

Para usar las APIs presentadas en Android 2.2 en tu aplicación, debes establecer el valor adecuado, "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 de framework

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

Instalación de apps en medios de almacenamiento externo

La plataforma de Android ahora permite que las aplicaciones soliciten su instalación en medios 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 mediante 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 e instala la aplicación .apk de acuerdo con la ubicación preferida, si es posible. Si la aplicación solicitó una instalación externa, el sistema la instala en una partición privada encriptada en el medio externo. Una vez que se instala de manera externa un archivo .apk de aplicación, el sistema le permite al usuario cambiar la ubicación de almacenamiento del archivo .apk y moverlo 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 internamente en versiones anteriores de la plataforma y externamente en Android 2.2 y plataformas posteriores, si es necesario.

Ten en cuenta que solicitar la instalación en un medio externo del dispositivo no es adecuado para todas las aplicaciones, en especial porque el medio externo puede quitarse y su desactivación y remontaje pueden interrumpir la experiencia del usuario y la configuración del sistema.

Para obtener más información sobre cómo configurar una ubicación de instalación preferida para tu aplicación, incluido un análisis 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 y restablecer datos del usuario, a fin de garantizar que los usuarios puedan mantener sus datos cuando cambien de dispositivo o reinstalen la aplicación. El administrador de copias de seguridad controla el trabajo de transportar los datos de la aplicación desde y hacia 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 administrar operaciones de copia de seguridad y restablecimiento de manera atómica. Para obtener más información, consulta Copia de seguridad de datos.

Gráficos

Contenido multimedia

  • Nuevas APIs en android.media.AudioManager para administrar el foco de audio, el control de transporte, la pérdida transitoria del foco de audio y el autosilenciado de fondo
  • Nuevo intent de transmisión para enrutar audio a SCO: ACTION_SCO_AUDIO_STATE_CHANGED con extras que indican un estado nuevo
  • Se agregaron nuevas APIs en SoundPool para detectar que se complete la carga de sonido.
  • Nuevas APIs en SoundPool para la pausa y reanudación automáticas
  • Se agregaron nuevas APIs en MediaRecorder para especificar la configuración de audio para la cantidad de canales, la codificación y las tasas de muestreo, y la tasa de muestreo.
  • 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 mejor interacción con el reconocedor de voz disponible. Por ejemplo, las APIs son suficientes para integrar profundamente 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 extras RecognizerIntent que permiten que una app solicitante especifique detalles como idioma preferido, longitud mínima en milisegundos, etcétera

Cámara y videocámara

  • Se realizaron cambios en la API de la vista previa de la cámara para mejorar la eficiencia de la canalización de la vista previa.
  • Nueva orientación de la pantalla para la cámara (ahora puede funcionar en orientación vertical).
  • Nuevas APIs en android.hardware.Camera para administrar el nivel de zoom
  • Se agregaron nuevas APIs de android.hardware.Camera.Parameters para consultar y establecer la configuración de la cámara del dispositivo, como la longitud focal, la exposición, el nivel de zoom y el ángulo de visión, entre 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 cámara del hardware del dispositivo.
  • Nueva compatibilidad en android.media.ExifInterface para recuperar datos de GPS y longitud focal.

Administrador de políticas del dispositivo

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

Framework de IU

  • Los nuevos modos de la IU, "modo de vehículo", "modo nocturno", y UiModeManager permiten que las aplicaciones ajusten la IU de su aplicación para modos de usuario específicos.
  • ScaleGestureDetector nuevo que permite que las vistas detecten y controlen gestos de transformación que involucran más de un puntero (multitáctil) usando los MotionEvents proporcionados.
  • Mejoras en la forma en que se informan los eventos multitáctiles en objetos MotionEvent
  • Se cambió el nombre del atributo de diseño fill_parent por match_parent. Esto afecta al código XML y Java (consulta ViewGroup.LayoutParams). Ten en cuenta que la plataforma continuará respetando los usos de fill_parent en 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, autoridad y servicios adicionales específicos con una frecuencia determinada.

Nuevos atributos y elementos del manifiesto

  • Para especificar la ubicación de instalación preferida de la aplicación (consulta Instalación de apps en medios de almacenamiento externos más arriba):
    • 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 la sección Administrador de copias de seguridad más arriba para obtener más información):
    • Nuevo atributo android:backupAgent del elemento <application>. Especifica el nombre del componente de la subclase BackupAgent que proporcionó la aplicación para controlar las operaciones de copia de seguridad y restablecimiento, si corresponde.
    • Nuevo atributo android:restoreAnyVersion del elemento <application>. Es un valor booleano que indica si la aplicación está preparada para intentar restablecer un conjunto de datos de una copia de seguridad, incluso si aparentemente la copia de seguridad pertenece a una versión más reciente de la aplicación que la que está instalada en el dispositivo en la actualidad.
  • Para administrar el compilador JIT de la plataforma:
    • Nuevo atributo android:vmSafeMode del elemento <application>. 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 emisió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 las APIs

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