
So bleiben Android-Apps mit Evergine mit Google Play kompatibel

Ab Ende August 2025 setzt Google Play neue Anforderungen für Android-Apps durch: Alle veröffentlichten Apps müssen auf Android SDK 35 ausgerichtet sein. Diese Richtlinie stellt sicher, dass über Google Play vertriebene Apps die neuesten Sicherheits-, Leistungs- und Datenschutzstandards von Android einhalten.
Die offiziellen Anforderungen finden Sie in der offiziellen Dokumentation von Google.
Damit Evergine-Entwickler ihre Android-Anwendungen weiterhin ohne Unterbrechungen veröffentlichen können, haben wir wichtige Aktualisierungen an unseren Vorlagen und nativen Abhängigkeiten vorgenommen. Dank dieser Änderungen erfüllen mit Evergine erstellte Projekte auch weiterhin die aktuellen und künftigen Richtlinien der Android-Plattform.
Aktualisierung der Evergine-Vorlagen auf .NET 9
Der erste Schritt zur Erfüllung dieser neuen Anforderungen bestand darin, die Android- und MAUI-Vorlagen von Evergine auf .NET 9 umzustellen.
Dank dieses Upgrades können Entwickler Anwendungen, die auf Android SDK 35 ausgerichtet sind, korrekt kompilieren und veröffentlichen – was unter .NET 8 nicht vollständig unterstützt wird. Mit dieser Änderung profitieren Evergine-Projekte von einer besseren Kompatibilität mit den neuesten Android-Toolchains und einer reibungsloseren Entwicklererfahrung bei der Vorbereitung von Builds für den Play Store.
Dabei ist zu beachten, dass nicht alle Android-basierten Vorlagen diese Änderung benötigten. Plattformen wie Meta Quest und Pico XR, die Anwendungen direkt auf ihren Geräten bereitstellen, ohne den Weg über Google Play zu gehen, sind von diesen SDK-Vorgaben nicht betroffen. Ihre Vorlagen funktionieren weiterhin wie bisher.
Außerdem wurde der Kern der Evergine-Engine selbst nicht auf .NET 9 migriert. Unsere Strategie ist es, erst dann auf neue Runtime-Versionen umzusteigen, wenn sie den Status LTS (Long-Term Support) erreichen, um langfristige Stabilität und Planbarkeit für Produktionsumgebungen zu gewährleisten. Die vollständige Umstellung der Engine erfolgt daher, sobald .NET 10 als nächstes LTS-Release erscheint.
Diese Aktualisierungen der Vorlagen sind ein proaktiver Schritt, mit dem sich Evergine-Benutzer frühzeitig auf die Frist von Google für 2025 vorbereiten können und dabei Kompatibilität und Stabilität in verschiedenen Android-Umgebungen erhalten.
Neue Einschränkung: 16-KB-Seitengrößen in Android 16
Bei diesen Aktualisierungen haben wir eine weitere wichtige Änderung entdeckt, die Entwickler noch früher betreffen wird. Ab November 2024 verlangt Android 16, dass alle nativen Bibliotheken 16-KB-Speicherseiten verwenden.
Diese Low-Level-Änderung betrifft die Art und Weise, wie Binärdateien erstellt und ausgerichtet werden. Apps mit nativem Code, die diese Anforderung nicht erfüllen, starten auf neueren Geräten nicht.
Bei den Tests traten mehrere Warnungen im Zusammenhang mit nativen Abhängigkeiten auf, die intern von Evergine und von externen Bibliotheken verwendet werden. Zu den betroffenen Komponenten gehörten unter anderem:
- so, libShaderConductorWrapper.so, libnaga_to_csharp.so (aus Evergine.HLSLEverywhere)
- CognitiveServices.Speech.*.so (aus Microsoft.CognitiveServices.Speech)
- so (aus SkiaSharp.NativeAssets.Android)
- so (aus Evergine.OpenAL)
- so (aus Evergine.Bindings.Draco)
Diese Warnungen zeigten, dass einige native Binärdateien noch nicht mit 16-KB-Seitenausrichtung kompiliert waren. Wir mussten daher die betreffenden Pakete prüfen und aktualisieren, um die volle Kompatibilität mit Android 16 sicherzustellen.
Wie wir diese Probleme gelöst haben
Um die neuen technischen Anforderungen von Android zu erfüllen und Evergine-Entwicklern weiterhin eine reibungslose Bereitstellung zu ermöglichen, haben wir mehrere Aktualisierungen und Code-Reviews durchgeführt:
- Aktualisierung der Abhängigkeiten SkiaSharp und Microsoft Cognitive Services Speech auf Versionen mit korrekt ausgerichteten nativen Binärdateien.
- Aktualisierung des Bullet-Physik-Bindings in Evergine mit neu kompilierten Bibliotheken, die die Ausrichtung an 16-KB-Seitengrößen erfüllen.
- Anpassung der OpenAL-Bibliothek, die in Android-Projekten verwendet wird, an die neue Spezifikation für das Binärlayout.
- Entfernung der Abhängigkeit von Evergine.HLSLEverywhere aus den Android-Launchern. Dieses Paket wurde unter Android nie benötigt, da die Shader-Kompilierung auf dieser Plattform anders erfolgt. HLSLEverywhere wird weiterhin auf Desktop-Plattformen wie Windows verwendet, auf denen Shader dynamisch zur Laufzeit kompiliert werden.
- Sicherstellung, dass künftige native Bibliotheken die Ausrichtungsstandards einhalten. Neu integrierte Funktionen wie die KTX-Texturunterstützung von Evergine werden bereits mit 16-KB-ausgerichteten Binärdateien ausgeliefert, um von Anfang an Kompatibilität zu gewährleisten – sofern die jeweilige Funktion die Android-Plattform unterstützt.
Diese Maßnahmen gewährleisten nicht nur die Kompatibilität mit Android 16, sondern reduzieren auch unnötige Abhängigkeiten. Das Ergebnis sind übersichtlichere, schlankere und besser wartbare Projektstrukturen.
Ausblick
Mit diesen Aktualisierungen erfüllen Android-Projekte mit Evergine jetzt vollständig die Richtlinie von Google Play zur Ausrichtung auf SDK 35 und sind auf die kommenden Anforderungen von Android 16 an Speicherseiten vorbereitet.
Wir empfehlen allen Entwicklern, die Evergine verwenden, ihre Projektvorlagen zu aktualisieren, bevor sie neue App-Versionen bei Google Play einreichen. So lassen sich mögliche Kompatibilitätsprobleme minimieren, und ihre Anwendungen bieten auch auf künftigen Android-Geräten ein zuverlässiges Erlebnis.
Evergine bietet weiterhin langfristigen Support für industrielle 3D- und XR-Anwendungen, damit heute erstellte Projekte auch bei der Weiterentwicklung mobiler Plattformen reibungslos laufen.
