Descripción general de la compatibilidad de dispositivos

Android está diseñado para ejecutarse en muchos dispositivos diferentes, como teléfonos, tabletas y televisores. La variedad de dispositivos brinda un gran potencial público de tu app. Para que tu app tenga éxito en todos los dispositivos, toleran la variabilidad de las funciones y proporcionan una interfaz de usuario flexible que se adapta a diferentes configuraciones de pantalla.

Para ayudar con la compatibilidad de los dispositivos, Android proporciona un framework de apps dinámico. en el que puedes proporcionar reglas de firewall recursos de la app en estática como diferentes diseños XML para distintos tamaños de pantalla. Android, luego carga los recursos adecuados según la configuración actual del dispositivo. Con previstos para el diseño de tu aplicación y los recursos adicionales de la aplicación, puedes publicar un un único paquete de aplicación (APK) que optimiza la experiencia del usuario en varios de dispositivos.

Sin embargo, si es necesario, puedes especificar los requisitos de las funciones de tu app y controlar qué tipos de dispositivos pueden instalar tu app desde Google Play Store En este documento, se explica cómo puedes controlar qué dispositivos tienen acceso a tus y cómo prepararlas para llegar al público adecuado.

¿Qué significa "compatibilidad"?

En lo que respecta al desarrollo de Android, existen dos tipos de compatibilidad: compatibilidad de dispositivos y compatibilidad de apps.

Como Android es un proyecto de código abierto, cualquier fabricante de hardware puede compilar un dispositivo que ejecute el sistema operativo Android. Pero un dispositivo es "Compatible con Android" solo si puede ejecutar correctamente las aplicaciones escritas para el Entorno de ejecución de Android Los detalles exactos de Android entorno de ejecución son definidos por el En Android programa de compatibilidad. Cada dispositivo debe superar el Conjunto de pruebas de compatibilidad (CTS) para que se considere compatible.

Como desarrollador de aplicaciones, no tienes que preocuparte por si el dispositivo Compatible con Android, porque solo los dispositivos que lo son incluyen Google Play Store Por lo tanto, si un usuario instala tu app desde Google Play Store, estén usando un dispositivo compatible con Android.

Sin embargo, debes considerar si tu app es compatible con cada la posible configuración del dispositivo. Como Android se ejecuta en una amplia variedad de dispositivos algunas funciones no están disponibles en todos los dispositivos. Por ejemplo, algunos es posible que los dispositivos no incluyan sensor de brújula. Si la funcionalidad principal de tu app requiere un sensor de brújula, entonces tu aplicación solo es compatible con dispositivos que incluyen esa función.

Controla la disponibilidad de tu app para los dispositivos

Android admite una variedad de funciones que tu app puede aprovechar a través de la plataforma. APIs Algunas funciones se basan en hardware, como el sensor de brújula. algunos son basadas en software, como los widgets de apps; y otros dependen de la versión de la plataforma. No todos los dispositivos son compatibles con todas las funciones, por lo que tal vez debas controlar la disponibilidad de los dispositivos según las funciones que requiera tu app.

Para lograr la mayor base de usuarios posible para tu app, brinda asistencia a la mayor cantidad posible las configuraciones de dispositivos tanto como sea posible con un solo APK o AAB. En la mayoría de las situaciones, puedes hacerlo inhabilitando funciones opcionales en el tiempo de ejecución y app proveedora recursos con alternativas para diferentes parámetros de configuración, como diseños para diferentes tamaños de pantalla. Si es necesario, puedes restringir el acceso de tu app disponibilidad para ciertos dispositivos a través de Google Play Store de acuerdo con los siguientes Características del dispositivo:

Funciones del dispositivo

Para administrar la disponibilidad de tu app según las funciones del dispositivo, Android define ID de función de cualquier función de hardware o software que no sea disponible en todos los dispositivos. Por ejemplo, el ID de función para el sensor de brújula es FEATURE_SENSOR_COMPASS, y el ID de función para widgets de apps es FEATURE_APP_WIDGETS

Si es necesario, puedes evitar que los usuarios instalen tu app cuando Los dispositivos no proporcionan una función necesaria mediante la declaración de la función con un <uses-feature> en la API de tu aplicación archivo de manifiesto.

Por ejemplo, si tu app no tiene sentido en un dispositivo que no tiene brújula puedes declarar el sensor de brújula como un requisito de la siguiente manera: etiqueta de manifiesto:

<manifest ... >
    <uses-feature android:name="android.hardware.sensor.compass"
                  android:required="true" />
    ...
</manifest>

Google Play Store compara las funciones que requiere tu app con el funciones disponibles en los dispositivos de cada usuario para determinar si tu app compatible con cada dispositivo. Si el dispositivo no tiene todas las funciones requiere la aplicación, el usuario no puede instalarla.

Sin embargo, si la funcionalidad principal de tu app no requiere una del dispositivo, configura el required a "false" y verifica la función del dispositivo durante el tiempo de ejecución. Si la función de la app no está disponible en el dispositivo actual, realiza una degradación elegante función de la app correspondiente. Por ejemplo, puedes consultar si un atributo está disponible llamando hasSystemFeature() así:

Kotlin

if (!packageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
    // This device doesn't have a compass. Turn off the compass feature.
    disableCompassFeature()
}

Java

PackageManager pm = getPackageManager();
if (!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
    // This device doesn't have a compass. Turn off the compass feature.
    disableCompassFeature();
}

Si quieres obtener información sobre todos los filtros que puedes usar para controlar la disponibilidad de tu app mediante Google Play Store, consulta la Filtros en Google Play en la documentación de Google Cloud.

Versión de plataforma

Distintos dispositivos pueden ejecutar diferentes versiones de la plataforma de Android, como como Android 12 o Android 13. Cada versión posterior de la plataforma suele agregar APIs. no disponible en la versión anterior. Para indicar qué conjunto de APIs se disponible, cada versión de la plataforma especifica un Nivel de API. Por ejemplo, Android 12 tiene un nivel de API 31 y Android 13 tiene un nivel de API 33.

Debes especificar minSdkVersion y targetSdkVersion valores en tu archivo build.gradle:

Kotlin

android {
    defaultConfig {
        applicationId = "com.example.myapp"

        // Defines the minimum API level required to run the app.
        minSdkVersion(30)

        // Specifies the API level used to test the app.
        targetSdkVersion(33)
        ...
    }
}

Groovy

android {
    defaultConfig {
        applicationId 'com.example.myapp'

        // Defines the minimum API level required to run the app.
        minSdkVersion 30

        // Specifies the API level used to test the app.
        targetSdkVersion 33
        ...
    }
}

Para obtener más información sobre el archivo build.gradle, consulta Configura tu compilación.

Cada versión posterior de Android brinda compatibilidad para las apps compiladas. usando las APIs de versiones anteriores de la plataforma, de modo que tu app sea compatible con versiones futuras de Android mientras usan las APIs de Android documentadas.

Sin embargo, si tu app usa APIs agregadas en una versión más reciente de la plataforma, pero no los requiera para su funcionalidad principal, comprueba el nivel de API en del entorno de ejecución y degradar de forma elegante las funciones correspondientes cuando el nivel de API demasiado bajo. En este caso, establece minSdkVersion en el valor más bajo. posible para la funcionalidad principal de tu app y, luego, compararla versión, SDK_INT, a la constante del nombre interno en Build.VERSION_CODES que corresponda al nivel de API que desees verificar, como se muestra a continuación ejemplo:

Kotlin

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
    // Running on something older than API level 11, so disable
    // the drag and drop features that use ClipboardManager APIs.
    disableDragAndDrop()
}

Java

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
    // Running on something older than API level 11, so disable
    // the drag and drop features that use ClipboardManager APIs.
    disableDragAndDrop();
}

Configuración de pantalla

Android se ejecuta en dispositivos de varios tamaños, como teléfonos, tablets y TVs. Para categorizar los dispositivos según el tipo de pantalla, Android define dos características: cada dispositivo: tamaño de pantalla (el tamaño físico de la pantalla) y densidad de la pantalla (la densidad física de los píxeles en la pantalla, conocida como DPI). Para simplificar los diferentes de configuraciones, Android generaliza estas variantes en grupos que las hacen más fácil de segmentar:

  • Cuatro tamaños generalizados: pequeño, normal, grande y extragrande
  • Varias densidades generalizadas: mdpi (media), hdpi (alta), xhdpi (extra) alta), xxhdpi (extra-extra alta) y otros

De forma predeterminada, tu app es compatible con todos los tamaños y densidades de pantalla, porque el sistema ajusta el diseño de la IU y los recursos de imagen según necesario para cada pantalla. Proporciona imágenes de mapas de bits optimizadas para pantallas comunes densidades.

Optimiza la experiencia del usuario con diseños flexibles tanto como sea posible. Donde hay diseños para cambios de configuración grandes, como vertical y horizontal o tamaños de ventana grandes o pequeños, considera proporcionar que sean flexibles a cambios más pequeños en la configuración. Esto mejora la experiencia del usuario en factores de forma como tablets, teléfonos y dispositivos plegables. Integra también ayuda cuando las ventanas cambian de tamaño en el modo multiventana.

Si deseas obtener información sobre cómo crear recursos alternativos para diferentes pantallas y cómo restringir tu app a ciertos tamaños de pantalla cuando sea necesario lee el compatibilidad de pantalla Resumen y consulta la app para pantalla grande lineamientos de calidad.

Controla la disponibilidad de tu app por motivos comerciales

Además de restringir la disponibilidad de tu app según el dispositivo es posible que debas restringir la disponibilidad de tu app o por motivos legales. Para este tipo de situación, Google Play Store proporciona opciones de filtrado en Play Console que te permiten controlar la configuración disponibilidad por razones no técnicas, como configuración regional del usuario proveedor.

Filtrado de compatibilidad técnica, como hardware requerido componentes) siempre se basa en la información incluida en tu APK o AAB. . Pero filtrar por razones no técnicas, como la configuración regional, siempre se maneja en la Google Play Console

Recursos adicionales:

Descripción general de los recursos de la app
Información sobre cómo se estructuran las aplicaciones para Android para separar las aplicaciones recursos desde el código de la app, como la forma de brindar alternativas para configuraciones de dispositivos específicos.
Filtros en Google Play
Información sobre las diferentes formas en que Google Play Store puede evitar que para evitar que se instale en dispositivos diferentes.
Permisos en Android
Cómo restringe Android el acceso de las apps a ciertas APIs con un sistema de permisos que requiere el consentimiento del usuario para que tu app use esas APIs.