31.08.2015, 20:23
Hallo alle zusammen,
ich habe heute mal die neue "Android Auto Desktop Headunit" getestet und es wäre natürlich ziemlich genial, wenn man das Teil irgendwie auf dem RPi zum laufen kriegt. Natürlich wäre die Performance nicht so toll, aber da der Quellcode nicht öffentlich ist, wäre das sowieso Zeitverschwendung da was zu machen.
Dann habe ich mal wieder in einen Thread im xda Forum geschaut, wo jemand versucht hat eine App zu schreiben, die eine AA Headunit simuliert. Mittlerweile läuft das Teil auch echt gut, hab das heute ein paar Stunden am laufen gehabt und bin echt beeindruckt. Hier mal der Link
Aber jetzt kommt das eigentlich Problem: Das ganze ist eine Android App, d.h. die Chance es auf dem RPi zum laufen zu kriegen ist ungefähr gleich 0. Soweit ich weiß, hat so ein Port bisher alle Entwickler abgeschreckt. Ich habe relativ wenig Ahnung von Java, aber da sind wohl die Unterschiede zwischen der Java VM und Dalvik VM (mittlerweile ART?) zu groß.
Mike (der Entwickler der App) hat verdammt viel reverse engineering betrieben und in dem Thread aber auch die Funktionsweise von AA beschrieben. Und da ist der Punkt an dem man, denke ich jedenfalls, mit einer nativen Lösung für den RPi ansetzen könnte:
Jetzt wäre die Frage, ob hier irgendwo ein fähiger Java-Entwickler ist, der mal in den Quelltext schauen kann (github)?
Speziell interessieren mich die Fragen:
- Ist es möglich den Code in C/C++ zu portieren, also die Funktion nachstellen?
- Wie groß ist der Aufwand?
Kann sein, dass ich grad einfach zu euphorisch bin und den Haken nicht sehe. Aber es kann doch nicht so schwer sein, diesen Videostream abzufangen und dann auch noch Touch-Events zu generieren. Die Hersteller der 700€+ Radios, die AA unterstützen, arbeiten ja auch nicht mit Zauberwasser. Und durch die Informationen aus Mikes App sollte da doch was gehen. Ich habe ihm auch noch eine Mail geschrieben, vielleicht kann er da auch noch Infos beisteuern
ich habe heute mal die neue "Android Auto Desktop Headunit" getestet und es wäre natürlich ziemlich genial, wenn man das Teil irgendwie auf dem RPi zum laufen kriegt. Natürlich wäre die Performance nicht so toll, aber da der Quellcode nicht öffentlich ist, wäre das sowieso Zeitverschwendung da was zu machen.
Dann habe ich mal wieder in einen Thread im xda Forum geschaut, wo jemand versucht hat eine App zu schreiben, die eine AA Headunit simuliert. Mittlerweile läuft das Teil auch echt gut, hab das heute ein paar Stunden am laufen gehabt und bin echt beeindruckt. Hier mal der Link
Aber jetzt kommt das eigentlich Problem: Das ganze ist eine Android App, d.h. die Chance es auf dem RPi zum laufen zu kriegen ist ungefähr gleich 0. Soweit ich weiß, hat so ein Port bisher alle Entwickler abgeschreckt. Ich habe relativ wenig Ahnung von Java, aber da sind wohl die Unterschiede zwischen der Java VM und Dalvik VM (mittlerweile ART?) zu groß.
Mike (der Entwickler der App) hat verdammt viel reverse engineering betrieben und in dem Thread aber auch die Funktionsweise von AA beschrieben. Und da ist der Punkt an dem man, denke ich jedenfalls, mit einer nativen Lösung für den RPi ansetzen könnte:
Zitat:Basically, the AA app creates a special environment in which it draws to a virtual screen instead of the real screen. The resulting video is encoded as an H.264 stream and sent via USB to the HU. The HU responds with touch-screen events which the AA app interprets similarly to normal Android app operation.
AA compatible audio apps contain AA audio extensions, which can provide control of audio app playback and provide information about which audio streams or files can be played. The audio app uses it's normal Android audio APIs, which the AA "app" hooks in order to send the audio to the HU, over USB or Bluetooth. I refer to the AA "app" with parentheses, because it has many hooks into Android internals which normal apps do not have access to. Thus, much of the AA "app" is really system level code, though there is a minor UI for some basic configuration and to provide access to AA developer mode functions.
Jetzt wäre die Frage, ob hier irgendwo ein fähiger Java-Entwickler ist, der mal in den Quelltext schauen kann (github)?
Speziell interessieren mich die Fragen:
- Ist es möglich den Code in C/C++ zu portieren, also die Funktion nachstellen?
- Wie groß ist der Aufwand?
Kann sein, dass ich grad einfach zu euphorisch bin und den Haken nicht sehe. Aber es kann doch nicht so schwer sein, diesen Videostream abzufangen und dann auch noch Touch-Events zu generieren. Die Hersteller der 700€+ Radios, die AA unterstützen, arbeiten ja auch nicht mit Zauberwasser. Und durch die Informationen aus Mikes App sollte da doch was gehen. Ich habe ihm auch noch eine Mail geschrieben, vielleicht kann er da auch noch Infos beisteuern