Для хорошего примера интеграции C и Java, проверьте это:
https://github.com/jackpal/Android-Terminal-Emulator
Распакуйте файлы, и вы можете найти jni / termExec.cpp - который использует нормальный C API, такой как "exec ()", "fork ()" и "open (/ dev / ptmx)", для реализации эмуляции терминала ( http://linux.die.net/man/4/ptmx).
Просмотрите файл jni / Android.mk, и вы увидите, что cpp скомпилирован как библиотека - libandroidterm.
А затем java-приложение (src / jackpal / androidterm / Exec.java) загрузит библиотеку через System.loadLibrary ("androidterm").
Я думаю, что это приложение предоставляет достаточно маленький пример, чтобы вы могли расширять его любым удобным вам способом - либо cpp, либо java-файлом. (Файл cpp в основном основан на C, а не на C плюс плюс).
И запомните соответствие между ними, например, вот оно:
static JNINativeMethod method_table[]
= {
{ "createSubprocess", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[I)Ljava/io/FileDescriptor;",
(void*) android_os_Exec_createSubProcess },
{ "setPtyWindowSize", "(Ljava/io/FileDescriptor;IIII)V",
(void*) android_os_Exec_setPtyWindowSize},
{ "waitFor", "(I)I",
(void*) android_os_Exec_waitFor},
{ "close", "(Ljava/io/FileDescriptor;)V",
(void*) android_os_Exec_close} };