Android Developers
Plataforma Android Studio Google Play Jetpack Kotlin Documentos Juegos
  • English
  • Bahasa Indonesia
  • Español – América Latina
  • Português – Brasil
  • 中文 – 简体
  • 日本語
  • 한국어
Acceder
  • Documentación
Descripción general Guías Referencia Ejemplos Diseño y calidad
Android Developers
  • Plataforma
  • Android Studio
  • Google Play
  • Jetpack
  • Kotlin
  • Documentos
    • Descripción general
    • Guías
    • Referencia
    • Ejemplos
    • Diseño y calidad
  • Juegos
  • Aspectos básicos de la app
  • Introducción
  • Cómo crear tu primera app
    • Descripción general
    • Cómo crear un proyecto de Android
    • Cómo ejecutar tu app
    • Cómo crear una interfaz de usuario sencilla
    • Cómo iniciar otra actividad
  • Aspectos fundamentales de la app
  • Recursos de la app
    • Descripción general
    • Cómo administrar los cambios en la configuración
    • Localización
      • Cómo localizar tu app
      • Cómo probar tu app con configuraciones regionales simuladas
      • Unicode y compatibilidad internacional
      • Resolución de idioma y configuración regional
    • Recursos XML complejos
    • Tipos de recursos
      • Descripción general
      • Animación
      • Lista de estado de colores
      • Elemento de diseño
      • Diseño
      • Menú
      • String
      • Estilo
      • Fuente
      • Más tipos
  • Archivo de manifiesto de la app
    • Descripción general
    • <action>
    • <activity>
    • <activity-alias>
    • <application>
    • <category>
    • <compatible-screens>
    • <data>
    • <grant-uri-permission>
    • <instrumentation>
    • <intent-filter>
    • <manifest>
    • <meta-data>
    • <path-permission>
    • <permission>
    • <permission-group>
    • <permission-tree>
    • <profileable>
    • <provider>
    • <queries>
    • <receiver>
    • <service>
    • <supports-gl-texture>
    • <supports-screens>
    • <uses-configuration>
    • <uses-feature>
    • <uses-library>
    • <uses-native-library>
    • <uses-permission>
    • <uses-permission-sdk-23>
    • <uses-sdk>
  • Dispositivos
  • Compatibilidad con dispositivos
    • Descripción general
    • Descripción general de la compatibilidad de pantallas
    • Cómo brindar compatibilidad con diferentes densidades de píxeles
    • Cómo declarar una compatibilidad de pantalla restringida
    • Compatibilidad con varios APK
      • Descripción general
      • Cómo crear varios APK para diferentes niveles de API
      • Cómo crear varios APK para diferentes tamaños de pantallas
      • Cómo crear varios APK para diferentes texturas GL
      • Cómo crear varios APK con numerosas dimensiones
    • Cómo brindar compatibilidad con diferentes idiomas y culturas
    • Cómo brindar compatibilidad con diferentes versiones de plataformas
    • Filtros en Google Play
  • Tablets, pantallas grandes y dispositivos plegables
    • Cómo comenzar a desarrollar para pantallas grandes
    • Proyección de contenido multimedia
    • Formato letterbox mejorado
    • Cómo compilar IU responsivas
      • Cómo brindar compatibilidad con diferentes tamaños de pantalla
      • Navegación para IU responsivas
      • Cómo migrar tu IU a diseños responsivos
      • Incorporación de actividad
      • Compatibilidad con el modo Multiventana
      • Compatibilidad de entrada en pantallas grandes
    • Cómo compilar para dispositivos plegables
      • Más información sobre dispositivos plegables
      • Cómo hacer que tu app funcione en dispositivos plegables
      • Cómo probar tu app en dispositivos plegables
  • Wear
    • Cómo comenzar
    • Principios del desarrollo para Wear OS
    • Cómo actualizar a la versión más reciente de Wear OS
    • Diferencias entre el desarrollo para Wear OS y el desarrollo para dispositivos móviles
    • Interfaz de usuario de Wear OS
    • Cómo comenzar
      • Ruta para desarrolladores de Wear OS
      • Cómo crear y ejecutar una app para wearables
      • Cómo depurar una app de Wear OS
      • Cómo tomar capturas de pantalla con la IU de Wear
    • Superposiciones
      • Descripción general
      • Cómo reproducir audio en wearables
      • Autenticación
      • App autónoma
      • Solicitará permisos
      • Cómo detectar la ubicación
      • Aparece en Recientes y Reanudación de la app
    • Cómo compilar la IU con Compose
      • Cómo usar Jetpack Compose en Wear OS
      • Botones
      • Tarjetas
      • Chips
      • Listas
      • Indicadores de página
      • Selectores
      • Indicador de posición
      • Indicador de progreso
      • Controles deslizantes
      • Stepper
      • Desliza para descartar
      • Chips de activación
      • TimeText
    • Cómo compilar IU con Views
      • Cómo compilar IU basadas en objetos View en Wear OS
      • Cómo controlar diferentes formas de reloj
      • Opciones de pantalla
      • Crear listas
      • Navegación
      • Cómo salir de las actividades de pantalla completa en Wear
      • Mostrar confirmaciones
      • Cómo mantener tu app visible en Wear
    • Mosaicos y complicaciones
      • Descripción general de las tarjetas
      • Complicaciones de caras de reloj
      • Cómo exponer datos a complicaciones
    • Notificaciones
      • Notificaciones en Wear OS
      • Cómo unir opciones para las notificaciones
      • Actividades continuas
    • Cómo controlar datos
      • Cómo enviar y sincronizar datos en Wear OS
      • Acceso a la red y sincronización en Wear OS
      • Cómo acceder a Data Layer para wearables
      • Transferencia de recursos
      • Envío y recepción de mensajes
      • Administración de eventos de Data Layer
      • Cómo sincronizar elementos de datos con la API de Data Layer
    • Entrada del usuario
      • Botones físicos
      • Entrada rotativa
      • Cómo crear editores de métodos de entrada en Wear
      • Voz
    • Servicios de salud
      • Descripción general
      • Ejercicio y datos activos
      • Actualizaciones de datos pasivos
      • Cómo usar proveedores de datos sintéticos
    • Diseño
      • Principios de diseño
      • Cómo comenzar
      • Tipos de interacción
      • Formas de la pantalla
      • Notificaciones
      • Complicaciones
      • Azulejos
      • Sistema de diseño de azulejos
      • Superposiciones
      • Actividades continuas
      • Superposición de confirmación
      • Indicadores de desconexión
      • Mensajes de permisos
      • Controles de selección
      • Inicio y latencia
      • Navegación
      • Permisos
      • Acceder
      • Botones de hardware
      • Color
      • Tipografía
      • Íconos
      • Descargas
      • Temas de material de Wear
    • Cómo crear caras de reloj
      • Descripción general
      • Cómo diseñar caras de reloj
      • Cómo crear un servicio para caras de reloj
      • Cómo dibujar caras de reloj
      • Cómo agregar complicaciones a una cara de reloj
      • Cómo crear caras de reloj interactivas
      • Cómo proporcionar actividades de configuración
      • Cómo resolver problemas comunes
      • Cómo mejorar el rendimiento con la aceleración de hardware
      • Cómo optimizar el rendimiento y la duración de batería
    • Watch Face Studio
      • Watch Face Studio
      • Combinaciones de teclas
      • Cómo administrar un proyecto de Watch Face Studio
      • Cómo crear una cara de reloj con Watch Face Studio
      • Complicaciones de compilación en Watch Face Studio
      • Expresiones de etiqueta
      • Configuración de idioma
      • Siempre encendida en Watch Face Studio
      • Efectos de giroscopio
      • Cómo crear y subir contenido desde Watch Face Studio
      • Cómo probar la cara de reloj
      • Preguntas frecuentes
    • Calidad de las apps para Wear
    • Cómo empaquetar apps de Wear OS
    • Cómo distribuir a Wear OS
    • Cómo crear apps de Wear OS para China
    • Notas de la versión para Wear OS
  • Android TV
    • Descripción general
    • Cómo crear apps para TV
      • Descripción general
      • Cómo comenzar a usar apps para TV
      • Bibliotecas de AndroidX TV
      • Cómo controlar hardware de TV
      • Cómo administrar controladores de TV
      • Cómo crear diseños de TV
      • Teclado en pantalla
      • Cómo desarrollar la navegación para TV
      • Prácticas recomendadas para aumentar las interacciones con Google TV
    • Cómo crear apps de reproducción para TV
      • Descripción general
      • Guía de la IU y API de Leanback
        • Cómo crear un navegador de catálogos
        • Cómo proporcionar una vista de tarjetas
        • Cómo crear una vista de detalles
        • Cómo usar los controles de transporte
        • Controles de reproducción en TV
        • Cómo agregar un paso guiado
        • Cómo presentar tu app a los usuarios que acceden por primera vez
      • Cómo implementar una sesión multimedia
      • Reproducción en segundo plano en una tarjeta de Está sonando
      • Capacidades de audio
      • Cómo igualar velocidad de fotogramas del contenido
    • Cómo ayudar a los usuarios a encontrar contenido en la TV
      • Descripción general
      • Cómo recomendar contenido de TV
        • Descripción general
        • Canales en la pantalla principal
        • Atributos de programación de video
        • Atributos de programación de audio
        • Atributos de programación de juegos
        • Ver siguiente
          • Agregar programas
          • Atributos
          • Lineamientos para desarrolladores de apps
          • Lineamientos para proveedores de TV
        • Cómo obtener vistas previas de videos
        • Recomendaciones para Android N y versiones anteriores
      • Cómo permitir las búsquedas en apps para TV
      • Cómo realizar búsquedas en apps para TV
    • Cómo crear juegos para TV
      • Descripción general
      • Cómo usar Stream Protect para las apps de transmisión sensibles a la latencia
    • Compila servicios de entrada de TV
      • Descripción general
      • Cómo desarrollar un servicio de entrada de TV
      • Cómo trabajar con datos del canal
      • Cómo administrar la interacción del usuario con la TV
      • Compatibilidad con time-shifting
      • Compatibilidad con la grabación de contenido
    • Lista de verificación de apps para TV
    • Accesibilidad en TVs
      • Prácticas recomendadas sobre accesibilidad
      • Ejemplos de evaluación de TalkBack
      • Cómo adoptar la configuración de subtítulos del sistema
      • Compatibilidad con accesibilidad de vistas personalizada
      • Muestra de accesibilidad de vistas personalizada
    • Versiones
      • Android 12 para TV
      • Android 13 para TV (beta)
        • Descripción general
        • Novedades de TV
  • Android para vehículos
    • Descripción general
    • Cómo compilar apps multimedia para vehículos
      • Cómo compilar apps multimedia para vehículos
      • Cómo agregar compatibilidad con Android Auto
      • Cómo agregar compatibilidad con el SO Android Automotive
    • Cómo compilar apps de mensajería para Android Auto
    • Cómo compilar apps de navegación y lugares de interés para autos
      • Cómo usar la biblioteca de apps de Android para vehículos
      • Cómo compilar apps de lugares de interés para autos
      • Cómo compilar apps de navegación para autos
      • Cómo agregar compatibilidad con Android Auto
      • Cómo agregar compatibilidad con el SO Android Automotive
    • Compilación de apps de video para el SO Android Automotive
    • Cómo probar apps de Android para vehículos
    • Distribuye apps para Android en vehículos
    • Servicios de Google Play para vehículos
    • Notificaciones en el SO Android Automotive
  • Dispositivos Chrome OS
    • Descripción general
    • Cómo crear apps para el Sistema operativo Chrome
    • Cómo optimizar apps para el Sistema operativo Chrome
    • Cómo preparar tu entorno de desarrollo
    • Compatibilidad con manifiestos de apps para Chromebooks
    • Compatibilidad de dispositivos con el Sistema operativo Chrome y apps
    • Diferencias en el procesamiento de apps en Chromebooks
    • Administración de ventanas
    • Cómo adaptar juegos para Chrome OS
    • Animación fluida en el Sistema operativo Chrome
    • Casos de prueba de apps para Android en Chrome OS
  • Arquitectura de la app
  • Introducción
  • Guía de arquitectura de apps
    • Descripción general
    • Capa de la IU
      • Descripción general
      • Eventos de la IU
    • Capa de dominio
    • Capa de datos
    • Ruta de aprendizaje
  • Componentes de la arquitectura
    • Bibliotecas de capas de IU
      • Vinculación de vista
        • Descripción general
        • Cómo migrar de sintéticos de Kotlin para ver los enlaces
      • Biblioteca de vinculación de datos
        • Descripción general
        • Cómo comenzar
        • Diseños y expresiones vinculantes
        • Cómo trabajar con objetos de datos observables
        • Clases de vinculación generadas
        • Adaptadores de vinculación
        • Cómo vincular vistas de diseño con componentes de arquitectura
        • Vinculación de datos en dos direcciones
      • Componentes optimizados para ciclos de vida
        • Cómo controlar ciclos de vida
        • ViewModel
        • LiveData
        • Cómo guardar estados de la IU
        • Módulo de estado guardado para ViewModel
        • Cómo usar las corrutinas de Kotlin con componentes optimizados para ciclos de vida
      • Biblioteca de Paging
        • Descripción general
        • Cómo cargar y mostrar datos paginados
        • Página de la red y la base de datos
        • Cómo transformar transmisiones de datos
        • Cómo administrar y presentar estados de carga
        • Cómo probar tu implementación de Paging
        • Cómo migrar a Paging 3
        • Paging 2
          • Descripción general
          • Cómo visualizar listas paginadas
          • Cómo cargar datos paginados
    • Bibliotecas de capas de datos
      • DataStore
      • WorkManager
        • Descripción general
        • Cómo comenzar
        • Guías prácticas
          • Cómo definir tus WorkRequests
          • Estados de trabajos
          • Cómo administrar trabajos
          • Cómo observar el progreso intermedio de un trabajador
          • Cómo concatenar el trabajo
          • Cómo probar una implementación de trabajadores
          • Pruebas de integración con WorkManager
          • Cómo depurar WorkManager
        • Conceptos avanzados
          • Inicialización y configuración
          • Cómo ejecutar subprocesos en WorkManager
            • Descripción general
            • Cómo ejecutar subprocesos en Worker
            • Cómo ejecutar subprocesos en CoroutineWorker
            • Cómo ejecutar subprocesos en RxWorker
            • Cómo ejecutar subprocesos en ListenableWorker
          • Asistencia para trabajadores de larga ejecución
        • Cómo migrar desde Firebase JobDispatcher
        • Cómo migrar desde GCMNetworkManager
  • Puntos de entrada de la app
    • Actividades
      • Introducción a las actividades
      • Ciclo de vida de la actividad
      • Cambios en el estado de la actividad
      • Cómo probar tus actividades
      • Tareas y pila de actividades
      • Procesos y el ciclo de vida de la app
      • Objetos parcelables y paquetes
      • Cargadores
      • Pantalla de Recientes
      • Restricciones sobre el inicio de actividades en segundo plano
    • Accesos directos a aplicaciones
      • Descripción general
      • Cómo crear accesos directos
      • Cómo agregar funciones
      • Cómo administrar accesos directos
      • Prácticas recomendadas para accesos directos
  • Navegación en la app
    • Principios de navegación
    • Cómo diseñar para diferentes factores de forma
    • Cómo administrar los cambios en la configuración
    • Componente Navigation
      • Descripción general
      • Cómo comenzar
      • Cómo crear destinos
      • Cómo diseñar gráficos de navegación
      • Gráficos anidados
      • Acciones generales
      • Cómo navegar a un destino
      • Cómo brindar compatibilidad con varias pilas de actividades
      • Navegación condicional
      • Cómo pasar datos entre destinos
      • Cómo crear un vínculo directo para un destino
      • Cómo animar las transiciones entre destinos
      • Cómo actualizar los componentes de IU con NavigationUI
      • DSL de Kotlin
      • Cómo interactuar de manera programática
      • Cómo navegar con módulos de funciones
      • Prácticas recomendadas para proyectos con varios módulos
      • Cómo probar la navegación
      • Cómo agregar nuevos tipos de destinos
      • Cómo migrar al componente Navigation
    • Fragmentos
      • Descripción general
      • Cómo crear un fragmento
      • Administrador de fragmentos
      • Transacciones de fragmentos
      • Cómo animar transiciones entre fragmentos
      • Ciclo de vida de los fragmentos
      • Cómo guardar un estado con fragmentos
      • Cómo comunicarse con fragmentos
      • Cómo trabajar con la barra de la app
      • Cómo mostrar diálogos con DialogFragment
      • Cómo depurar fragmentos
      • Cómo probar tus fragmentos
    • Vínculos de apps
      • Descripción general
      • Cómo habilitar vínculos al contenido de la app
      • Cómo verificar los vínculos de la app
      • Cómo crear vínculos de apps para apps instantáneas
    • Cómo crear vistas deslizantes con pestañas mediante ViewPager
    • Cómo crear vistas deslizantes con pestañas mediante ViewPager2
    • Cómo brindar navegación personalizada hacia atrás
  • Inserción de dependencias
    • Descripción general
    • Inserción manual de dependencias
    • Inserción de dependencias con Hilt
    • Hilt en apps con varios módulos
    • Cómo usar Hilt con otras bibliotecas de Jetpack
    • Guía de prueba de Hilt
    • Hoja de referencia de anotaciones de Hilt y Dagger
    • Dagger
      • Conceptos básicos de Dagger
      • Cómo usar Dagger en apps para Android
      • Cómo usar Dagger en apps de varios módulos
  • Inicio de apps
  • Temas principales
  • Compatibilidad con apps
    • Descripción general
    • Herramientas de marco de compatibilidad
    • Restricciones en interfaces que no pertenecen al SDK
  • Cómo interactuar con otras apps
    • Descripción general
    • Cómo enviar al usuario a otra app
    • Cómo obtener un resultado de una actividad
    • Cómo permitir que otras apps inicien tu actividad
    • Visibilidad del paquete
      • Descripción general
      • Cómo saber qué paquetes son visibles automáticamente
      • Cómo declarar necesidades de visibilidad de paquetes
      • Cómo entregar casos de uso habituales
      • Cómo probar la visibilidad del paquete
  • Intents y filtros de intents
    • Descripción general
    • Intents comunes
  • Interfaz de usuario
    • Descripción general
    • Diseños
      • Descripción general
      • Cómo crear una IU receptiva con ConstraintLayout
      • Cómo agregar movimiento a tu diseño con MotionLayout
        • Descripción general
        • Carrusel con MotionLayout
        • Ejemplos de MotionLayout
        • Referencia XML de MotionLayout
          • Descripción general
          • <MotionScene>
          • <ConstraintSet>
          • <Constraint>
          • <Transition>
          • <onClick>
          • <onSwipe>
          • <KeyFrameSet>
          • <KeyPosition>
          • <KeyAttribute>
      • Cómo crear una lista con RecyclerView
      • Personalización avanzada de RecyclerView
      • Cómo crear un diseño basado en tarjetas
      • Cómo crear un diseño de doble panel
      • Cómo mejorar el rendimiento del diseño
        • Descripción general
        • Cómo optimizar las jerarquías de diseño
        • Cómo reutilizar diseños con <include/>
        • Carga de vistas demorada
      • Diseño lineal
      • Vista del adaptador
      • Diseño relativo
      • Componentes de vistas personalizadas
        • Descripción general
        • Cómo crear una clase de vista personalizada
        • Cómo implementar dibujos personalizados
        • Cómo hacer una vista interactiva
        • Cómo optimizar la vista
      • Cómo diseñar para dispositivos plegables
    • Diseño
      • Material design
      • Estilos y temas
      • Tema oscuro
      • Esquinas redondeadas
      • Íconos adaptables
      • Cómo agregar un botón de acción flotante
      • Cómo crear vistas de recorte y sombras
      • Texto
        • Ajuste automático de tamaño de TextView
        • Fuentes descargables
        • Fuentes en XML
        • Emoji
          • Compatibilidad con emojis modernos
          • Compatibilidad con emojis
        • Widget de ampliación
        • Intervalos
      • Botones
      • Casillas de verificación
      • Botones de selección
      • Botones de activación
      • Controles de números
      • Selectores
      • Información sobre la herramienta
    • Notificaciones
      • Descripción general
      • Cómo crear una notificación
      • Cómo crear una notificación expandible
      • Cómo mostrar notificaciones sujetas a horarios específicos
      • Cómo iniciar una actividad desde una notificación
      • Cómo crear un grupo de notificaciones
      • Cómo crear y administrar canales de notificaciones
      • Cómo modificar una insignia de notificación
      • Cómo crear una notificación personalizada
    • Pantallas de presentación
      • Descripción general
      • Cómo migrar tu pantalla de presentación existente
    • Conversaciones
    • Burbujas
    • Cómo agregar la barra de apps
      • Descripción general
      • Cómo configurar la barra de la app
      • Cómo agregar y administrar acciones
      • Cómo agregar una acción hacia arriba
      • Cómo usar vistas y proveedores de acciones
    • Inserción de ventana
      • Descripción general
      • Pantalla de borde a borde
      • Modo envolvente
      • Cómo brindar compatibilidad con cortes de pantalla
      • Cómo controlar el teclado en pantalla
    • Cómo agregar compatibilidad con el gesto de deslizar para actualizar
      • Descripción general
      • Cómo agregar el gesto de deslizar para actualizar a tu app
      • Cómo responder a un gesto para actualizar
    • Descripción general de las notificaciones
    • Descripción general de los mensajes emergentes
      • Descripción general
      • Cómo crear y mostrar un mensaje emergente
      • Cómo agregar una acción a un mensaje
    • Diálogos
    • Menús
    • Configuración
      • Descripción general
      • Cómo organizar tus opciones de configuración
      • Cómo personalizar la configuración
      • Cómo usar valores guardados
      • Cómo crear una jerarquía en código
      • Cómo controlar otros factores de forma
      • Componentes y atributos de preferencias
    • Búsqueda
      • Descripción general
      • Cómo crear una interfaz de búsqueda
      • Cómo agregar sugerencias de consulta reciente
      • Cómo agregar sugerencias personalizadas
      • Configuración que permite búsquedas
      • Cómo agregar la funcionalidad de búsqueda
        • Descripción general
        • Cómo configurar la interfaz de búsqueda
        • Cómo almacenar y buscar datos
        • Cómo mantener la compatibilidad con versiones anteriores
    • Cómo recibir contenido enriquecido
    • Cómo copiar y pegar
    • Cómo arrastrar y soltar
    • Compatibilidad con pantalla en pantalla
    • Cómo crear IU compatibles con versiones anteriores
      • Descripción general
      • Cómo abstraer las nuevas API
      • Cómo crear conexiones proxy con las API nuevas
      • Cómo crear una implementación con API anteriores
      • Cómo usar componentes de compatibilidad de versiones
    • Control de dispositivos
    • Canales de la pantalla principal en apps para dispositivos móviles
      • Descripción general
      • Libros multimedia en la pantalla principal
      • Videos multimedia en la pantalla principal
      • Audio multimedia en la pantalla principal
  • Widgets de apps
    • Descripción general
    • Cómo crear un widget simple
    • Cómo mejorar tu widget
    • Cómo crear un widget avanzado
    • Cómo usar colecciones de widgets
    • Cómo proporcionar diseños de widgets flexibles
    • Cómo habilitar la configuración del widget
    • Cómo crear un host de widgets de la app
  • Animaciones y transiciones
    • Descripción general
    • Introducción a las animaciones
    • Descripción general de la animación de propiedades
    • Cómo animar gráficos con elementos de diseño
    • Cómo mostrar/ocultar una vista con animación
    • Cómo mover una vista con una animación
    • Cómo mover una vista con una animación de navegación
    • Cómo ampliar una vista con animaciones con zoom
    • Cómo animar movimiento con física de resortes
    • Cómo animar automáticamente las actualizaciones de diseño
    • Cómo animar los cambios de diseño con una transición
    • Cómo crear una animación de transición personalizada
    • Cómo iniciar una actividad con una animación
    • Cómo deslizarse entre fragmentos con ViewPager
    • Cómo deslizarse entre fragmentos con ViewPager2
    • Cómo migrar contenido de ViewPager a ViewPager2
    • Recursos adicionales
  • Imágenes y gráficos
    • Descripción general
    • Descripción general de los elementos de diseño
    • Descripción general de las interfaces de elementos de diseño
    • Cómo gestionar mapas de bits
    • Cómo seleccionar colores con la API de Palette
    • Cómo reducir los tamaños de descarga de imágenes
    • Aceleración de hardware
    • Cómo dibujar con sombreadores AGSL
      • Descripción general
      • Diferencias entre AGSL y GLSL
      • Cómo usar AGSL en tu app para Android
      • Referencia rápida de AGSL
    • OpenGL ES
    • Cómo mostrar gráficos con OpenGL ES
      • Descripción general
      • Cómo crear un entorno OpenGL ES
      • Cómo definir formas
      • Cómo dibujar formas
      • Cómo aplicar vistas de cámara y proyección
      • Cómo agregar movimiento
      • Cómo responder a eventos táctiles
    • Renderización
      • Descripción general
      • Cómo reducir la superposición
      • Jerarquías de vista y rendimiento
      • Cómo hacer un análisis con la representación GPU del perfil
    • Cómo mejorar gráficos con contenido de una amplia gama de colores
  • Audio y video
    • Descripción general de audio y video
    • Controles multimedia
    • Formatos multimedia compatibles
    • Códecs de archivos multimedia
    • Arquitectura de apps multimedia
      • Descripción general de la arquitectura de apps multimedia
      • Cómo usar sesiones multimedia
      • Cómo crear una app de audio
        • Descripción general de las apps de audio
        • Cómo crear servicios para el navegador multimedia
        • Cómo crear actividad de clientes para el navegador multimedia
        • Devoluciones de llamadas de sesiones multimedia
        • Cómo usar la app de prueba del control multimedia
      • Cómo crear una app de video
        • Descripción general de las apps de video
        • Cómo crear una actividad del reproductor de video
        • Devoluciones de llamadas de sesiones multimedia
        • Transcodificación de contenido multimedia compatible
      • Cómo responder a los botones multimedia
      • Cómo controlar cambios en la salida de audio
      • Cómo administrar el foco de audio
    • Asistente de Google
      • Apps multimedia y de Asistente de Google
      • Apps de contenido multimedia en el modo en automóvil de Asistente de Google
    • Enrutamiento entre dispositivos
      • Descripción general del enrutamiento
      • Descripción general de MediaRouter
      • Descripción general de MediaRouteProvider
    • Cómo controlar la amplitud con VolumeShaper
    • Descripción general de MediaPlayer
    • Descripción general de MediaRecorder
    • ExoPlayer
    • Cómo compartir entradas de audio
    • Cómo capturar la reproducción de audio y video
    • Velocidad de fotogramas
    • Prácticas recomendadas para compartir video
    • Recursos adicionales para contenido multimedia
  • Servicios
    • Descripción general
    • Servicios en primer plano
    • Servicios vinculados
    • Descripción general de AIDL
  • Tareas en segundo plano
    • Descripción general
    • Subprocesos en segundo plano
    • Optimizaciones en segundo plano
    • Transmisiones
      • Descripción general
      • Excepciones de transmisiones implícitas
    • Cómo administrar el estado activo del dispositivo
      • Descripción general
      • Cómo mantener activo el dispositivo
      • Cómo programar alarmas
    • Cómo usar un objeto ListenableFuture
  • Permisos
    • Descripción general
    • Cómo evaluar si tu app necesita permisos
    • Cómo declarar permisos de la app
    • Cómo solicitar permisos de la app
    • Cómo explicar el acceso a información más sensible
    • Prácticas recomendadas de permisos de la app
    • Permisos que solo se usan en controladores predeterminados
    • Restringe las interacciones con otras apps
    • Cómo definir permisos personalizados
  • Archivos y datos de la app
    • Descripción general
    • Descripción general del almacenamiento
    • Cómo guardar contenido en el almacenamiento específico de la app
    • Cómo guardar contenido en el almacenamiento compartido
      • Descripción general
      • Multimedia
      • Documentos y otros archivos
      • Conjuntos de datos
    • Cómo administrar todos los archivos de un dispositivo de almacenamiento
    • Cómo guardar datos de pares clave-valor
    • Cómo guardar contenido en una base de datos local
      • Descripción general
      • Cómo definir datos mediante entidades
      • Cómo acceder a datos mediante DAO
      • Cómo definir relaciones entre objetos
      • Escribe consultas DAO asíncronas
      • Cómo implementar vistas en una base de datos
      • Cómo autocompletar el contenido de tu base de datos
      • Cómo migrar tu base de datos
      • Cómo probar y depurar tu base de datos
      • Cómo hacer referencia a datos complejos
      • Cómo migrar de SQLite a Room
      • Cómo guardar datos con SQLite
    • Prácticas recomendadas y casos prácticos de almacenamiento
    • Cómo compartir datos simples
      • Descripción general
      • Cómo enviar datos simples a otras apps
      • Cómo recibir datos simples de otras apps
    • Cómo compartir archivos
      • Descripción general
      • Cómo configurar el uso compartido de archivos
      • Cómo compartir un archivo
      • Cómo solicitar un archivo compartido
      • Cómo recuperar información de archivos
    • Cómo compartir archivos con NFC
      • Descripción general
      • Cómo enviar archivos a otro dispositivo
      • Cómo recibir archivos de otro dispositivo
    • Cómo imprimir archivos
      • Descripción general
      • Cómo imprimir fotos
      • Cómo imprimir documentos HTML
      • Cómo imprimir documentos personalizados
    • Proveedores de contenido
      • Descripción general
      • Conceptos básicos sobre proveedores de contenido
      • Cómo crear un proveedor de contenido
      • Cómo abrir archivos con el marco de trabajo de acceso al almacenamiento
      • Cómo crear un proveedor de documentos personalizado
    • Ubicación de la instalación de la app
  • Identidad y datos del usuario
    • Descripción general
    • Cómo agregar un flujo de trabajo de acceso
    • Cómo mostrar un diálogo de autenticación biométrica
    • Autofill Framework
      • Descripción general
      • Cómo optimizar tu app para el autocompletado
      • Cómo crear servicios de autocompletado
      • Cómo integrar el autocompletado con teclados
    • Cómo identificar apps que son propiedad de los desarrolladores
    • Consulta cómo tu app recopila y comparte los datos de los usuarios
    • Cómo auditar el acceso a datos
    • Cómo obtener un ID de publicidad que el usuario puede restablecer
    • Descripción general del proveedor de calendario
    • Proveedor de contactos
      • Descripción general
      • Cómo recuperar una lista de contactos
      • Cómo recuperar los detalles de un contacto
      • Cómo modificar contactos con intents
      • Cómo mostrar la insignia de Contacto rápido
    • Transferencia de cuentas
    • Copia de seguridad de datos
      • Descripción general
      • Cómo crear una copia de seguridad de los datos del usuario
      • Cómo crear copias de seguridad de pares clave-valor
      • Cómo probar copias de seguridad y restablecimiento
    • Prácticas recomendadas para identificadores únicos
    • Cómo recordar y autenticar usuarios
      • Descripción general
      • Cómo recordar a tus usuarios
      • Autenticación en servicios OAuth2
      • Cómo crear un tipo de cuenta personalizado
  • Ubicación del usuario
    • Descripción general
    • Cómo solicitar permisos de ubicación
    • Cómo obtener la última ubicación conocida
    • Cómo cambiar la configuración de la ubicación
    • Cómo solicitar actualizaciones de ubicación
    • Cómo acceder a la ubicación en segundo plano
    • Cómo crear y supervisar el geovallado
    • Cómo detectar cuándo un usuario inicia una actividad
    • Cómo optimizar la ubicación para ahorrar batería
    • Cómo probar los flujos de trabajo de ubicación
    • Cómo migrar a API de ubicación y contexto
    • Cómo agregar mapas
  • Modo táctil y método de entrada
    • Descripción general
    • Eventos de entrada
    • Uso de gestos táctiles
      • Descripción general
      • Detección de gestos comunes
      • Seguimiento de movimientos táctiles y punteros
      • Cómo animar el gesto para desplazar
      • Gestos de navegación de asistencia
      • Cómo controlar gestos multitáctiles
      • Arrastre y escala
      • Administración de eventos táctiles en ViewGroup
    • Cómo administrar la entrada del teclado
      • Descripción general
      • Cómo especificar el tipo de método de entrada
      • Cómo administrar la visibilidad del método de entrada
      • Cómo brindar compatibilidad con navegación de teclado
      • Cómo administrar las acciones del teclado
    • Cómo brindar compatibilidad con controladores para juegos
      • Descripción general
      • Cómo administrar acciones de los controladores
      • Cómo brindar compatibilidad con controladores en diferentes versiones de Android
      • Cómo brindar compatibilidad con varios controladores para juegos
    • Editores de método de entrada
      • Cómo crear un método de entrada
      • Teclado de imagen
    • Corrector ortográfico
  • Cámara
    • Elige una biblioteca de cámaras
    • CameraX
      • Descripción general
      • Arquitectura
      • Configuración
      • Casos de uso
        • Vista previa
        • Captura de imágenes
        • Análisis de imágenes
        • Captura de video
      • Temas avanzados
        • API de Extensions
        • Resultado de la transformación
        • Rotaciones
      • Dispositivos
    • Camera2
      • Descripción general
      • Solicitudes y sesiones de capturas de la cámara
      • Capacidades y lentes de cámara
      • Cómo usar varias transmisiones de cámara a la vez
      • Vista previa de cámara
      • API de Multi-Camera
      • API de Extensions
    • Cámara (obsoleta)
      • Descripción general
      • Cómo tomar fotos
      • Cómo grabar videos
      • Cómo controlar la cámara
      • API de Camera
  • Sensores
    • Descripción general
    • Información general de sensores
    • Sensores de movimiento
    • Sensores de posición
    • Sensores de entorno
    • Dimensiones GNSS sin procesar
  • Conectividad
    • Descripción general
    • Cómo llevar a cabo operaciones de red
      • Descripción general
      • Cómo conectarse a la red
      • Cómo administrar el uso de la red
      • Cómo leer el estado de la red
      • Cómo optimizar el acceso a la red
      • Cómo optimizar el uso de datos de red
      • Cómo supervisar el estado de conectividad y la medición de la conexión
      • Cómo analizar datos XML
    • Cómo realizar operaciones de red con Cronet
      • Descripción general
      • Cómo enviar una solicitud simple
      • Ciclo de vida de solicitud de Cronet
      • Cómo usar Cronet con otras bibliotecas
      • Referencia
        • org.chromium.net
          • Descripción general
          • CallbackException
          • CronetEngine
            • Descripción general
            • CronetEngine.Builder
              • Descripción general
              • LibraryLoader
          • CronetException
          • InlineExecutionProhibitedException
          • NetworkException
          • QuicException
          • UploadDataProvider
          • UploadDataProviders
          • UploadDataSink
          • URLRequest
            • Descripción general
            • Builder
            • Callback
            • Estado
            • StatusListener
          • UrlResponseInfo
            • Descripción general
            • HeaderBlock
    • Mejora tus apps con 5G
    • Cómo crear aplicaciones cliente-servidor con gRPC
    • Cómo transferir datos sin consumir la batería
      • Descripción general
      • Cómo optimizar las descargas para lograr un acceso de red eficiente
      • Cómo minimizar el efecto de las actualizaciones regulares
      • Cómo evitar las descargas no optimizadas
    • Cómo reducir el consumo de batería de la red
      • Descripción general
      • Cómo recopilar datos del tráfico de red
      • Cómo analizar el tráfico de datos
      • Cómo optimizar el acceso a la red
      • Cómo optimizar el uso de red iniciado por el usuario
      • Cómo optimizar el uso de red iniciado por la app
      • Cómo optimizar el uso de red iniciado por el servidor
      • Cómo optimizar el uso general de redes
    • Cómo transferir datos mediante adaptadores de sincronización
      • Descripción general
      • Cómo crear un autenticador auxiliar
      • Cómo crear un proveedor de contenido auxiliar
      • Cómo crear un adaptador de sincronización
      • Cómo ejecutar un adaptador de sincronización
    • Bluetooth
      • Descripción general
      • Configurar Bluetooth
      • Cómo buscar dispositivos Bluetooth
      • Cómo conectar dispositivos Bluetooth compatibles
      • Cómo transferir datos por Bluetooth
      • Permisos de Bluetooth
      • Perfiles de Bluetooth
      • Sincronización de dispositivos complementarios
    • Bluetooth de bajo consumo
      • Descripción general
      • Buscar dispositivos BLE
      • Conectarse con un servidor GATT
      • Cómo transferir datos de BLE
    • NFC
      • Descripción general
      • Conceptos básicos de NFC
      • NFC avanzadas
      • Descripción general de la emulación de tarjetas basadas en el host
    • Telecomunicaciones
      • Descripción general
      • Cómo crear una app de llamadas
      • Cómo evitar la falsificación de identidad del identificador de llamada
      • ID de telefonía
    • Wi-Fi
      • Descripción general de la búsqueda de Wi-Fi
      • Wi-Fi entre pares
      • Descripción general del reconocimiento de Wi-Fi
      • Ubicación de Wi-Fi con RTT
      • Hotspot solo local
      • Infraestructura de Wi-Fi
        • Descripción general de la infraestructura de Wi-Fi
        • API de sugerencia de Wi-Fi para la conexión a Internet
        • API de solicitud de red Wi-Fi para la conectividad entre pares
        • Passpoint
        • Cómo guardar redes y configuraciones de Passpoint
    • USB
      • Descripción general
      • Descripción general de los accesorios
      • Descripción general del host
    • UWB
    • VPN
    • Descripción general del protocolo de inicio de sesión
    • Detección y conexión
      • Descripción general
      • Cómo usar la detección del servicio de red
      • Cómo crear conexiones P2P con Wi-Fi
      • Cómo usar P2P Wi-Fi para detectar servicios
      • Easy Connect para Wi-Fi
    • Compatibilidad con el lector de la API de Open Mobile
  • RenderScript
    • Descripción general
    • RenderScript avanzado
    • Cómo migrar desde RenderScript
    • Referencia de la API en tiempo de ejecución
      • Descripción general
      • Tipos numéricos
      • Tipos de objetos
      • Funciones de conversión
      • Funciones y constantes matemáticas
      • Funciones matemáticas de vector
      • Funciones de matriz
      • Funciones de cuaternión
      • Funciones de actualizaciones atómicas
      • Tipos y funciones de tiempo
      • Funciones de acceso a datos de asignación
      • Funciones de características de objetos
      • Tipos y funciones de invocación de kernel
      • Funciones de entrada y salida
      • Funciones de depuración
      • Tipos y funciones de gráficos
      • Índice
  • Contenido basado en la Web
    • Descripción general
    • Creación de aplicaciones web en WebView
    • Cómo administrar objetos WebView
    • Cómo cargar contenido local
    • Oscurecer contenido web
    • Privacidad del usuario en Crash Reporting de WebView
    • Compatibilidad con diferentes pantallas en aplicaciones web
    • Depuración de aplicaciones web
    • Prácticas recomendadas para aplicaciones web
    • Cómo probar versiones futuras de WebView
  • Paquetes Android App Bundle
    • Descripción general
    • Cómo configurar el módulo base
    • Cómo compilar y probar tu paquete de aplicación
    • Cómo agregar transparencia de código
    • Formato del paquete de aplicación
    • Preguntas frecuentes
  • Google Play
    • Facturación Google Play
    • Bibliotecas de Google Play Core
    • Play Points
      • Descripción general
      • Crea productos y promociones
      • Detecta y entrega productos
      • Productos de prueba
    • Play Asset Delivery
      • Descripción general
      • Cómo integrar Asset Delivery (Kotlin y Java)
      • Cómo integrar Asset Delivery (nativo)
      • Cómo integrar Asset Delivery (Unity)
      • Cómo orientar formatos de compresión de texturas
      • Cómo probar la entrega de recursos
    • Entrega de funciones en Play
      • Descripción general
      • Cómo configurar la entrega durante la instalación
      • Cómo configurar la entrega condicional
      • Cómo configurar la entrega a pedido
      • Prácticas recomendadas de la entrega on demand
      • Cómo configurar la entrega instantánea
      • Recursos adicionales
    • Opiniones integradas en la app
      • Descripción general
      • Cómo realizar la integración con Kotlin o Java
      • Cómo realizar la integración con código nativo
      • Cómo realizar la integración con Unity
      • Cómo probar las opiniones integradas en la app
    • Actualizaciones integradas en la app
      • Descripción general
      • Compatibilidad con las actualizaciones integradas en la app (Kotlin o Java)
      • Compatibilidad con actualizaciones de la app (nativas)
      • Compatibilidad con actualizaciones dentro de la app (Unity)
      • Cómo probar las actualizaciones integradas en la app
    • Google Play Instant
      • Descripción general de Google Play Instant
      • Cómo comenzar a usar las apps instantáneas
        • Cómo crear un paquete de aplicación instantánea
        • Recomendaciones de UX para apps
      • Cómo comenzar a crear juegos instantáneos
        • Descripción general
        • Complemento para Unity
        • Prácticas recomendadas de UX para juegos
        • Cómo migrar a paquetes Android App Bundle
        • Cómo implementar la entrega de recursos en la nube
        • Asistencia para los Servicios de juego de Google Play
        • Juegos instantáneos de Play
        • Lista de tareas de juegos instantáneos de Play
      • Cómo reducir el tamaño de tu app o juego instantáneo
      • Cómo agregar anuncios en tu app o juego instantáneo
      • Cómo brindar varios puntos de entrada
      • Cómo realizar la integración con Firebase
        • Cómo agregar Google Analytics para Firebase a tu app instantánea
        • Cómo usar Firebase Dynamic Links con apps instantáneas
      • Lista de verificación de requisitos técnicos
      • Política de Google Play Instant
      • Recursos
        • Referencia
        • Muestras de código
        • Notas de la versión del SDK
        • Intents de Apps instantáneas
      • Asistencia
        • Errores conocidos
        • StackOverflow
    • API de Play Developer
    • Referente de instalación de Play
      • Descripción general
      • Biblioteca de referencia de instalación de Play
        • Descripción general
        • Referencia
        • Notas de la versión
      • API de Play Install Referrer
    • API de Play Integrity
    • Requisitos de Play
      • Políticas de Play
      • Nivel de API objetivo
      • Compatibilidad con arquitecturas de 64 bits
    • Servicio de licencias para aplicaciones
      • Descripción general
      • Descripción general sobre las licencias
      • Cómo realizar la configuración para licencias
      • Cómo agregar la verificación del servidor
      • Cómo agregar la verificación del cliente
      • Referencia sobre licencias
    • Archivos de expansión de APK
  • Asistente de Google
    • Descripción general
    • Compilación
      • Descripción general de Acciones en apps
      • Cómo implementar intents integrados
      • Cómo crear shortcuts.xml
      • Cómo enviar accesos directos dinámicos a Asistente
      • Notas de la versión
    • Realiza pruebas
      • Complemento de Asistente de Google
    • Crecimiento
      • Descripción general
      • SDK de promoción de acceso directo en la app
    • Cómo agregar más funciones
      • Intents personalizados
      • Widgets de Android
      • Invocación de apps en primer plano
      • Inventario intercalado
      • Inventario web
      • Uso compartido de Asistente
      • Leer
    • Actions.xml
      • Guía de migración de actions.xml
      • Descripción general de actions.xml
      • Cómo crear Acciones en apps
      • Cómo crear actions.xml
      • Inventario web
      • Herramienta de prueba de Acciones en apps
      • Android Slices
      • Solución de problemas
    • Asistencia
  • Secciones
    • Descripción general
    • Cómo comenzar
    • Plantillas de Slices
  • Búsqueda en el dispositivo
  • Juegos
  • Desarrolla
    • Descripción general
    • Android Game Development Kit (AGDK)
      • Descripción general
      • Bibliotecas
      • Descargar
      • Notas de la versión
    • Android Studio
    • Android Game Development Extension para Visual Studio
      • Descripción general
      • Guía de inicio rápido
      • Cómo configurar un proyecto
      • Depurador
      • Cómo medir el rendimiento de la app
      • Cómo modificar archivos build.gradle para Android Studio
      • Ejemplos
      • Notas de la versión
    • Inspector de GPU para Android
      • Descripción general
      • Guía de inicio rápido
      • Dispositivos compatibles
      • Generación de perfiles del sistema
        • Descripción general
        • Cómo ver un perfil del sistema
        • Contadores de rendimiento de GPU
        • Cómo analizar un perfil del sistema
          • Períodos de procesamiento de fotogramas
          • Eficiencia de la memoria
          • Uso de ancho de banda de memoria de textura
          • Uso de ancho de banda de memoria de Vertex
          • Programación de subprocesos
      • Generación de perfiles
        • Descripción general
        • Cómo analizar un perfil de fotogramas
          • Pases de procesamiento más costosos
          • Formatos de Vertex
          • Rendimiento de sombreadores
        • IU del generador de perfiles
          • Panel de rendimiento
          • Panel de comandos
          • Panel del búfer de fotogramas
          • Panel de geometría
          • Panel del informe
          • Panel del sombreador
          • Panel de memoria
          • Panel de estado
          • Panel de texturas
          • Panel de textura
          • Panel de vista de canalizaciones
      • Extensiones de Vulkan compatibles
      • Soluciona problemas
    • Android Performance Tuner
    • API de Memory Advice
      • Descripción general
      • Cómo comenzar
  • Mejora
    • Mejora el rendimiento de un juego
    • Reduce el tamaño de un juego
    • Mejora la disponibilidad del dispositivo
      • Compatibilidad con arquitecturas de 64 bits
      • Compatibilidad con todas las pantallas
    • Modo de juego
      • Descripción general
      • Cómo optimizar con la API de Game Mode
      • Intervenciones de modo de juego
    • Vulkan y OpenGL
      • Optimización de elementos 3D
      • Rotación previa de Vulkan
      • Administración de datos de Vertex
  • Distribuye
    • Descripción general
    • Google Play Juegos para PC
      • Descripción general
      • Cómo comenzar
      • Configuración del juego
        • Compatibilidad con PC
        • Configuración de gráficos
        • Entrada del dispositivo
          • Configuración de entrada
          • SDK de entrada
            • Descripción general
            • Guía de inicio rápido
        • Continuidad
          • Descripción general
          • Requisitos de continuidad
          • Verificación de requisitos
          • Soluciones de identidad existentes
      • Cómo usar el emulador
      • Pruebas en Chrome OS
      • Cómo publicar e implementar contenido
        • Paquete
        • Enviar
        • Actualizar
      • Preguntas frecuentes
    • Google Play Instant
    • Jugar durante la descarga
  • Apps de salud y fitness
  • Health Connect
    • Introducción
    • Descripción general de la plataforma
      • Arquitectura
      • Funcionalidad del desarrollador
    • Cómo comenzar
    • Datos y tipos de datos
      • Introducción
      • Tipos de datos
      • API de Differential Changes
    • Flujos de trabajo comunes
      • Cómo escribir datos
      • Cómo leer datos
      • Cómo borrar datos
      • Datos agregados
      • Cómo trabajar con sesiones
      • Excepciones
    • Preguntas frecuentes
  • Lineamientos de Health Connect
    • Preguntas frecuentes sobre los requisitos de la política de Health Connect
    • Orientación para desarrolladores de UX
    • Migración
      • Guía de comparación de la API de Health Connect
      • Guía de migración de la API de Fit de Android a Health Connect
  • Prácticas recomendadas
  • Prueba
    • Cómo probar apps en Android
    • Aspectos básicos
      • Aspectos básicos de las pruebas de apps para Android
      • Qué probar en Android
      • Cómo usar pruebas dobles en Android
    • Pruebas locales
      • Cómo compilar pruebas locales
    • Pruebas instrumentadas
      • Cómo compilar pruebas instrumentadas
      • Cómo automatizar las pruebas de IU
      • Bibliotecas de prueba de AndroidX
        • Cómo configurar el proyecto para AndroidX Test
        • Reglas de JUnit4 con AndroidX Test
        • AndroidJUnitRunner
    • Espresso
      • Espresso
      • Conceptos básicos de Espresso
      • Instrucciones de configuración de Espresso
      • Hoja de referencia de Espresso
      • Recursos inactivos de Espresso
      • Espresso-Intents
      • Listas de Espresso
      • Multiprocess Espresso
      • Recetas de Espresso
      • Espresso Web
      • Comprobación de accesibilidad
      • Recursos adicionales de Espresso
    • Cómo probar otros componentes
      • Cómo probar proveedores de contenido
      • Cómo probar tu servicio
      • Cómo escribir pruebas automatizadas con UI Automator
  • Rendimiento
    • Descripción general
    • Cómo inspeccionar el rendimiento
      • Generadores de perfiles de Android Studio
      • Generación de perfiles y registros
        • Registro del sistema
          • Descripción general
          • Cómo capturar un registro
            • Cómo capturar un registro en Android Studio
            • Cómo capturar un registro en un dispositivo
            • Cómo capturar un registro de la línea de comandos
          • Cómo navegar por un informe
          • Eventos personalizados
            • Cómo definir eventos personalizados
            • Eventos de seguimiento personalizados en código nativo
        • Cómo inspeccionar la renderización de GPU
      • Comparativas
        • Descripción general
        • Macrocomparativas
          • Cómo escribir una comparativa
          • Cómo capturar las métricas
          • Cómo controlar tu app
          • Cómo agregar argumentos de instrumentación
        • Microcomparativas
          • Descripción general
          • Cómo escribir una comparativa
          • Cómo crear el perfil de una comparativa
          • Cómo agregar argumentos de instrumentación
          • Cómo compilar sin Gradle
        • Comparativas en CI
    • Cómo mejorar el rendimiento
      • Perfiles de Baseline
      • Biblioteca de inicio de apps
      • Guías
        • Trabajo en segundo plano
        • Clase de rendimiento
        • Intervalos de App Standby
        • Hibernación de apps
        • Cómo verificar el comportamiento de la app en Android Runtime (ART)
      • Cómo resolver problemas comunes
        • Inicio de apps
        • Renderización lenta
          • Cómo mantener la capacidad de respuesta de tu app
          • Cómo mejorar el rendimiento del diseño
          • Renderización
        • Memoria
          • Descripción general de la administración de memoria
          • Asignación de memoria entre propiedades
          • Cómo administrar la memoria de tu app
          • Procesos y subprocesos
        • Batería y alimentación
          • Cómo optimizar tu app para Descanso y App Standby
          • Cómo supervisar el nivel de batería y el estado de carga
          • Cómo supervisar el estado de conectividad y la medición de la conexión
          • Cómo determinar y supervisar el tipo y el estado de conexión
          • Cómo generar perfiles del uso de batería con Batterystats y Battery Historian
          • Cómo analizar el uso de batería con Battery Historian
          • Cómo realizar pruebas en torno a problemas relacionados con la batería
          • Optimizaciones en segundo plano
        • Cómo reducir el tamaño de la app
    • Control del rendimiento
      • Android vitals
        • Descripción general
        • Bloqueos de activación parciales sostenidos
        • Demasiadas activaciones
        • Búsqueda excesiva de redes Wi-Fi en segundo plano
        • Uso excesivo de redes en segundo plano
        • ANR
        • Fallas
        • Renderización lenta
        • Marcos congelados
        • Denegaciones de permisos
        • Tiempo de inicio de la app
      • Biblioteca de JankStats
  • Accesibilidad
    • Descripción general
    • Cómo crear y probar apps para accesibilidad
      • Cómo mejorar la accesibilidad de las apps
      • Principios para mejorar la accesibilidad de la app
      • Prueba la accesibilidad de tu app
    • Temas avanzados
      • Mejora la accesibilidad de las vistas personalizadas
      • Cómo crear tu propio servicio de accesibilidad
    • Recursos adicionales
  • Privacidad
    • Prácticas recomendadas sobre privacidad
  • Seguridad
    • Recomendaciones sobre seguridad de apps
    • Sugerencias de seguridad
    • Seguridad con datos
    • Seguridad con datos en versiones adicionales de Android
    • Seguridad con HTTPS y SSL
    • Configuración de seguridad de la red
    • Cómo actualizar tu proveedor de seguridad para protegerte contra vulnerabilidades de SSL
    • Protección contra amenazas de seguridad con SafetyNet
      • Descripción general
      • API de certificación de SafetyNet
      • API de navegación segura de SafetyNet
      • API de reCAPTCHA de SafetyNet
      • API de Verificar aplicaciones de SafetyNet
    • Criptografía
    • Sistema Android Keystore
    • Verificación de la copia de seguridad en hardware de pares de claves con certificación de claves
    • Confirmación de protección de Android
    • Cómo brindar compatibilidad con inicio directo
    • Cómo ejecutar código DEX incorporado
    • Programa de mejora de la seguridad de las apps
  • SDK
    • Prácticas recomendadas sobre el SDK
  • Crea contenido para millones de usuarios
    • Descripción general
    • Conectividad
    • Capacidad del dispositivo
    • Costo de los datos
    • Consumo de la batería
    • IU y contenido
  • Cómo crear contenido para empresas
    • Descripción general
    • Guía para desarrolladores
    • Perfiles de trabajo
    • Cómo establecer configuraciones administradas
    • Comentarios sobre la app
      • Cómo enviar comentarios sobre la app a EMM
      • Cómo probar los comentarios sobre la app
    • Contactos laborales
    • Políticas de administración de dispositivos
    • Administración del dispositivo
      • Descripción general
      • Cómo compilar un controlador de política de dispositivo
      • Dispositivos exclusivos
        • Descripción general
        • Modo de tareas bloqueadas
        • Varios usuarios
        • Guía de soluciones
      • Control de dispositivos
      • Redes y telefonía
      • Seguridad
      • Actualizaciones del sistema
      • Registro de actividad de red
    • Versiones de Android
      • Descripción general
      • Android 12
      • Android 11
      • Android 10
      • Android 9
      • Android 8.0
      • Android 7.0
    • Administración del dispositivo
  • Desarrolladores de Android
  • Documentos
  • Guías

Cámara

Android proporciona acceso completo al hardware de la cámara del dispositivo para que puedas crear una amplia gama de apps basadas en la cámara o en la visión. O, si solo necesitas una manera de permitir que el usuario capture una foto, simplemente puedes realizar una solicitud a una app de cámara existente para que capture una foto y te la muestre.

Documentación

  • Toma fotos
  • Graba videos
  • Controla la cámara
  • API de cámara

Videos

Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Last updated 2020-06-03 UTC.

  • Twitter Twitter
    Sigue a @AndroidDev en Twitter
  • YouTube YouTube
    Busca Android Developers en YouTube
  • LinkedIn LinkedIn
    Conectarse con la comunidad de desarrolladores de Android en LinkedIn
  • Más Android

    • Android
    • Android para empresas
    • Seguridad
    • Código abierto
    • Noticias
    • Blog
    • Podcasts
  • Descubre

    • Videojuegos
    • Aprendizaje automático
    • Privacidad
    • 5G
  • Dispositivos Android

    • Pantallas grandes
    • Wear OS
    • Android TV
    • Android para vehículos
    • Android Things
    • Dispositivos con Chrome OS
  • Versiones

    • Android 11
    • Android 10
    • Pie
    • Oreo
    • Nougat
    • Marshmallow
    • Lollipop
    • KitKat
  • Documentación y descargas

    • Guía de Android Studio
    • Guías para desarrolladores
    • Referencia de API
    • Descargar Studio
    • NDK de Android
  • Asistencia

    • Informar sobre un error en la plataforma
    • Informar sobre un error en la documentación
    • Google Play support
    • Participar en los estudios de investigación
Google Developers
  • Android
  • Chrome
  • Firebase
  • Google Cloud Platform
  • Todos los productos
  • Privacidad
  • Licencia
  • Lineamientos de marca
  • Recibe noticias y sugerencias por correo electrónico Suscribirse
  • English
  • Bahasa Indonesia
  • Español – América Latina
  • Português – Brasil
  • 中文 – 简体
  • 日本語
  • 한국어