2013-03-06 17 views
9

Ich bin dabei, eine Android-App zu erstellen (ich arbeite gerade an dem Web-Service und der Datenbank) und ich würde gerne wissen, ob es einen signifikanten Unterschied in der App-Geschwindigkeit zwischen Java oder direkt in C gibt oder C++.Schnelle Android-App erstellen - Java oder nativ?

Die App enthält keine komplexen Grafiken oder Physik und ihre Geschwindigkeit hängt hauptsächlich von der Übertragungsgeschwindigkeit mehrerer Objekte zu und von einem REST-Webdienst ab.

Vielen Dank im Voraus

+5

Ich würde es in Java, wie Google empfehlen. Der einzige Zweck des NDK besteht darin, die Portierung bereits existierender Codebasen erheblich zu erleichtern. –

+4

"seine Geschwindigkeit hängt hauptsächlich von der Übertragungsgeschwindigkeit mehrerer Objekte zu und von einem REST-Webdienst ab" - die "Übertragungsgeschwindigkeit" wird durch die Internetverbindung bestimmt und hat wenig oder nichts mit der Geschwindigkeit der Programmiersprache zu tun. – CommonsWare

+0

Verwenden Sie Java, bis Sie eine native lib oder Profiling binden müssen, zeigt einen Hot Spot, wo der bescheidene Geschwindigkeitsvorteil von nativem Code wirklich einen Unterschied machen wird. Es ist viel schwieriger, nativen Code robust und korrekt zu machen als Java und dann noch schwieriger zu pflegen. – Gene

Antwort

18

Google says Sie wahrscheinlich mit Java nur Stick sollte:

Vor dem NDK herunterzuladen, sollten Sie verstehen, dass das NDK nicht die meisten Anwendungen profitieren. Als Entwickler müssen Sie seine Vorteile gegen seine Nachteile abwägen. Vor allem führt die Verwendung von nativem Code für Android im Allgemeinen nicht zu einer bemerkenswerten Leistungsverbesserung, erhöht jedoch immer die Komplexität Ihrer App. Im Allgemeinen sollten Sie das NDK nur verwenden, wenn es für Ihre App erforderlich ist - niemals, weil Sie es einfach vorziehen, in C/C++ zu programmieren.

Typische gute Kandidaten für das NDK sind in sich geschlossene, CPU-intensive Operationen, die nicht viel Speicher zuweisen, wie z. B. Signalverarbeitung, Physiksimulation und so weiter. Wenn Sie untersuchen, ob Sie in nativem Code entwickeln sollten oder nicht, denken Sie über Ihre Anforderungen nach und prüfen Sie, ob die Android-Framework-APIs die von Ihnen benötigte Funktionalität bereitstellen.

3

Ich würde die Verwendung des NDK nicht empfehlen, da Sie erwähnt haben, dass Sie dies von Grund auf für Android bauen. Google sagt ausdrücklich here, dass Sie das NDK aus den oben genannten Gründen nicht verwenden sollten.

0

Ich empfehle Ihnen, Java zu verwenden und Ihre REST-Webdienste mit Spring für Android zu nutzen. Es ist zu einfach, sie zu konsumieren. Momentan habe ich eine veröffentlichte App im Android Play Store und der Quellcode ist in GitHub, dort können Sie einen Blick darauf werfen.

Viel Glück!

Verwandte Themen