Да, вам придется перекомпилировать все нативные библиотеки специально для Android. Да, вам нужен исходный код для всех сторонних собственных библиотек, которые вы планируете использовать просто потому, что обычно, когда мы компилируем и связываем эти библиотеки за пределами Android, они связаны с glibc, но, к сожалению, Android не использует glibc из-за проблем с лицензией и производительностью. Android использует разбавленную версию glibc под названием libc . Он имеет соответствующие имена символов для glibc для большинства обычных функций. Но, насколько я знаю, libc не имеет какой-либо функциональности, связанной со строками, и определенно не имеет поддержки posix. Если ваши нативные библиотеки используют какую-либо устаревшую функциональность, вам придется найти обходной путь для них, используя альтернативную функциональность, поддерживаемую libc, и соответствующим образом кодируя свои библиотеки.
Кроме того, как вы правильно заметили, вам придется использовать NDK для взаимодействия Java (Android app / fwk) с собственным миром (C ++).
Хотя по моему опыту это звучит довольно просто, компиляция нативных библиотек на Android (портирование Android) традиционно занимала много времени без какой-либо гарантии успеха.