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 las APIs y correcciones de errores. Si deseas 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 del SDK de Android. La plataforma descargable incluye una biblioteca de Android, una imagen del sistema, un conjunto de máscaras de emulador y mucho más. Para comenzar a desarrollar o probar con Android 2.2, usa el SDK Manager de Android 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.2.
Nivel de API
La plataforma de 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, 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.2 en tu aplicación, debes establecer el valor adecuado, "8", en los atributos android:minSdkVersion
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.
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 de 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 los medios de almacenamiento externo del dispositivo (como la tarjeta SD), en lugar de 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 atributo nuevo de <manifest>
en el archivo de manifiesto,
android:installLocation
. El atributo admite tres valores: "internalOnly"
, "preferExternal"
y "auto"
. Durante 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ó una instalación externa, el sistema la instala en una partición privada y encriptada en el medio externo. Una vez que el archivo .apk de una aplicación se instala externamente, 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 de manera explícita una 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 los medios externos del dispositivo no es adecuado para todas las aplicaciones, en especial porque es posible que el medio externo se pueda extraer y, luego, desactivar y volver a activar podría 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 los tipos de aplicaciones que deben y no deben solicitar la instalación externa, lee el documento Ubicación de la instalación de la app.
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 conservar 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 las 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
- Nuevas APIs de OpenGL ES 2.0 en
android.opengl.GLES20
- Nuevos métodos de utilidad y clases
ETC1
,ETC1Util
yETC1Util.ETC1Texture
para usar ETC1 en la compresión de texturas - Nueva clase
ImageFormat
. - Se agregó
YUV image format API
para habilitar la compresión de YUV a JPEG y la manipulación de datos de YUV.
Contenido multimedia
- Se agregaron nuevas APIs en
android.media.AudioManager
para administrar el foco de audio, el control de transporte, la pérdida transitoria de 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 pausar y reanudar automáticamente - 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 analicen automáticamente. Consulta
MediaScannerConnection.scanFile
yMediaScannerConnection.OnScanCompletedListener
.
Reconocimiento de voz y motores de reconocimiento de terceros
- La plataforma proporciona nuevas API de reconocimiento de voz que permiten a las aplicaciones tener 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 de
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 vista previa de la cámara para mejorar la eficiencia de la canalización de vista previa.
- Nueva orientación de 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. - Se agregaron nuevas APIs
android.hardware.Camera.Parameters
para consultar y configurar 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
yCamcorderProfile
permiten que las apps determinen las capacidades de cámara del hardware del dispositivo. - Nueva compatibilidad en
android.media.ExifInterface
para recuperar el 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 seguridad mínima de las contraseñas, 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" y "modo nocturno", y
UiModeManager
permiten que las aplicaciones ajusten la IU de su aplicación para modos de usuario específicos. - Se agregó un
ScaleGestureDetector
nuevo que permite que los objetos View detecten y controlen los gestos de transformación que involucran más de un puntero (multitáctil) mediante 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
pormatch_parent
. Esto afecta al código XML y Java (consultaViewGroup.LayoutParams
). Ten en cuenta que la plataforma seguirá respetando los usos defill_parent
en aplicaciones heredadas. - Los nuevos atributos de diseño
tabStripEnabled
,tabStripRight
ytabStripLeft
permiten que los desarrolladores personalicen 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 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 externos más arriba):
- Nuevo atributo
android:installLocation
del elemento<manifest>
. Especifica la ubicación de instalación predeterminada definida por una aplicación.
- Nuevo atributo
- 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 proporciona la aplicación para administrar las operaciones de copia de seguridad y restablecimiento, si las hubiera. - Nuevo atributo
android:restoreAnyVersion
del elemento<application>
. 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 actualmente en el dispositivo.
- Nuevo atributo
- 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 al ejecutar la aplicación.
- Nuevo atributo
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 akillBackgroundProcesses(String)
.android.permission.BIND_WALLPAPER
: CualquierWallpaperService
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 APIs.