RoboVM unterstützt die meisten Dinge, die Sie von einer JVM erwarten, einschließlich der Reflektion, die Spring für die Abhängigkeitsinjektion verwendet. So etwas wie RoboGuice sollte auf RoboVM funktionieren.
Das bemerkenswerteste Merkmal, das von RoboVM nicht unterstützt wird, ist die Generierung und das Laden von Laufzeitbytecodes. Bibliotheken, die auf Bytecode-Manipulation beruhen, können auf RoboVM nicht verwendet werden.
Eine andere Sache, die in RoboVM fehlt, ist die Unterstützung für dynamische JNI. JNI wird weiterhin unterstützt, aber der systemeigene Code muss zur Kompilierungszeit statisch verknüpft werden, im Gegensatz zur Laufzeit dynamisch, wie dies bei einer normalen JVM der Fall wäre. Der Grund dafür ist, dass gewöhnliches JNI auf dynamischen Bibliotheken basiert, dynamische Bibliotheken jedoch auf iOS nicht erlaubt sind.
Die Laufzeitklassenbibliothek von RoboVM (java.*
, javax.*
, usw.) basiert auf den Nicht-UI-Teilen der Laufzeitklassenbibliothek von Android. Jede Technologie, die auf Android funktioniert und nicht die Android UI-Klassen verwendet, sollte theoretisch auf RoboVM funktionieren.
Danke, damit AspectJ nicht funktioniert. – HighTML
Es könnte funktionieren, wenn Sie statische Weben verwenden. – ntherning