Witam, mam pytanie piszę projekt w środowisku Android. Jednakże mam już gotowe biblioteki napisane w C/C++. Czy jest jakaś możliwość ich wywołania z JAVY ??
Tak, istnieje taka możliwość. Służy do tego pakiet NDK. Metody wywołuje się za pomocą JNI.
Ok tylko nie bardzo JNI chce działać z SDK, nie widzi on bibliotek androidowych i tu jest główny problem.
Masz kilka opcji:
-
użycie NDK: http://developer.android.com/tools/sdk/ndk/index.html
-
kompilacja: c4droid (Google Play)
-
konwersja do Java: http://nestedvm.ibex.org/
-
użyć jakiegoś middleware:
-
konwersja do JavaScript
http://www.webpronews.com/easily-port-c-to-html5javascript-with-emscripten-2012-04
http://divineprogrammer.blogspot.com/2009/11/javascript-rhino-on-android.html -
wywołanie zdalne
Co to za biblioteki? może jest już jakiś ekwiwalent pod andka, w przeciwnym razie bez JNI i NDK się nie obejdzie
To nasze prywatne biblioteki to sterowania urządzenie. Więc raczej jakieś alternatywne rozwiązanie w andku cza było by pisać od nowa.
Mam jeszcze pytanie. Czy ktoś ma duże doświadczenie w pracy z servicami Androida. Być może opcją jest napisanie servicu który jakoś wymieniał by dane między c++ a java.
Witam, udało mi się uruchomić blibliotekę dll z javy za pomocą JNI, niestety androidowy Dalvik nie widzi mi biblioteki *.so
Mam pytanie czy jest możliwość podania dalvikowi ścieżki gdzie znajduje się biblioteka *.so ??
Za pomocą ldd
sprawdź czy masz wszystkie potrzebne zależności, a następnie zrób jakiś program w C, który by odpalał jakąkolwiek funkcję z tej *.so. Wszystko oczywiście na docelowej maszynie i OSie. Jak to przejdzie to wtedy zabierz się za JNI.