Nivel de API: 13
Android 3.2 (HONEYCOMB_MR2
) es una versión incremental de la plataforma que agrega
capacidades para usuarios y desarrolladores. En las siguientes secciones, se proporciona una descripción general
de las nuevas funciones y APIs para desarrolladores.
Para los desarrolladores, la plataforma Android 3.2 se encuentra disponible como componente descargable para el SDK de Android. La plataforma descargable incluye una biblioteca de Android y una imagen del sistema, así como un conjunto de máscaras de emulador y más. Para comenzar a desarrollar o probar con Android 3.2, usa SDK Manager de Android para descargar la plataforma en tu SDK.
Aspectos destacados de la plataforma
Nuevas funciones para el usuario
- Optimizaciones para una mayor variedad de tablets
Android 3.2 incluye una variedad de optimizaciones en todo el sistema para garantizar una excelente experiencia del usuario en una gama más amplia de tablets.
- Zoom de compatibilidad para apps de tamaño fijo
Android 3.2 presenta un nuevo modo de zoom de compatibilidad que brinda a los usuarios una nueva forma de ver apps de tamaño fijo en dispositivos más grandes. El nuevo modo ofrece alternativa con escala de píxeles a la estiramiento de IU estándar para apps que no son diseñados para ejecutarse en pantallas de mayor tamaño, como tablets. El nuevo modo es accesible para los usuarios desde un ícono de menú en la barra del sistema, en el caso de aplicaciones que necesiten y la compatibilidad.
- Sincronización de contenido multimedia desde la tarjeta SD
Ahora, en los dispositivos compatibles con una tarjeta SD, los usuarios pueden cargar archivos multimedia directamente desde la tarjeta SD hasta las apps que las usan. Una instalación de sistema hace que los archivos a las que las apps pueden acceder desde la tienda de contenido multimedia del sistema.
Nuevas funciones para desarrolladores
- API extendida para administrar la compatibilidad con pantallas
Android 3.2 presenta extensiones a la API de compatibilidad de pantalla de la plataforma para brindarles a los desarrolladores más formas de administrar la IU de las aplicaciones en todos los Dispositivos con Android. La API incluye nuevos calificadores de recursos y nuevos de manifiesto que te brindan un control más preciso sobre el modo en que las apps se muestren en diferentes tamaños, en lugar de depender de categorías de tallas.
Para garantizar la mejor visualización posible para las apps de tamaño fijo y las apps con límites compatibilidad con varios tamaños de pantalla, la plataforma también proporciona un nuevo modo de compatibilidad que renderiza la IU en un área de pantalla más pequeña y, luego, la escala para llenar el espacio disponible en la pantalla. Para obtener más información sobre el API de Screen Support y los controles que proporciona, consulta las siguientes secciones.
Descripción general de la API
APIs de compatibilidad de pantallas
Android 3.2 presenta nuevas pantallas compatibles con API que te ofrecen más controlar cómo se muestran sus aplicaciones en distintos tamaños de pantalla. La API se basa en la API de compatibilidad de pantallas existente, incluida la API de generalizado de densidad de pantalla, pero lo extiende con la capacidad de orientar anuncios a rangos de pantalla específicos por sus dimensiones, que se miden en unidades de píxeles independientes de la densidad (como 600 dp o 720 dp de ancho), en lugar de según sus tamaños de pantalla generalizados (como grande o extragrande)
Cuando diseñas la IU de una aplicación, puedes confiar en que la plataforma proporcionan abstracción de densidad, lo que significa que las aplicaciones no necesitan para compensar las diferencias en la densidad real de píxeles entre dispositivos. Tú puedes diseñar la IU de la aplicación según la cantidad de imágenes de espacio disponible. La plataforma expresa la cantidad de espacio disponible mediante tres nuevas características: smallestWidth, width y height:
- El smallestWidth de una pantalla es su tamaño mínimo fundamental. se mide en unidades de píxeles independientes de la densidad ("dp"). de la altura de la pantalla o ancho, es el más corto de los dos. En el caso de una pantalla en orientación vertical, el El ancho más pequeño se basa normalmente en su ancho, mientras que en la orientación horizontal se basa en su altura. En todos los casos, el smallWidth deriva de una característica fija de la pantalla, y el valor no cambia, independientemente de la orientación. El ancho más pequeño es importante para las aplicaciones porque representa el ancho más corto posible en el que se deberá dibujar la IU de la aplicación, sin incluir las áreas de la pantalla reservadas por el sistema.
- Por el contrario, el ancho y la altura de una pantalla representan la espacio horizontal o vertical actual disponible para el diseño de la aplicación, medido en "dp" sin incluir las áreas de pantalla reservadas por el sistema. El ancho y la altura de un cambio de pantalla cuando el usuario cambia la orientación entre horizontal y vertical.
La nueva API de compatibilidad con pantallas está diseñada para permitirte administrar la IU de la aplicación de acuerdo con el ancho más pequeño de la pantalla actual. También puedes administrar el IU de acuerdo con el ancho o la altura actuales, según sea necesario. Para esos fines, la API proporciona estas herramientas:
- Nuevos calificadores de recursos para orientar diseños y otros recursos a un el ancho mínimo, el ancho o la altura, y
- Nuevos atributos de manifiesto para especificar el límite rango de compatibilidad de pantalla
Además, las aplicaciones aún pueden consultar el sistema y administrar la IU y de recursos durante el tiempo de ejecución, al igual que en las versiones anteriores de la plataforma.
Dado que la nueva API permite apuntar a pantallas más directamente a través de smallWidth, ancho y alto, es útil comprender las características de los diferentes tipos de pantalla. En la siguiente tabla, se proporcionan algunas ejemplos, medidos en "dp" unidades.
Tabla 1: Dispositivos típicos, con densidad y el tamaño en dp.
Tipo | Densidad (generalizado) | Dimensiones (dp) | SmallWidth (dp) |
---|---|---|---|
Teléfono de referencia | mdpi | 320 × 480 | 320 |
Tablet pequeña/teléfono grande | mdpi | 480 × 800 | 480 |
Tablet de 7 pulgadas | mdpi | 600 × 1,024 | 600 |
Tablet de 10 pulgadas | mdpi | 800 × 1280 | 800 |
En las siguientes secciones, se proporciona más información sobre los nuevos calificadores de pantalla y los atributos del manifiesto. Para obtener información completa sobre el uso de la pantalla API de compatibilidad, consulta Compatibilidad con varios Pantallas.
Nuevos calificadores de recursos para la compatibilidad con pantallas
Los nuevos calificadores de recursos de Android 3.2 te permiten orientar mejor tus diseños para varios tamaños de pantalla. Con los calificadores, puedes crear recursos de configuraciones diseñadas para un ancho mínimo, un ancho actual o un ancho mínimo altura actual, medida en píxeles independientes de la densidad.
Los nuevos calificadores son los siguientes:
swNNNdp
: Especifica el ancho más pequeño en el que se debe usar el recurso, medido en "dp" unidades. Como se mencionó anteriormente, un El ancho de pantalla más pequeño de la pantalla es constante, independientemente de la orientación. Ejemplos:sw320dp
,sw720dp
ysw720dp
.wNNNdp
yhNNNdp
: Especifica el mínimo ancho o alto en los que se debe usar el recurso, medido en "dp" unidades. Como mencionado anteriormente, el ancho y la altura de una pantalla son relativos a la orientación de la pantalla y cambiar cada vez que cambie la orientación. Ejemplos:w320dp
,w720dp
yh1024dp
.
También puedes crear varias configuraciones de recursos superpuestas si es necesario. Por ejemplo, podrías etiquetar algunos recursos para usarlos en cualquier pantalla con un ancho de más de 480 dp, otras para un ancho superior a 600 dp y otras para un ancho superior a 720 dp. Cuándo se califican varias configuraciones de recursos para una pantalla determinada, el sistema selecciona la configuración con la coincidencia más cercana. Para un control preciso de qué recursos se cargan en una pantalla determinada, puedes etiquetar recursos con calificador o combinar varios calificadores nuevos o existentes.
Según las dimensiones típicas mencionadas anteriormente, aquí hay algunos ejemplos de cómo podrías usar los nuevos calificadores:
res/layout/main_activity.xml # For phones res/layout-sw600dp/main_activity.xml # For 7” tablets res/layout-sw720dp/main_activity.xml # For 10” tablets res/layout-w600dp/main_activity.xml # Multi-pane when enough width res/layout-sw600dp-w720dp/main_activity.xml # For large width
Las versiones anteriores de la plataforma ignorarán los calificadores nuevos, así que puedes Puedes combinarlos según sea necesario para que tu app se vea genial en cualquier dispositivo. Aquí Estos son algunos ejemplos:
res/layout/main_activity.xml # For phones res/layout-xlarge/main_activity.xml # For pre-3.2 tablets res/layout-sw600dp/main_activity.xml # For 3.2 and up tablets
Para obtener información completa sobre cómo utilizar los nuevos calificadores, consulta Cómo utilizar los nuevos calificadores de tamaño.
Nuevos atributos del manifiesto para la compatibilidad con el tamaño de la pantalla
El framework ofrece un nuevo conjunto de atributos del manifiesto <supports-screens>
que permiten
administras la compatibilidad de tu app con diferentes tamaños de pantalla.
Específicamente, puedes especificar las pantallas más grandes y más pequeñas en las que tu app
está diseñado para ejecutarse, así como la pantalla más grande en la que está diseñado para ejecutarse
sin la necesidad de la nueva pantalla del sistema
modo de compatibilidad. Al igual que los calificadores de recursos descritos anteriormente, el nuevo
los atributos del manifiesto especifican el rango de pantallas que admite la aplicación,
según lo especificado por smallWidth.
Los nuevos atributos del manifiesto para compatibilidad con pantallas son los siguientes:
android:compatibleWidthLimitDp="numDp"
— Este te permite especificar el ancho más pequeño en el que la aplicación pueden ejecutarse sin necesitar el modo de compatibilidad. Si la pantalla actual es más grande de valor especificado, el sistema muestra la aplicación en modo normal, pero permite al usuario cambiar de manera opcional al modo de compatibilidad a través de una configuración en la barra del sistema.android:largestWidthLimitDp="numDp"
— Este te permite especificar el ancho más pequeño en el que la aplicación está diseñado para ejecutarse. Si la pantalla actual es más grande que el valor especificado, el sistema fuerza a la aplicación al modo de compatibilidad de pantalla para garantizar para que aparezca en la pantalla actual.android:requiresSmallestWidthDp="numDp"
— Este te permite especificar el ancho más pequeño en el que la aplicación pueden ejecutarse. Si la pantalla actual es menor que el valor especificado, el sistema considera que la aplicación es incompatible con el dispositivo, pero no lo evita instalarse y ejecutarse.
Nota: Por el momento, Google Play no aplica filtros
en función de cualquiera de los atributos anteriores. La compatibilidad con el filtrado será
agregados en una versión posterior de la plataforma. Aplicaciones que requieren
que filtra en función del tamaño de la pantalla puede usar el <supports-screens>
existente
atributos.
Para obtener información completa sobre cómo usar los nuevos atributos, consulta Cómo declarar compatibilidad con tamaños de pantalla.
Modo de compatibilidad de pantalla
Android 3.2 ofrece un nuevo modo de compatibilidad de pantalla para las aplicaciones declarando explícitamente que no admiten pantallas tan grandes como la de que se están ejecutando. Este nuevo "zoom" está en escala de píxeles, renderiza la aplicación en un área de pantalla más pequeña y, luego, escala los píxeles para llenar la pantalla actual.
De forma predeterminada, el sistema ofrece el modo de compatibilidad de pantalla como opción para el usuario para las apps que lo requieren. Los usuarios pueden activar y desactivar el modo de zoom con un control disponible en la barra del sistema.
Debido a que el nuevo modo de compatibilidad de pantalla puede no ser adecuado para todos, aplicaciones, la plataforma permite que la aplicación la inhabilite mediante el uso atributos. Cuando la app lo inhabilita, el sistema no ofrece "zoom". compatibilidad como opción para los usuarios cuando se ejecuta la aplicación.
Nota: Si deseas obtener información importante sobre cómo Para controlar el modo de compatibilidad de tus aplicaciones, consulta el artículo Modo nuevo para aplicaciones en pantallas grandes en la versión de Android. Blog para desarrolladores.
Nueva densidad de pantalla para televisiones de 720p y dispositivos similares
Para satisfacer las necesidades de las aplicaciones que se ejecutan en televisores de 720p o similares con
en pantallas de densidad moderada, Android 3.2 introduce una nueva densidad generalizada,
tvdpi
, con una resolución aproximada de 213 dpi. Las aplicaciones pueden consultar
la nueva densidad en densityDpi
y puedes usar
el nuevo calificador tvdpi
para etiquetar recursos para televisores y
dispositivos similares. Por ejemplo:
res/drawable-tvdpi/my_icon.png # Bitmap for tv density
En general, no es necesario que las aplicaciones trabajen con esta densidad. Para situaciones en la que se necesita una salida para una pantalla de 720p, los elementos de la IU se pueden escalar automáticamente en la plataforma.
Framework de IU
- Fragmentos
- Una nueva clase
Fragment.SavedState
contiene el estado. información recuperada de una instancia de fragmento a través desaveFragmentInstanceState()
- Nuevo método
saveFragmentInstanceState()
guarda el estado actual de la instancia de el Fragment dado. El estado se puede usar más adelante cuando crees una instancia nueva del fragmento que coincida con el estado actual. - Nuevo método
setInitialSavedState()
Establece el estado guardado inicial de un fragmento cuando se construye por primera vez. - El nuevo método de devolución de llamada
onViewCreated()
notifica al fragmento queonCreateView()
pero antes de que se restablezca cualquier estado guardado en la Vista. - El método
isDetached()
determina si El fragmento se desvinculó explícitamente de la IU. - Nuevo
attach()
ydetach()
. permiten que una aplicación vuelva a adjuntar o separar fragmentos en la IU. - Un nuevo método de sobrecarga de
setCustomAnimations()
te permite establecer una animación específica recursos para ejecutar en operaciones de entrada y salida, y específicamente cuando se abre la pila de actividades. La implementación existente no tiene en cuenta para el diferente comportamiento de los fragmentos cuando se muestra la pila de actividades.
- Una nueva clase
- Información sobre el tamaño de pantalla en ActivityInfo y ApplicationInfo
ActivityInfo
agrega aCONFIG_SCREEN_SIZE
yCONFIG_SMALLEST_SCREEN_SIZE
como máscaras binarias enconfigChanges
. Los bits indican si una Actividad puede controla el tamaño de pantalla y el tamaño de pantalla más pequeño.ApplicationInfo
de agregadoslargestWidthLimitDp
,compatibleWidthLimitDp
yrequiresSmallestWidthDp
, derivada de los atributos<supports-screens>
correspondientes en el archivo de manifiesto de la aplicación.
- Ayudas para obtener el tamaño de visualización de WindowManager
- Los nuevos métodos
getSize()
ygetRectSize()
permiten que las aplicaciones obtengan el tamaño sin procesar de la pantalla.
- Los nuevos métodos
- Nuevo "holográfico" público estilos
- La plataforma ahora expone varias imágenes "holográficas" públicas estilos
para acceder a texto, widgets y pestañas de la barra de acciones y más. Consulta
R.style
para ver la lista completa.
- La plataforma ahora expone varias imágenes "holográficas" públicas estilos
para acceder a texto, widgets y pestañas de la barra de acciones y más. Consulta
LocalActivityManager
,ActivityGroup
yLocalActivityManager
dejó de estar disponible- Las aplicaciones nuevas deben usar fragmentos en lugar de estas clases. Para sigan ejecutándose en versiones anteriores de la plataforma, puedes usar la compatibilidad con la v4 Biblioteca (biblioteca de compatibilidad), disponible en el SDK de Android. La asistencia de la v4 La biblioteca proporciona una versión de la API de Fragment que es compatible hasta Android 1.6 (nivel de API 4)
- Para las apps que se desarrollan para Android 3.0 (nivel de API)
11) o versiones posteriores, por lo general, las pestañas se presentan en la IU con el nuevo
ActionBar.newTab()
y APIs relacionadas para ubicar las pestañas en el área de su barra de acciones.
Marco de trabajo de medios
- Las aplicaciones que usan el proveedor de contenido multimedia de la plataforma (
MediaStore
) ahora pueden leer datos multimedia directamente desde la Tarjeta SD extraíble, si el dispositivo lo admite. Las aplicaciones también pueden interactuar directamente con los archivos de la tarjeta SD mediante la API de MTP.
Gráficos
- Utilidades parcelables en Point y PointF
Point
yPointF
Las clases ahora incluyen la interfazParcelable
y los métodos de utilidaddescribeContents()
,readFromParcel()
ywriteToParcel()
.
Marco de IME
- Nuevo método
getModifiers()
para recuperar el estado actual de las teclas modificadoras.
Framework USB
- Nuevo método
getRawDescriptors()
para recuperar los descriptores USB sin procesar para el dispositivo. Puedes usar la para acceder a los descriptores que no se admiten directamente mediante el método APIs de nivel de servicio.
Red
- Constantes de tipo de red
ConnectivityManager
agrega las constantesTYPE_ETHERNET
yTYPE_BLUETOOTH
.
Telefonía
- Nueva constante de tipo de red
NETWORK_TYPE_HSPAP
.
Utilidades principales
- Utilidades parcelables
- Nueva interfaz
Parcelable.ClassLoaderCreator
permite que la aplicación reciba el ClassLoader en el que se crea el objeto. - Nuevos
adoptFd
,dup()
yfromFd()
para administrarParcelFileDescriptor
.
- Nueva interfaz
- IBinder y Binder
- Nuevo método
dumpAsync()
enBinder
yIBinder
permiten que las aplicaciones a un archivo específico, lo que garantiza que el destino se ejecute de forma asíncrona. - El nuevo código de transacción del protocolo
IBinder
,TWEET_TRANSACTION
, permite que las aplicaciones envíen un tweet al objeto de destino.
- Nuevo método
Nuevas constantes de funciones
La plataforma agrega nuevas constantes de funciones de hardware que puedes declarar
en los manifiestos de sus aplicaciones, para informar a entidades externas como Google
Reproducción de las capacidades de hardware y software requeridas. Las declaras
y otras constantes de funciones en los elementos del manifiesto <uses-feature>
.
Google Play filtra las aplicaciones en función de sus atributos <uses-feature>
para garantizar que estén disponibles solo para los dispositivos que cumplan con sus requisitos.
- Constantes de funciones para los requisitos de orientación horizontal o vertical
Android 3.2 presenta nuevas constantes de funciones que permiten a las aplicaciones especificar si requieren la visualización en orientación horizontal, vertical o ambas. La declaración de estas constantes indica que la aplicación no debe instalarse en un dispositivo que no ofrezca la orientación asociada. Por el contrario, si no se declaran una o ambas constantes, esto indica que la aplicación no tiene preferencia por las orientaciones no declaradas y puede instalarse en un dispositivo que no las ofrezca.
android.hardware.screen.landscape
: La aplicación requiere que se muestre en con orientación horizontal.android.hardware.screen.portrait
: La aplicación requiere que se muestre en orientación vertical.
Una aplicación típica que funciona correctamente tanto en la orientación horizontal como en la vertical normalmente no necesitaría declarar un requisito de orientación. En cambio, una aplicación diseñada principalmente para una orientación, como una app diseñada para una televisión, podría declarar una de las constantes a fin de garantizar que no esté disponible para dispositivos que no proporcionen esa orientación.
Si alguna de las actividades declaradas en el manifiesto solicita que se ejecuten en una orientación específica, con el atributo
android:screenOrientation
, esto también declara que la aplicación requiere esa orientación. - Otras constantes de funciones
android.hardware.faketouch.multitouch.distinct
: La aplicación requiere compatibilidad con la entrada multitáctil emulada con un seguimiento distinto de dos o más puntos.android.hardware.faketouch.multitouch.jazzhand
: La aplicación requiere compatibilidad con la entrada multitáctil emulada con un seguimiento distinto de cinco o más puntos.
Informe de diferencias de las APIs
Puedes acceder a una vista detallada de todos los cambios de la API en Android 3.2 (API Nivel 13), consulta la sección Informe de diferencias.
Nivel de API
La plataforma Android 3.2 ofrece una versión actualizada de la API del framework. La API de Android 3.2 se le asigna un identificador de número entero, 13: Es decir, almacenados 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 en tu aplicación las APIs que se introdujeron en Android 3.2,
debes compilar la aplicación en la biblioteca de Android que se proporciona en
la plataforma del SDK de Android 3.2. Según tus necesidades,
podría
también debes agregar un android:minSdkVersion="13"
al elemento <uses-sdk>
en la carpeta de la aplicación
.
Para obtener más información, consulta Qué es la API nivel?