LINUX.ORG.RU

История изменений

Исправление 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 - можно игру целиком на сях кодить, и не трогать жабу.