Garantizando la compatibilidad de las apps Android de Evergine con Google Play
A partir de finales de agosto de 2025, Google Play aplicará nuevos requisitos para la publicación de aplicaciones Android: todas las apps deberán tener como target el SDK 35 de Android.
Esta política busca garantizar que las aplicaciones distribuidas a través de Google Play cumplan con los últimos estándares de seguridad, rendimiento y privacidad del ecosistema Android.
Puedes consultar los detalles completos en la documentación oficial de Google.
Para asegurar que los desarrolladores que usan Evergine puedan seguir publicando sus aplicaciones Android sin inconvenientes, hemos implementado una serie de actualizaciones clave en nuestras plantillas y dependencias nativas. Estos cambios permiten que los proyectos creados con Evergine sigan siendo totalmente compatibles con las políticas actuales y futuras de la plataforma Android.
Actualización de las plantillas de Evergine a .NET 9
El primer paso para cumplir con este nuevo requisito ha sido actualizar las plantillas de Android y MAUI de Evergine para que utilicen .NET 9.
Esta actualización permite a los desarrolladores compilar y publicar correctamente aplicaciones que apunten al SDK 35, algo que no podía hacerse de forma fiable con .NET 8.
Con este cambio, los proyectos de Evergine se benefician de una mejor compatibilidad con las últimas herramientas de desarrollo de Android y de una experiencia más fluida al generar builds para Google Play.
Cabe destacar que no todas las plantillas basadas en Android requerían esta modificación. Las que se orientan a plataformas como Meta Quest o Pico XR, que instalan las aplicaciones directamente en los dispositivos sin pasar por Google Play, no se ven afectadas por estas reglas y continuarán funcionando como hasta ahora.
Además, el motor principal de Evergine no se ha migrado todavía a .NET 9. Nuestra estrategia consiste en adoptar nuevas versiones del framework únicamente cuando alcanzan el estado de LTS (Long-Term Support), garantizando así estabilidad a largo plazo en entornos de producción.
Por este motivo, la migración completa del motor se realizará cuando esté disponible .NET 10, la próxima versión LTS.
Estas actualizaciones en las plantillas representan un paso proactivo para que los usuarios de Evergine puedan adaptarse con tiempo a las nuevas políticas de Google de 2025, manteniendo la compatibilidad y la estabilidad entre los distintos entornos Android.
Nueva restricción: tamaños de página de 16 KB en Android 16
Durante el proceso de actualización, también detectamos otro cambio importante que afectará a los desarrolladores incluso antes. A partir de noviembre de 2024, Android 16 exigirá que todas las librerías nativas utilicen tamaños de página de memoria de 16 KB.
Este cambio, de bajo nivel, afecta a la forma en que se compilan y alinean los binarios, y cualquier aplicación que incluya código nativo sin cumplir este requisito no podrá iniciarse en los dispositivos más recientes.
Durante nuestras pruebas, aparecieron varios avisos relacionados con dependencias nativas utilizadas tanto por Evergine como por librerías de terceros. Entre los componentes afectados se encontraban:
libShaderConductor.so, libShaderConductorWrapper.so, libnaga_to_csharp.so (de Evergine.HLSLEverywhere)
CognitiveServices.Speech.*.so (de Microsoft.CognitiveServices.Speech)
so (de SkiaSharp.NativeAssets.Android)
so (de Evergine.OpenAL)
so (de Evergine.Bindings.Draco)
Estos avisos indicaban que algunas bibliotecas nativas aún no estaban compiladas con la alineación requerida de 16 KB, lo que nos llevó a revisar y actualizar los paquetes correspondientes para garantizar la compatibilidad con Android 16.
Cómo hemos abordado estos problema
Para asegurar la compatibilidad con los nuevos requisitos técnicos de Android y mantener una experiencia de desarrollo fluida para los usuarios de Evergine, hemos realizado diversas actualizaciones y revisiones de dependencias:
Actualización de SkiaSharp y Microsoft Cognitive Services Speech a versiones que ya incluyen binarios nativos correctamente alineados.
Actualización del binding de física Bullet en Evergine para incorporar librerías recompiladas que cumplen con la alineación de 16 KB.
Alineación de la librería OpenAL utilizada en proyectos Android conforme a la nueva especificación de tamaño de página.
Eliminación de la dependencia de Evergine.HLSLEverywhere en los launchers de Android. Este paquete nunca fue necesario en esa plataforma, ya que la compilación de shaders se gestiona de forma distinta. HLSLEverywhere sigue utilizándose en plataformas como Windows, donde los shaders se compilan dinámicamente en tiempo de ejecución.
Alineación de futuras librerías nativas. Las nuevas características integradas en Evergine, como el soporte para texturas KTX, ya se distribuyen con binarios alineados a 16 KB para garantizar la compatibilidad desde el primer momento, siempre que dicha funcionalidad incluya soporte para Android.
Estas medidas no solo aseguran la compatibilidad con Android 16, sino que también establecen un nuevo estándar de calidad para los futuros componentes nativos de Evergine, promoviendo proyectos más ligeros, limpios y mantenibles en todas las plataformas.
Mirando hacia el futuro
Con estas actualizaciones, los proyectos Android desarrollados con Evergine están totalmente alineados con la política de Google Play sobre el targetSDK 35 y preparados para los nuevos requisitos de tamaño de página de Android 16.
Recomendamos a todos los desarrolladores que actualicen sus plantillas antes de publicar nuevas versiones de sus aplicaciones en Google Play. Esto minimizará posibles problemas de compatibilidad y garantizará que sus aplicaciones sigan funcionando correctamente en los dispositivos Android más recientes.
En Evergine seguimos comprometidos con ofrecer soporte a largo plazo para el desarrollo de aplicaciones 3D y XR industriales, asegurando que los proyectos creados hoy continúen funcionando sin problemas a medida que evolucionan las plataformas móviles.
Celebramos un nuevo gran lanzamiento de Evergine 2025, junto con más de 4,5 millones de descargas. Esta versión incorpora potentes mejoras de rendimiento, compatibilidad con formatos industriales, soporte ARM64 y nuevas capacidades como Gaussian Splatting y WebGPU.
Evergine amplía su motor con soporte para Mesh Shaders y Meshlets, optimizando el rendimiento gráfico y aprovechando todo el potencial de las GPUs modernas.
Manage Cookie Consent
Utilizamos cookies propias y de terceros para fines analíticos y estadísticos dirigidos a mejorar nuestros contenidos y poder ofrecerte un mejor servicio, en base a un perfil elaborado a partir de tus hábitos de navegación (por ejemplo, páginas visitadas). Si quieres más información puedes acceder a nuestra Política de Cookies. Puedes aceptar todas las cookies pulsando el botón “Aceptar” o configurarlas o rechazar su uso pulsando el botón “Configuración”.
Strictly necessary cookies
Siempre activo
These cookies are necessary for the website to function and cannot be disabled on our systems. They are generally only set in response to actions performed by you that amount to a request for services, setting your privacy preferences, logging in or completing forms. These cookies do not store any personally identifiable information.
Preferencias
El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario.
Analytical cookies
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos. These are cookies whose purpose is to analyze your browsing habits for statistical purposes. The information obtained is related to the number of users accessing the website, number of pages visited, frequency and repetition of visits, duration, browser used, operator providing the service, language, terminal used or the city to which the IP address is assigned.
Performance Cookies
Performance cookies are generally cookies from third party vendors with whom we work or who work on our behalf and collect information about your visit and use of the Plain Concepts website, such as which pages you visit most often, and whether you receive error messages from websites. These Cookies do not collect information that identifies a visitor. All information these Cookies collect is anonymous and is only used to improve the operation of this website. Third party providers may have access to this information and use it to improve their services and offerings in general.Functionality Cookies allow a site to remember choices you make (such as your user name, language or the region you are in) and provide enhanced personal features. These Cookies cannot track your browsing activity on other websites. They do not collect any information about you that can be used to advertise or remember where you have been on the Internet outside of our site.