Android-Entwicklung mit C und C ++ [geschlossen]

47

Ich bin ein C, C ++ Entwickler. Ich interessiere mich für mobile Entwicklung. Ich möchte wissen, wie ich Android-Apps mit C und C ++ entwickeln kann. Ich habe gelesen, dass sie ein Kit für C- und C ++ -Entwickler bereitstellen, das jedoch nicht alle Funktionen ab Java-Kit bietet. Sollte ich mich für das C / C ++ - Entwicklungskit entscheiden, oder ist es besser, Java zu lernen, da es in Zukunft möglicherweise nicht alle Funktionen bietet?

Fuddin
quelle

Antworten:

33

Kurzversion: Die Arbeit mit C ++ unter Android ist mit jeder Android SDK / NDK-Version möglich und einfacher, aber schwieriger als mit Java.


Lange Version :

Mit jeder Version erweitert Google das Android Native Development Kit um weitere Funktionen und macht es immer unabhängiger vom Java-Code.

Weitere Informationen finden Sie unter http://developer.android.com/sdk/ndk/overview.html :

Schreiben Sie eine native Aktivität, mit der Sie die Lifecycle-Rückrufe in nativen Code implementieren können. Das Android SDK bietet die NativeActivity-Klasse, eine Convenience-Klasse, die Ihren nativen Code über alle Aktivitätslebenszyklus-Rückrufe (onCreate (), onPause (), onResume () usw.) benachrichtigt. Sie können die Rückrufe in Ihrem systemeigenen Code implementieren, um diese Ereignisse zu behandeln, wenn sie auftreten. Anwendungen, die native Aktivitäten verwenden, müssen auf Android 2.3 (API Level 9) oder höher ausgeführt werden. Sie können nicht nativ auf Funktionen wie Dienste und Inhaltsanbieter zugreifen. Wenn Sie diese oder eine andere Framework-API verwenden möchten, können Sie dennoch JNI-Code schreiben, um dies zu tun.

Das Problem ist nur, dass Sie, wenn Sie das neueste NDK verwenden, nicht in der Lage sind, viele nicht aktuelle Android-Versionen bereitzustellen.

Selbst mit früheren NDK-Versionen können Sie nur minimalen Java-Code (für die Interaktion mit dem Betriebssystem) und den vollständigen Anwendungscode in C ++ oder einem beliebigen nativen Code haben.

Es gibt auch Bemühungen, nativen Entwicklern zu helfen, über IDE-Plugins wie dieses Vs-Android, das ein Plugin für Visual Studio 201x ist, das den gesamten Kompilierungs- und Generierungsprozess vor Ihnen verbirgt, vollständig in C oder C ++ zu arbeiten: http://code.google.com / p / vs-android /

Wenn Sie vorhaben, Ihre Anwendung auf ein anderes Betriebssystem zu portieren, empfiehlt es sich, C ++ als Kern Ihrer Anwendung zu verwenden (möglicherweise mit einer Skriptsprache im Vordergrund). Die Entwicklungszeit ist nur teurer als bei anderen Alternativen - aus Gründen, die für C ++ spezifisch sind, und aus Gründen, die für die Implementierung von Entwicklertools zur Verfügung stehen.

Trotzdem ist das nicht die einfachste Art, an mobilen Apps zu arbeiten.

Klaim
quelle
8

Ich würde Ihnen raten, sich für C ++ zu entscheiden, wenn Sie einen festen Plan für die Spieleentwicklung haben. Wenn nicht, entscheiden Sie sich besser für Java. Hier ist eine gute Einführung für Sie auf der offiziellen Android-Website:

Spieleentwicklung für Android: Eine kurze Einführung

HINWEIS: Bitte lesen Sie Schritt 2 (Schritt 2: Wählen Sie eine Sprache) des Tutorials.

Wenn Sie Java überhaupt nicht kennen und langfristig Apps auf Android entwickeln möchten, ist es unerlässlich, Java zu lernen. Es gibt tolle Tutorials auf der offiziellen Website. Es gibt ein schönes Buch, das Sie zum Lernen speziell für die Android-Entwicklung herunterladen können: Hier ist es: Lernen Sie Java für die Android-Entwicklung

Maxood
quelle
Die Person, die die Frage gestellt hat, kennt C ++ bereits. Wozu raten Sie also?
Abhi
7

Sollte ich mich für das C / C ++ - Entwicklungskit entscheiden, oder ist es besser, Java zu lernen, da es in Zukunft möglicherweise nicht alle Funktionen bietet?

Die Antwort ist beides.

  • Wenn Sie Anwendungen schreiben, bei denen die Leistung im Vordergrund steht, müssen diese fast nicht in Java vorliegen. (C / C ++ ist am beliebtesten) Spiele sind das große Ticket, aber es gibt auch andere.
  • Wenn Sie eine Android-Entwicklung durchführen, sollten Sie sich auch die Zeit nehmen, Java auf ein vernünftiges Niveau zu bringen.
user606723
quelle
Ich verstehe nicht, was du damit meinst, dass Android-Entwickler Java benötigen, aber wenn du Android-Spieleentwickler machen willst, benutze c / c ++. Warum nicht einfach C / C ++ verwenden?
Lance Pollard