Я слышал, что если я разрабатываю Android-игру без использования NDK, производительность значительно ниже. Это правда?Требуется ли NDK для хорошей производительности при разработке Android-игры?
ответ
Я вижу 3 основных причины для использования NDK:
- вы хотите использовать C/C++ код базы (например, игровой движок написано на C++, кроссплатформенная игра)
- получить больше памяти (вы можете использовать много больше памяти через NDK)
- ваша игра очень интенсивна и требует всей мощности вашего устройства.
Во всех остальных случаях вы можете выбрать все, что захотите. SDK/Java позволяет использовать OpenGL так же, как NDK, поэтому ваша графика не будет замедляться. Вы должны быть осторожны с GC, чтобы получить гладкий геймплей. Если ваша игра очень интенсивна, вы можете написать некоторые методы на C++ и вызвать их через JNI. Кстати, у Dalvik есть JIT, поэтому код Java может быть таким же быстрым (даже быстрее, иногда), как код C.
Спасибо за ваш ответ! – user1788012
Нет, вам не нужно использовать НКА, если вы не хотите, чтобы сделать супер-реалистичные 3D-игры, такими как Real Racing 3, если это игра с простой графикой или не так много времени критических вещей Java нормально
Нет, Это просто не соответствует действительности.
Это очень зависит от того, что делает ваша конкретная игра. Существенный вопрос: - ваша игра будет интенсивной в CPU (или потребует больших объемов памяти).
- Если это не так, придерживайтесь SDK.
- Если вы не знаете, потому что вы еще не писали много игр в прошлом, обязательно используйте SDK.
- Даже в этом случае оказывается частью игры, которая может работать с дополнительной вычислительной мощностью, вы всегда можете извлечь эти части в собственный код во время разработки по мере необходимости.
Одна из причин выбора NDK над SDK имеет огромный фон на C++, что может сделать вас более продуктивным в этой среде. Однако, учитывая текущее состояние наборов инструментов (удобная отладка, время сборки, легкий доступ к библиотекам SDK и т. Д.), Это редко бывает эффективным.
По иронии судьбы есть еще одна причина придерживаться NDK: портативный код на разных платформах. Однако даже это может быть достигнуто (каким-то образом) с помощью HTML5 и Javascript. –
- 1. Счетчики производительности при разработке сервера
- 2. Странная ошибка при разработке Android NDK
- 3. Поддержание хорошей производительности прокрутки при использовании AVPlayer
- 4. NDK против производительности JAVA
- 5. Ошибка при разработке приложения для Android с использованием ndk
- 6. Требуется ли обработка рекурсии специальной обработки при разработке компилятора?
- 7. тестирование производительности с использованием аутентификации при разработке
- 8. Является ли хорошей практикой использовать кнопки для изображений при разработке приложений для iOS?
- 9. Преодоление задач в разработке для повышения производительности
- 10. Удивление о хорошей производительности рекурсии в Python
- 11. Оценка производительности при разработке приложения ASP.NET на WebServices
- 12. Являются ли «группирующие типы» хорошей идеей при разработке API-интерфейсов GraphQL?
- 13. Как обрабатывать большие объемы данных для достижения хорошей производительности?
- 14. Slick confused about numThreads и лучшая практика для хорошей производительности
- 15. Требуется помощь в разработке базы данных
- 16. Ошибка: требуется регистрация при сборке libunwind в android ndk
- 17. Требуется помощь по разработке Java EE
- 18. Прозрачный холст [2D Context] в HTML5, необходимый для хорошей производительности?
- 19. Является ли это хорошей практикой для векторизации?
- 20. Обход штурмовой линии при разработке
- 21. Требуется ли подписание для надстроек VSTO?
- 22. Отключить MAX_WRITE_OPERATIONS_PER_HOUR при разработке
- 23. Требуется сравнение производительности AsyncQueryHandler vs CursorLoader Android
- 24. Должен ли я настраивать WP8-пользователей при разработке нового приложения?
- 25. Стоит ли рассматривать Windows Vista при разработке для Windows XP?
- 26. Нужно ли использовать макеты при разработке игр на Android?
- 27. Настройка ssl при разработке
- 28. Является ли Android-студия хорошей для новичков?
- 29. Является ли Microsoft BizSpark хорошей для стартапов?
- 30. Является ли RESTKit хорошей заменой для ASIHTTPRequest?
Разработчик Android [сообщение в блоге] (http://android-developers.blogspot.co.uk/2010/06/game-development-for-android-quick.html) с 2010 года дает [Остров Replica] (http : //replicaisland.net/) в качестве примера хорошо написанной Java-игры. – Chilledrat