Also wer angeordnet hat, das ganze müsse via C/C++ realisiert werden, hat von App-Entwicklung unter Android keine Ahnung.
Aus eigener Erfahrung kann ich sagen: 'nativer' C/C++ Code wird auf dem Gerät arschlangsam laufen. Android und das zu Grunde liegende Dalvik (die virtuelle Maschine, auf dem das Android läuft) sind so dermaßen für Java optimiert, dass 'nativer' C/C++ Code auf den Geräten ewig lange braucht.
Hinzu kommt, dass Du nicht einfach so C/C++ Code eintippen und loslegen kannst. Du musst zu jeder C/C++ Funktion eine Java-Methode erstellen und das Ganze dann brücken.
Die (verlinkte) Dokumentation sagt dazu:
Zitat
Don’t assume you’ll increase your application’s performance just because you’re using native code. The Java<->Native C exchanges add some overhead, so it’s only really worthwhile if you’ve got some intensive processing to do.
Das ist leider wirklich so. Ich hatte seinerzeit™ vor, ein bisschen CPU-hungrige GSP-Berechnungen in C auszulagern. Da ich Werte an den C-Code übergeben und die Ergebnisse an den Java-Bridgecode zurückgeben musste, dauerte das Ganze ungelogen 3x so lange wie mit Java.
Es ist also auf keinen Fall empfehlenswert.
Eventuell weiß der Auftraggeber das nicht. So etwas zu evaluieren gehört auch zu Deinen Aufgaben in der Angewandten Informatik.
Generell ist ein reibungsloses Einbinden von C/C++ Code weder in Android noch in Windows Phone möglich.
Wie es bei Blackberry aussieht kann ich nicht beurteilen. Ubuntu Phone und iOS hingegen sind ausgesprochen offen für diese Dinge.
Weiterhin klingt 'fernsteuern' so, als ob Du einerseits Aktionen definieren können musst als auch die Resultate ersichtlich sein sollen.
Sprich: Du tippst auf das Gas und willst gleichzeitig sehen, wie die Umgebung schneller an Dir vorbei rauscht.
Analoge Eingaben wie die Druckkraft auf das Gas stelle ich mir sehr schwer zu realisieren vor. Und die Echtzeitdarstellung via Stream dürfte auch alles Andere als einfach werden.
Die erhaltenen Informationen in dem Beiblatt sind sehr dürftig. Es gibt zwar einen Bereich, der sich an Entwickler richtet, doch ist dieser ausschließlich für die Manipulation der Wegstrecken gedacht. Das alles hilft Dir in keinster Weise weiter.
Befürchtung: das ganze System ist eine BlackBox, das heißt, alles läuft darin gekapselt von der Außenwelt ab. Du kannst also höchstens per mit Kabeln angeschlossener Peripherie (Gaspedal, Bremspedal, Lenkrad) den Simulator steuern und bekommst die Anzeige ausschließlich über Grafikausgänge wie DVI oder HDMI präsentiert.
In dem Fall wird die App das kleinste Übel und es ist dann auch völlig egal, ob das in Ruby, Phython, Java oder ASM realisiert wird. In dem Fall brauchst Du nämlich eine Hardware mit Zugriffsmöglichkeit ((W)LAN oder Bluetooth z.B.), die je nach erhaltenem Signal die Informationen an den Simulator sendet.
Diese Hardware muss dann eine API liefern, mit derer Hilfe sie den Simulator beeinflusst.
Als allerersten Schritt solltest Du die Softwareentwicklung des Herstellers kontaktieren und in Erfahrung bringen, ob die Fernsteuerung des Simulators bereits in einem Modul implementiert wurde, dieses Modul und die Dokumentation anfordern und um die API dieser Dokumentation herum eine App basteln.
Falls es die Fernsteuerung des Simulators nicht gibt, benötigst Du die API für die einzelnen Steuerelemente (Gas, Bremse, Lenkung, Blinker...) und musst Dir darum eine fest verdrahtete Hardware basteln, die dann per Netzwerk gemäß einer eigenen von Dir ausgedachten API gesteuert wird.
Ersteres ist ja noch machbar, bei Zweiterem wird es ein Aufwand, mit dem Du Deiner Uni locker zehn Mitarbeiter für 6 Monate abluchsen kannst. Alleine in einem Semester mit Vorlesungen, Klausuren und all dem Schmiss wird das Projekt mit eigener Hardware mehr als sportlich.