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.