2015-03-06 3 views
0

Например, я хочу создать простое приложение, основанное на GPS, с составлением путевых точек, показом их на карте и т. Д. Итак, можно ли создавать такое приложение только с использованием C++ без каких-либо источников Java? Было бы сложнее, чем делать то же самое на Java?Является ли C++ подходящим для разработки Android?

+0

Что вы планировали использовать для своей инфраструктуры пользовательского интерфейса на C++? – CommonsWare

+1

Есть ли причина, по которой C++ не подходит для разработки Android? –

+1

Связано: http://stackoverflow.com/q/13773686/10077 –

ответ

1

Итак, можно ли создавать такое приложение только с использованием C++, без каких-либо источников Java?

№ Если вы хотите получать GPS-координаты, нет никакого способа сделать это без кода Java.

You can написать приложение, в котором Java используется как тонкая оболочка вокруг собственного кода, используя JNI для обмена данными между Java и C++. Однако ...

Было бы сложнее, чем сделать то же самое на Java?

Да! Кроме того, приложение будет вероятно в конечном итоге:

  • Медленнее.
  • Buggier.
  • Сложнее понять и поддерживать.

Для разработки Android Java - это естественный, нормальный, по умолчанию язык, а C++ - для экзотических специальных задач, обычно таких, которые требуют очень интенсивных вычислений. Вы используете его, когда нужно, а не потому, что вы не «хотите» писать на Java или потому, что «Java медленный».

Написание правильного кода JNI также не является тривиальным. Например, очень легко получить локальные ссылки и глобальные ссылки неправильно, если вы не прочитали документацию, так как компилятор не может обнаружить их неправильное использование.

Как official documentation of the Android Native Development Kit говорит:

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

Он также говорит:

Вы не можете получить доступ к функции, такие как услуги и контент-провайдеров изначально, так что если вы хотите использовать их или любые другие рамки API, вы все еще может написать JNI код для Сделай так.

2

Да, поиск Android NDK. По-видимому, это немного хлопот, вы будете использовать СО много!

+0

Каков ваш план получения координат GPS в приложении, которое содержит только «NativeActivity»? –

+0

Да, это будет гибридное приложение. Если OP хочет использовать C/C++ только потому, что у него есть отвращение к Java, ему придется преодолеть это! – Buddy

Смежные вопросы