Есть куча логики написаной на С для десктопа. Хотелось бы ее реюзнуть. При этом глубого сакрального смысла или какой либо целесообразности в нативном коде - нету.
ndk убогое говно, я понимаю почему он так категоричен, но хорошие люди делают замену этому убожеству. Замена это crystax, и по сути больше нет возможности.
Собери через ndk-build, получишь so.
Если у тебя не будет необходимости дергать много через JNI, то по сути у тебя получится «вещь в себе» - куча логики на C и простой интерфейс на java.
Нет libc (и не говори что есть) а только фикция, нет локатей, нет ещё много чего. А со стандартным ndk я могу например питон скомпилять? НЕТ! А это значит что те вещи для которых он создавался он не годится, и с вероятностью 146% я уверен что ndk был сделан наотебись. Вот и всё.
А это значит что те вещи для которых он создавался он не годится
The NDK is a toolset that allows you to implement parts of your app using native-code languages such as C and C++. Typically, good use cases for the NDK are CPU-intensive applications such as game engines, signal processing, and physics simulation.
не благодари. Теперь ты не будешь считать, что NDK создавался для компиляния питона, и, соответственно - больше не будешь выглядеть упоротым наркоманом.
Подскажите простейший способ реюза С-кода в Андроид приложении
Скомпиляй в бинарник, а потом из жабокода создавай как процесс. Ну, чтобы совсем без NDK, можешь себе кроссдевом из генты собрать тулчейн под Android. Правда, придётся bionic вместо libc как-то привязывать. Или какой-нибудь адекватный libc статически вкомпиливать.
Хотя в этом случае, никто JNI не даёт не воспользоваться.
Как бы предложение i-rinat необычно ни звучало, но это, возможно, единственный уже реально работающий способ. Ведь если имеется ввиду «без NDK», то, наверняка и без Crystax и без cross android toolchain. Иначе спрашивали альтернативу NDK.