Разработка Android с использованием C и C ++ [закрыто]

47

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

fuddin
источник

Ответы:

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 Level 9) или более поздней версии. Вы не можете получить доступ к таким функциям, как Сервисы и Поставщики контента, поэтому, если вы хотите использовать их или любой другой API-интерфейс платформы, вы все равно можете написать код JNI для этого.

Проблема только в том, что если вы используете самую последнюю версию NDK, вы не сможете развернуть и многие не последние версии Android.

В любом случае, даже с предыдущими версиями NDK вы можете иметь минимальный Java-код (для взаимодействия с ОС) и полный код приложения на C ++ или что-то родное.

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

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

При этом, это не самый простой способ работать с мобильными приложениями.

Klaim
источник
8

Я бы посоветовал вам перейти на C ++, если у вас есть твердый план заняться разработкой игр. Но если нет, вам лучше пойти на Java. Вот хороший пример для вас на официальном сайте Android:

Разработка игр для Android: краткий учебник

ПРИМЕЧАНИЕ. Пожалуйста, прочитайте шаг 2 (Шаг второй: выберите язык) учебника.

Если вы совсем не знаете Java и любите разрабатывать приложения для Android в течение длительного времени, важно изучить Java. На официальном сайте представлены отличные учебники. Есть хорошая книга, которую вы можете взять для изучения специально для разработки под Android: Вот она: Изучение Java для разработки под Android

Maxood
источник
Человек, который разместил вопрос, уже знает C ++, так какой смысл в вашем совете?
Абхи
7

Стоит ли переходить на набор для разработки на C / C ++ или лучше изучать Java, так как в будущем они могут не обеспечивать всех функций?

Ответ оба.

  • Если вы пишете какие-либо приложения, где производительность является основной проблемой, они почти должны быть в чем-то другом, чем Java. (C / C ++ является самым популярным). Игры - это большой билет, но есть и другие.
  • Если вы занимаетесь разработкой для Android, вам также следует потратить время на изучение Java до приемлемого уровня.
user606723
источник
Я не понимаю, что вы имеете в виду, говоря, что для android dev требуется java, но если вы хотите сделать android game dev, используйте c / c ++. Почему бы просто не использовать c / c ++?
Лэнс Поллард,