Могу ли я заниматься программированием Android на C ++, C? - PullRequest
53 голосов
/ 05 мая 2010

Могу ли я заниматься программированием Android на C ++, C? Если ответ «да», то скажите, пожалуйста, как? И какую процедуру настроить?

Я не знаю Obj-C, Java, но хорошо разбираюсь в C, C ++, Flash AS3, SDK, выпущенных Google.

Пожалуйста, не говорите о NVDIA SDK, он не полностью разработан:)

Ответы [ 6 ]

57 голосов
/ 05 мая 2010

ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: ОТВЕТ НИЖЕ УЖАСНО УСТАРЕЛ И НЕ МОЖЕТ БЫТЬ ПОЛНОСТЬЮ ПРАВИЛЬНЫМ.

Вы можете программировать на C / C ++, используя Android NDK . Вы должны будете обернуть свою кодовую базу c ++ в статическую библиотеку и загрузить ее через оболочку Java и JNI.

Стандартный NDK не поддерживает RTTI, и многие функции стандарта c ++ также недоступны, такие как std :: string и т. Д. Чтобы решить эту проблему, вы можете перекомпилировать NDK. Дмитрий Москальчук поставляет модифицированную версию NDK, которая поддерживает это в http://www.crystax.net/android/ndk-r3.php. Эта модифицированная версия работает на всех телефонах Android, работающих на процессоре ARM.

В зависимости от типа приложения вы должны решить использовать Java или C / C ++. Я бы использовал C / C ++ для всего, что требует вычислительной мощности и игр выше среднего уровня - Java для остальных.

Просто выберите один язык и напишите большую часть заявки на этом языке; Вызовы JNI могут значительно снизить вашу производительность. Java не так сложен, хотя - если вы знаете, как программировать на C / C ++. Преимущество Java состоит в том, что приложение может работать на любом устройстве под управлением Android, поскольку приложения NDK зависят от архитектуры, для которой оно было скомпилировано.

15 голосов
/ 05 мая 2010

Вам следует использовать Android NDK для разработки критичных для производительности частей ваших приложений в собственном коде. См. Android NDK .

В любом случае, я не думаю, что это правильный способ разработки всего приложения.

8 голосов
/ 05 мая 2010

Да, вы можете программировать приложения Android на C ++ (по большей части), используя Native Development Kit (NDK) , хотя Java является основным / предпочтительным языком для программирования Android и вашего кода C ++. вам, вероятно, придется взаимодействовать с компонентами Java, и вам, вероятно, придется читать и понимать документацию для компонентов Java. Поэтому я бы посоветовал вам использовать Java, если у вас нет какой-либо существующей базы кода C ++, которую нужно портировать, и которую непрактично переписывать в Java.

Java очень похожа на C ++, я не думаю, что у вас возникнут какие-либо проблемы с ее поднятием ... переход с C ++ на Java невероятно прост; переход с Java на C ++ немного сложнее, хотя и не страшен. Java для программистов на C ++ довольно хорошо объясняет различия. Написание кода Android на Java будет более идиоматичным, а также облегчит вам процесс разработки (поскольку инструментарий для Java Android SDK значительно лучше, чем соответствующий инструментарий NDK)

С точки зрения настройки, Google предоставляет Android Studio IDE для разработки на Java и C ++ для Android (с Gradle в качестве системы сборки), но вы можете свободно использовать любую IDE или систему сборки, которую хотите, так что Пока под капотом вы используете Android SDK / NDK для получения окончательных результатов.

3 голосов
/ 16 сентября 2011

Вам также следует обратить внимание на MoSync , MoSync предоставляет вам стандартные C / C ++, простые в использовании хорошо документированные API и полнофункциональную IDE на основе Eclipse. Теперь IDE с открытым исходным кодом все еще довольно классная, но больше не поддерживается.

2 голосов
/ 25 октября 2014

Вы также можете взглянуть на C ++ Builder XE6, и XE7 поддерживает Android в коде C ++ и с библиотекой Firemonkey.

http://www.embarcadero.com/products/cbuilder

Довольно простой способ запуска и собственного кода. Но бинарные файлы имеют большой размер.

0 голосов
/ 02 сентября 2010

Для программирования на C ++ в Android существует более одной библиотеки:

  1. C ++ - qt (продукт Nokia, также доступен как LGPL)
  2. C ++ - Wxwidget (доступно как GPL)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...