Я установил SDK, NDK, JDK и Cygwin. Я хочу знать, нужно ли мне редактировать код библиотек, чтобы они были скомпилированы для Android (armv7).
Мне в основном нужно переносить множество приложений на C для Android, но все они зависят от сторонних библиотек, таких как PCRE, OpenSSL и т.д. Мой опыт показал мне, что PCRE компилируется без ошибок для Windows, но мы говорим об Android здесь (под управлением ядра Linux).
И мне нужно написать C-оболочку для КАЖДОЙ функции в библиотеке для соответствия соглашениям о вызове JNI?
Android NDK будет компилировать стандартный синтаксис C, но Android не имеет той же библиотеки stdlib C, что и настольные компьютеры; вместо этого у него есть своя альтернатива, называемая Bionic. Иногда, когда вы компилируете большие проекты, вы запускаете вызовы функций stdlib, которые не поддерживаются bionic, и вы должны установить небольшое обходное решение.
Иногда в популярных библиотеках есть существующие обертки JNI, иначе вы должны сделать JNI-вызов для функций, которые вызовут ваши приложения.