История изменений
Исправление waker, (текущая версия) :
1) C++ код для NDK будет скомпилирован в машинные инструкции конкретного камня.
не совсем. в инструкции конкретных ABI, которые ты сам выбираешь в Application.mk. например:
APP_ABI := armeabi armeabi-v7a mips x86
весь код при таком конфиге скомпилируется под 4 разных набора инструкций.
2) Если C++ компилируется в JVM-код, то нафига бы тогда был нужен C++?
он компилируется в нативный код, а не в JVM. а еще dalvik/arts != JVM.
3) Мобильных процессоров много, значит приложение должно содержать 50 вариантов машинного кода для одного и того же C++ кода для 50 разных камней, на которых твоё приложение потенциально могут запустить.
см [1]
3.1) Среда разработки NDK содержит 50 компиляторов под 50 камней и рожает 50 сборок твоего кода под все камни, на которые нацелена твоя разработка.
она содержит тулчейны для кросскомпиляции под поддерживаемые ABI, о которых см. [1]. (их больше чем 4, но не 50)
4) Обычно C++ применяют для реализации каких-то .so-шек, реализующих тяжёлые вычисления
обычно - это где? ndk используют чтобы выполнять нативщину на ведроиде. любую.
а само приложение проще написать на Java.
кому как. мне не проще. я как раз щас пишу проект под андроид целиком в нативе, включая гуй (ессно, дергаю Canvas/... через JNI).
Оттуда C++-код подключается как java-модули и используется путём создания экземпляров классов определённого типа, только эти классы написаны на C++ и лежат в .so-шках.
да.
5) Целиком приложения на C++ писать смысла мало и никто не пишет void main(...) под NDK.
можно и так сделать при желании. например, если использовать SDL - можно игру целиком на сях кодить, и не трогать жабу.
Исходная версия waker, :
1) C++ код для NDK будет скомпилирован в машинные инструкции конкретного камня.
не совсем. в инструкции конкретных ABI, которые ты сам выбираешь в Application.mk. например:
APP_ABI := armeabi armeabi-v7a mips x86
весь код при таком конфиге скомпилируется под 4 разных набора инструкций.
2) Если C++ компилируется в JVM-код, то нафига бы тогда был нужен C++?
он компилируется в нативный код, а не в JVM. а еще dalvik/arts != JVM.
3) Мобильных процессоров много, значит приложение должно содержать 50 вариантов машинного кода для одного и того же C++ кода для 50 разных камней, на которых твоё приложение потенциально могут запустить.
см [1]
3.1) Среда разработки NDK содержит 50 компиляторов под 50 камней и рожает 50 сборок твоего кода под все камни, на которые нацелена твоя разработка.
она содержит тулчейны для кросскомпиляции под поддерживаемые ABI, о которых см. [1]. (их больше чем 4, но не 50)
4) Обычно C++ применяют для реализации каких-то .so-шек, реализующих тяжёлые вычисления
обычно - это где? ndk используют чтобы выполнять нативщину на ведроиде. любую.
а само приложение проще написать на Java.
кому как. мне не проще. я как раз щас пишу проект под андроид целиком в нативе, включая гуй (ессно, дергаю Canvas/... через JNI).
Оттуда C++-код подключается как java-модули и используется путём создания экземпляров классов определённого типа, только эти классы написаны на C++ и лежат в .so-шках.
да.
5) Целиком приложения на C++ писать смысла мало и никто не пишет void main(...) под NDK.
можно и так сделать при желании. например, если использовать SDL - можно игру целиком на сях кодить, и не трогать жабу.