Например, я хочу создать простое приложение, основанное на GPS, с составлением путевых точек, показом их на карте и т. Д. Итак, можно ли создавать такое приложение только с использованием C++ без каких-либо источников Java? Было бы сложнее, чем делать то же самое на Java?Является ли C++ подходящим для разработки Android?
ответ
Итак, можно ли создавать такое приложение только с использованием 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 код для Сделай так.
Да, поиск Android NDK. По-видимому, это немного хлопот, вы будете использовать СО много!
Каков ваш план получения координат GPS в приложении, которое содержит только «NativeActivity»? –
Да, это будет гибридное приложение. Если OP хочет использовать C/C++ только потому, что у него есть отвращение к Java, ему придется преодолеть это! – Buddy
- 1. Является ли C++ подходящим для моего приложения?
- 2. Является ли nuget подходящим для ежедневного рабочего процесса разработки?
- 3. Является ли C# подходящим для языка сценариев?
- 4. Является ли JAVA необходимым для разработки Android?
- 5. Является ли smartclient подходящим?
- 6. Является ли Docker Compose подходящим для производства?
- 7. Является ли Objective C подходящим языком для 3D-игр?
- 8. Является ли Java.awt.geom подходящим для дискретных вычислений?
- 9. Является ли "char []" подходящим типом?
- 10. Является ли UINavigationController подходящим для циклов страниц?
- 11. Является ли NHibernate подходящим для применения SPC?
- 12. Является ли Haskell подходящим для длительных приложений?
- 13. Является ли C# подходящим языком для разработки Chatterbot, который включает в себя обработку естественного языка?
- 14. Является ли Java подходящим языком/платформой для разработки приложения для учета на основе графического интерфейса?
- 15. Является ли F # подходящим для приложений физики?
- 16. Является ли R2RML подходящим для таблиц EAV?
- 17. Является ли Haskell подходящим для квантовых вычислений?
- 18. Является ли rrdtool подходящим для анализа данных?
- 19. Является ли Django подходящим для простых webapps?
- 20. Является ли SQLite подходящим для форума?
- 21. Является ли LLVM подходящим для параллельных языков?
- 22. Является ли cakephp подходящим для корпоративного применения?
- 23. Является ли MapReduce подходящим для агрегации данных?
- 24. Является ли arduino подходящим для высокочастотного применения?
- 25. Является ли IoC подходящим для вычислительного механизма?
- 26. Является ли PriorityQueue подходящим для этого случая?
- 27. Является ли Umbraco подходящим для приложения LOB?
- 28. Является ли Pand DataFrame подходящим для этого?
- 29. Является ли Doc2Vec подходящим для анализа настроений?
- 30. Является ли XPath подходящим для формата HTML5?
Что вы планировали использовать для своей инфраструктуры пользовательского интерфейса на C++? – CommonsWare
Есть ли причина, по которой C++ не подходит для разработки Android? –
Связано: http://stackoverflow.com/q/13773686/10077 –