Ich denke das war gar keine so schlechte Idee mit dem Java/C++ Mix. C++ muss leider relativ Prozessorspezifisch kompiliert werden, so dass es einige Android-Geräte gibt auf denen das nicht läuft (z.B. x86 Tablets). In Sachen Plattformunabhängigkeit des Binärcodes ist Java natürlich Spitze.
Aber Java ist auch i.d.R. langsamer als C++. Oft merkt man es nicht, aber oft eben doch. JIT kann helfen, aber es löst nicht alle Probleme. Schutzfunktionen, z.B. Bereichsprüfung beim Array, ist ja ganz nett, aber kostet Zeit. Ohne Prüfung riskiert man Abstürze, aber die Zugriffe sind dann auch locker doppelt so schnell. Das macht man durchaus wenn man selbst dafür sorgt, dass die Grenzen eingehalten werden. C/C++ kann man deutlich maschinennäher und damit schneller ausnutzen. Automatische Garbage Collection ist praktisch, aber auch nicht immer gut für die Performance. Ich vermute auch die Argumentübergabe in Java ist langsamer. In C/C++ kann man fast alles Überflüssige wegoptimieren, sogar den Funktionsoverhead selbst (inline).
Victor wollte sogar alles komplett auf C++ umstellen.
Ich hatte mal aus Versehen beim Verlinken die native Library-Apps getrasht. OsmAnd hat dann auf Java-Only umgeschaltet. War ganz schön lahm im Vergleich. Vor allem beim Kartenaufbau der Vektorkarten.
Sicher? Ich hatte gehört, dass der Speichermangel das größte Problem wäre. Ist es nicht auch bei Android so, dass wenn das RAM nicht reicht, Speicherseiten auf die SD-Karte geswappt werden? Das wäre dann natürlich superlangsam. RAM ist auf meinem Billig-Samsung recht knapp. Ich habe es noch nicht auf großen Smartphones getestet.
Ich bin kein Router Experte. Aber ich dachte der große Vorteil von BRouter wäre seine Konfigurierbarkeit und die Nutzung des Höhenprofils für die Metrik. Ich hatte nicht den Eindruck, dass OsmAnd zu viele Umwege mangels Optimierung liefert. Probleme hatte ich vor allem da gesehen, wo OsmAnd einfach andere Prioritäten setzt. OsmAnd bevorzugt Fahrradwege entlang viel befahrener Straßen. Kann man machen für die Rennradler unter uns, für sie eine gute Metrik. Ich möchte aber Ruhe und fahre bevorzugt Feldwege und noch lieber Waldwege. Aber wer berücksichtigt den Waldanteil? Ehrlich gesagt hat mir bisher noch kein Router zuverlässig aus meiner Sicht attraktive Routen geliefert. Ich priorisiere auch keine Fernradwege, wenn es ruhigere Alternativen im Wald gibt. Hoch im Kurs stehen bei mir Fluss- und Bachläufe, Mischwald, Fernsicht auf Höhenwegen etc.
Einen Nutzen erhoffte ich mir vom OsmAnd-Routing einmal als es im Wald stockdunkel war, kein Mondlicht, keine Orientierung. Die starke LED-Lampe hatte ich vergessen, konnte dann nicht einmal die Radwegebeschilderung ablesen. Ich dachte, Ok, OsmAnd führt dich nach Hause. Leider wollte es wieder zurück über die Berggipfel. Sehr lustig. Also habe ich dann versucht, mich an der Kartenpeepshow am Handy zu orientieren. Das Display ist leider zu klein, um in der Landschaft einen guten Überblick über das Wegenetz zu bekommen. So hatte ich OsmAnd auch manchmal nur unterstützend zum Routing herangezogen, weil ich keine Papierkarte dabei hatte. Naja, Routing für das Fahrrad ist schon eine sehr komplexe Materie. Da gibt es mehr zu Diskutieren als beim Automobil-Routing.