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
- Nuevas APIs de OpenGL ES 2.0 en
android.opengl.GLES20
. - Se agregaron las clases
ETC1
,ETC1Util
yETC1Util.ETC1Texture
, y los métodos de utilidad nuevos para usar ETC1 en la compresión de texturas. - Nueva clase
ImageFormat
. - Se agregó un nuevo
YUV image format API
para habilitar la compresión de YUV a JPEG y la manipulación de datos de YUV.
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
yMediaScannerConnection.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
yCamcorderProfile
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
pormatch_parent
. Esto afecta al código XML y Java (consultaViewGroup.LayoutParams
). Ten en cuenta que la plataforma continuará respetando los usos defill_parent
en aplicaciones heredadas. - Los nuevos atributos de diseño
tabStripEnabled
,tabStripRight
ytabStripLeft
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.
- 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 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.
- 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 cuando se ejecuta 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 API.