Krótka wersja: praca z C ++ na Androidzie jest możliwa i łatwiejsza z każdą wersją Android SDK / NDK, ale jest trudniejsza niż praca z Javą.
Długa wersja :
Dla każdej wersji Google dodaje więcej funkcji do zestawu Android Development Development Kit i czyni go coraz bardziej niezależnym od kodu Java.
Przeczytaj http://developer.android.com/sdk/ndk/overview.html, aby uzyskać więcej informacji:
Napisz działanie rodzime, które pozwala zaimplementować wywołania zwrotne cyklu życia w kodzie macierzystym. Zestaw Android SDK udostępnia klasę NativeActivity, która jest klasą wygody, która powiadamia twój kod macierzysty o wszelkich wywołaniach zwrotnych cyklu życia aktywności (onCreate (), onPause (), onResume () itp.). Możesz zaimplementować wywołania zwrotne w swoim kodzie natywnym, aby obsłużyć te zdarzenia, gdy one wystąpią. Aplikacje korzystające z działań natywnych muszą być uruchamiane w systemie Android 2.3 (API Level 9) lub nowszym. Nie możesz uzyskać dostępu do funkcji, takich jak Usługi i Dostawcy treści, natywnie, więc jeśli chcesz ich używać lub innego interfejsu API frameworka, nadal możesz do tego napisać kod JNI.
Problem polega tylko na tym, że jeśli używasz najnowszego NDK, nie będziesz w stanie wdrożyć wielu nowych wersji Androida.
W każdym razie, nawet w poprzednich wersjach NDK, możesz mieć minimalny kod Java (do interakcji z systemem operacyjnym) i pełny kod aplikacji w C ++ lub cokolwiek natywnego.
Staramy się również pomóc rodzimym programistom w pełni pracować w C lub C ++ za pomocą wtyczek IDE, takich jak Vs-Android, który jest wtyczką do Visual Studio 201x, ukrywając przed tobą cały proces kompilacji i generowania: http://code.google.com / p / vs-android /
Ponadto, jeśli planujesz przeniesienie aplikacji do innego systemu operacyjnego, dobrym pomysłem jest skorzystanie z C ++ dla rdzenia aplikacji (być może z językiem skryptowym na górze). Jest po prostu droższy w czasie programowania niż inne alternatywy - z powodów specyficznych dla C ++ i dostępnych implementacji narzędzi programistycznych, na przykład zbyt długi czas kompilacji może zabić efektywną wydajność.
Biorąc to pod uwagę, nie jest to najłatwiejszy sposób pracy z aplikacjami mobilnymi.
Odpowiedź jest obie.
źródło