APIs de Android 3.2

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 y sw720dp.
  • wNNNdp y hNNNdp: 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 y h1024dp.

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 de saveFragmentInstanceState()
    • 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 que onCreateView() 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() y detach(). 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.
  • Información sobre el tamaño de pantalla en ActivityInfo y ApplicationInfo
  • Ayudas para obtener el tamaño de visualización de WindowManager
    • Los nuevos métodos getSize() y getRectSize() permiten que las aplicaciones obtengan el tamaño sin procesar de la pantalla.
  • 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.
  • LocalActivityManager, ActivityGroup y LocalActivityManager 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

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

Telefonía

Utilidades principales

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.

    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

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?