2015-11-01 5 views
3

Je dois évaluer Codename One, mais je n'ai pas pu trouver d'informations sur le fonctionnement du déploiement sous le capot et sur le résultat final. Est-ce qu'ils compilent mon code Java avec du vrai code natif similaire à RoboVM, utilisent-ils une JVM similaire à Gluon ou ont-ils leur propre JVM?Nom de code Que se passe-t-il sous le capot

+0

[* "Codename One convertit tout le code en code natif ou la machine virtuelle native résultant en une performance qui correspond ou dépasse les performances du code natif." *] (Https://www.codenameone.com/compare.html) (Déplier l'option * "Fast *" – MadProgrammer

Répondre

1

Vous pouvez voir my answer here pour plus de détails mais l'essentiel est que nous sommes quelque peu différents de RoboVM.

Nous traduisons le bytecode en C et le compilons en natif en utilisant xcode. Par conséquent, vous obtenez une application entièrement native et pouvez même la compiler vous-même. Comme le code C/Objective-C natif est un chemin officiellement pris en charge par iOS pour de nombreuses applications/jeux, il est garanti que cela fonctionnera toujours. RoboVM est une interface LLVM pour Java.

C'est plutôt ambitieux et quelque chose que Apple ne supporte pas officiellement. Il a créé pas mal de situations difficiles pour eux dans le passé, par exemple. this post d'un employé de RoboVM expliquant combien il était difficile pour eux de migrer vers iOS 9 ... La même chose était vraie pour la récente transition 64 bits etc.

Pour nous, la migration vers iOS 9 et 64 bits était relativement indolore , notre base de code est également plus petite puisque nous limitons l'utilisation du JDK à un ensemble de classes supportées pour la portabilité.

Notez que notre VM complète est open source sous l'arbre vm here. Nous avons d'abord utilisé XMLVM et lorsque RoboVM a lancé, nous avons pensé à passer à eux, mais nous avons décidé que l'écriture de notre propre machine virtuelle réduirait les risques.

La partie VM est un très petit morceau de notre solution, par ex. nous pouvons traduire votre application à tout ce qui comprend une application JavaScript grâce à TeaVM qui prend en charge les threads sur JavaScript. Contrairement à RoboVM Codename One est une véritable solution Write Once Run Anywhere.