Programowanie Androida przy użyciu C i C ++ [zamknięte]

47

Jestem programistą C, C ++. Jestem zainteresowany rozwojem mobilnym. Chcę wiedzieć, jak mogę tworzyć aplikacje na Androida przy użyciu C i C ++, przeczytałem , że dostarczają one zestaw dla programistów C, C ++, ale nie ma on wszystkich funkcji jak w przypadku zestawu Java. Czy powinienem wybrać zestaw programistyczny C / C ++, czy lepiej nauczyć się języka Java, ponieważ mogą one nie zapewniać wszystkich funkcji w przyszłości?

fuddin
źródło

Odpowiedzi:

33

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.

Klaim
źródło
8

Radzę wybrać C ++, jeśli masz zdecydowany plan, aby przejść do tworzenia gier. Ale jeśli nie, lepiej wybierz Javę. Oto dobry podkład dla Ciebie na oficjalnej stronie Androida:

Rozwój gier na Androida: szybki podkład

UWAGA: Proszę przeczytać krok 2 (Krok drugi: Wybierz język) samouczka.

Jeśli w ogóle nie znasz języka Java i lubisz tworzyć aplikacje na Androida na dłuższą metę, musisz nauczyć się języka Java. Na oficjalnej stronie znajdują się świetne samouczki. Jest fajna książka, którą możesz pobrać, aby uczyć się specjalnie na rozwój Androida: Oto ona: Naucz się programowania Java na Androida

Maxood
źródło
Osoba, która opublikowała pytanie, zna już C ++, więc jaki jest sens twojej porady?
abhi
7

Czy powinienem wybrać zestaw programistyczny C / C ++, czy lepiej nauczyć się języka Java, ponieważ mogą one nie zapewniać wszystkich funkcji w przyszłości?

Odpowiedź jest obie.

  • Jeśli piszesz aplikacje, w których wydajność jest głównym przedmiotem zainteresowania, prawie muszą znajdować się w czymś innym niż Java. (C / C ++ jest najbardziej popularny) Gry to duży element biletu, ale są też inne.
  • Jeśli robisz jakiś rozwój Androida, powinieneś również poświęcić trochę czasu na naukę Java na rozsądnym poziomie.
użytkownik606723
źródło
Nie rozumiem, co masz na myśli mówiąc, że tworzenie Androida wymaga java, ale jeśli chcesz zrobić Android, użyj c / c ++. Dlaczego po prostu nie używać całego c / c ++.
Lance Pollard