Ich habe gerade das Open-Source-Projekt in github (googlevr) gesehen und meine Frage ist, wie ist es möglich, dass C++ mit Java funktioniert? Ich kann verstehen, dass Java für Android-Sachen und C++ für Grafik, Speicher und Tracking ist, aber wie arbeiten zwei verschiedene kompilierte Sprachen zusammen?Google VR Java und C++?
Antwort
In C und C++ können Sie gemeinsam genutzte Bibliotheken erstellen. Sie werden für jede Plattform ein wenig anders gehandhabt, machen aber ungefähr dasselbe.
- erstellt Windows eine DLL
- Mac ein .dylib
- Linux schafft eine .so
Diese stellen ausführbaren Code erstellt, die von jedem Prozess aufgerufen werden kann. Dies bedeutet, dass Java-Code, Matlab-Code, Python-Code usw. in C/C++ geschriebenen Code aufrufen können. Java verwendet hierfür eine Funktion namens JNI (Java Native Interface). JNI ist notorisch schwierig einzurichten und zu verwalten, daher verwenden viele Leute eine Bibliothek wie Swig, die im Wesentlichen alles verwaltet, was Sie in Bezug auf JNI benötigen, um den Aufruf von vorkompiliertem C++ - Code aus Java zu vereinfachen.
Der Schlüssel hier ist "vorkompiliert". Irgendjemand, irgendwann, vielleicht sogar Sie selbst, musste den Quellcode nehmen und ihn in eine dll, dylib oder so kompilieren, und Sie müssen diese gemeinsame Bibliothek dort einrichten, wo der Code, der sie benutzen muss (in diesem Fall Ihre Java App) kann es sehen, so dass, wenn die Java-App gestartet wird, kann es die gemeinsame Bibliothek laden und Anrufe in sie machen.
Für Java ist eine Überlegung, dass Java-Code inhärent plattformübergreifend ist. C++ - Code muss für jede Plattform kompiliert werden. Wenn Sie also Ihre Java-App verteilen, müssen Sie sicherstellen, dass Sie eine gemeinsam genutzte Bibliothek zur Verfügung haben, die für die Plattform zugänglich ist, auf der sie ausgeführt wird.
- 1. Google VR sdk nicht
- 2. Junior in VR. Google Map, Google Streetview und RTSP
- 3. Kreuz Herkunft Framing Google VR
- 4. Google VR Seitenansicht auf iOS
- 5. Google VR-Ansicht - Head Tracking
- 6. Google Vr Video Ansicht Fehler
- 7. Google VR SDK (Unity) - GvrVideoPlayerTexture tauschen URL
- 8. Problem mit Google VR in Android
- 9. Video Player in Google Daydream VR SDK
- 10. Google VR SDK Unity-Paket funktioniert nicht
- 11. Pre-Spatializer-Effekt - Unity und Google VR-Audio
- 12. Google-VR SDK: Unity gvraudiolistener Skript und Weltmaßstab
- 13. Wie Debuggen bei Verwendung von Google VR (Daydream) und Unity?
- 14. Google VR Umhüllungsfehler oben und unten, Vorschläge oder Ersatz?
- 15. Google VR-Ansicht für das Web
- 16. React Native Inkompatibel mit Google VR SDK
- 17. Google VR-Fehler: Texturen können nicht von
- 18. Google VR - Verzerrung ist zu viel
- 19. Google VR SDK - Schaltfläche "Schließen" funktioniert nicht
- 20. Wie können Sie Google VR View ansprechen?
- 21. Ausführen von google-vr Einheit Tagtraum-App auf Google Pixel
- 22. Exportieren von google vr unity sdk master Beispieldatei von Einheit und erhalten Fehler
- 23. Hallo Welt VR-App
- 24. Spielen m3u8 in Google VR für Android Beispiel
- 25. C# und Google Tabellen
- 26. Google VR Absehen Klicken Sie auf UI Button
- 27. Google VR SDK für Unity - Absehen nicht ausgerichtet
- 28. Starten von Google Cardboard VR unter iOS: Welches SDK?
- 29. Google VR View Error - Unable Textur laden von ffff.jpg
- 30. Unity 3D Google Cardboard (VR) Blickfunktionen ohne EventTrigger
[JNI] (https://en.wikipedia.org/wiki/Java_Native_Interface), zum Beispiel. – emlai
Lesen Sie auf SWIG. – JETM
JNA, JNR, Projekt Panama. Kürzlich habe ich auch eine Rede über das Hinzufügen von Handles für Maschinencode-Snippets gesehen, die vom Jit verwendet werden sollen. –