Q1: Да. У нас есть один там.
Q2:
- Необходимо создать слой JNI (подробнее
код для поддержки)
- Необходимо поддерживать код c / c ++ в дополнение к Java (нет проблем, если вы
люди разбираются в обоих)
- Больше шансов для FC из-за манипулирования указателем в коде c / c ++
(происходит с группами, которые имеют
опыт работы на Java, но не так много
в с / с ++ - реальный опыт) * 1010 *
- Чуть более сложный процесс сборки (необходимо настроить
среда для создания родного
код, например Cygwin, собрать оба ARM v5
и v7, упакуйте их). НДК имеет
хорошие шаблоны для этого, хотя.
- Используйте опыт C / C ++ в своей команде. Освоение Java (язык - синтаксис) не представляет особой проблемы. Понимание тонкостей JRE и структуры занимает больше времени. См. Последний абзац ниже.
Вы не спрашивали, но здесь мы идем: большое преимущество наличия нативного кода - это возможность использовать одну и ту же кодовую базу на разных платформах (например, iOS и Android).
Наконец, спорно преимущество: больше возможностей для оптимизации / C ++ кода родного C, чем код Java, в зависимости от вашей команды фона. Пожалуйста, не обращайте на это внимания. Это основано на опыте или нашем приложении. У нас есть опытные люди на C / C ++, которые могут точно настроить использование памяти (например, сэкономить на распределении памяти) и быстро написать код на C / C ++. Насколько я знаю, опытная команда Java может написать такое же быстрое приложение.