Розробка Android за допомогою C і C ++ [закрито]


47

Я розробник C, C ++. Мене цікавить мобільний розвиток. Я хочу знати, як я можу розробляти додатки для Android за допомогою C та C ++, я читав, що вони надають набір для розробників C, C ++, але він не має всіх функцій, як у комплекті Java. Чи варто брати набір для розробки C / C ++ або краще вивчити Java, оскільки вони можуть не надавати всі функції в майбутньому?

Відповіді:


33

Коротка версія: робота з C ++ на Android можлива і простіша з кожною версією Android SDK / NDK, але це складніше, ніж працювати з Java.


Довга версія:

Для кожної версії Google додає більше функціональних можливостей Android Native Development Kit і робить його все більш незалежним від коду Java.

Прочитайте http://developer.android.com/sdk/ndk/overview.html для отримання більш детальної інформації:

Напишіть нативну діяльність, яка дозволяє реалізовувати зворотні дзвінки життєвого циклу у рідному коді. Android SDK забезпечує клас NativeActivity - клас зручності, який повідомляє ваш рідний код про будь-які зворотні виклики життєвого циклу активності (onCreate (), onPause (), onResume () тощо). Ви можете реалізувати зворотні дзвінки у своєму рідному коді, щоб обробляти ці події під час їх виникнення. Програми, які використовують вбудовані дії, потрібно запускати на Android 2.3 (API рівня 9) або новішої версії. Ви не можете отримати доступ до таких функцій, як Служби та Постачальники вмісту, так що, якщо ви хочете використовувати їх або будь-який інший API API, ви все одно можете написати JNI-код для цього.

Проблема полягає лише в тому, що якщо ви використовуєте найсвіжіший NDK, ви не зможете розгорнути і багато не останніх версій Android.

У будь-якому випадку, навіть із попередніми версіями NDK, ви можете мати мінімальний код Java (для взаємодії з ОС) та повний код програми на C ++ або будь-якому іншому.

Також намагаються допомогти місцевим розробникам повноцінно працювати на C або C ++ за допомогою плагінів IDE, як-от Vs-Android, який є плагіном для Visual Studio 201x, приховуючи від вас весь процес компіляції та генерації: http://code.google.com / p / проти-android /

Крім того, якщо ви плануєте перенести свою програму в іншу ОС, перехід із C ++ до основи вашої програми (можливо, з мовою сценаріїв зверху) - хороша ідея. Це просто дорожче на час розробки, ніж інші альтернативи - з причин, специфічних для C ++ та наявних реалізацій інструментів розробників, наприклад, занадто багато разів компіляції можуть вбити вашу ефективну продуктивність.

Однак, це не найпростіший спосіб роботи над мобільними додатками.


8

Я б радив вам перейти на C ++, якщо у вас є чіткий план зайнятися розробкою гри. Але якщо ні, то краще піти на Java. Ось хороший буквар для вас на офіційному веб-сайті Android:

Розробка ігор для Android: Швидкий буквар

ПРИМІТКА. Будь ласка, прочитайте крок 2 (крок другий: оберіть мову) підручника.

Якщо ви взагалі не знаєте Java і хочете довгостроково розробляти додатки на Android, важливо вивчити Java. На офіційному веб-сайті представлені чудові навчальні посібники. Є приємна книга, яку можна взяти за навчання спеціально для розробки Android: Ось це: Learn Java for Android


Людина, яка опублікувала питання, вже знає C ++, тож який сенс вашої поради?
abhi

7

Чи варто брати набір для розробки C / C ++ або краще вивчити Java, оскільки вони можуть надавати не всі функції в майбутньому?

Відповідь і те, і інше.

  • Якщо ви пишете будь-які програми, де продуктивність є головним питанням, вони майже повинні бути в чомусь іншому, ніж Java. (C / C ++ є найпопулярнішим) Ігри - це великий квиток, але є й інші.
  • Якщо ви займаєтесь розробкою будь-яких андроїд, вам також слід витратити час, щоб навчитися Java до розумного рівня.

Я не розумію, що ви маєте на увазі, займаючись Android-розробником, потрібно java, але якщо ви хочете робити андроїд-ігри Dev, використовуйте c / c ++. Чому б просто не використовувати c / c ++ у всій мірі.
Ленс Поллард
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.