Zaktualizowano (dla jasności i dla zmniejszenia niejednoznaczności):
Zacznę majstrować przy aplikacjach na Androida. Planowałem napisać w C ++ przy użyciu NDK (ponieważ mam większe doświadczenie w C ++ i wolę to od Java), ale na stronie Android NDK natknąłem się na następujące rzeczy :
powinieneś używać NDK tylko wtedy, gdy jest niezbędny dla twojej aplikacji - nigdy dlatego, że po prostu wolisz programować w C / C ++.
Odniosłem wrażenie, że powinieneś używać preferowanego języka, o ile pasuje do pracy. Czy ktoś mógłby wyjaśnić, dlaczego tak mocno odradza się używanie C / C ++ do tworzenia aplikacji na Androida?
Oryginał:
Zacznę majstrować przy aplikacjach mobilnych, w szczególności Androidzie, który jest systemem operacyjnym mojego obecnego telefonu, i zastanawiałem się, czy pisanie aplikacji w C ++ (lub przynajmniej rdzeniu, a następnie zawijanie w Javie) było akceptowalną opcją.
Mam pewne doświadczenie, jestem informatykiem, który ukończył 3 kursy C ++ (wprowadzenie, średniozaawansowany, OOP, a wiosną biorę kurs STL) i tylko 1 kurs Java (średniozaawansowany). Z tego powodu wolę C ++ i wolę go od Javy. Na stronie Android NDK natknąłem się na :
Korzystanie z kodu natywnego w systemie Android na ogół nie powoduje zauważalnej poprawy wydajności, ale zawsze zwiększa złożoność aplikacji. Ogólnie rzecz biorąc, powinieneś używać NDK tylko wtedy, gdy jest niezbędny dla twojej aplikacji - nigdy dlatego, że po prostu wolisz programować w C / C ++.
- Odniosłem wrażenie, że powinieneś używać języka odpowiedniego do pracy, a także takiego, który znasz
- Mogę chcieć przenieść aplikację na inną platformę mobilną, taką jak iOS, która obsługuje C ++, ale nie java
- Chociaż Java jest językiem wysokiego poziomu i dlatego powinien przyspieszyć rozwój, czuję, że rozwój byłby wolniejszy, ponieważ musiałbym nauczyć się od nowa prawie wszystkiego (ponieważ miałem tylko jedną lekcję z tego języka)
Każda rada byłaby bardzo wdzięczna.
ps: wiele odpowiedzi na ten temat pochodzi z lat temu, a niewiele jest odpowiedzi, które wspominają o NDK umożliwiającym tworzenie pełnych natywnych aplikacji na Androida 2.3 i nowszych.