• JNI
  • "Hello, World!" in JNI
  • Types in <jni.h>
  • Primitive types
  • Reference types
  • Array types
  • The jvalue union
  • Field/method signatures
  • JavaVM
  • JNIEnv
  • Threads and JNIEnv
  • Trade-off: creating threads from managed code or native code?
  • C/C++ JNIEnv syntax differences
  • Finding native methods
  • Finding native methods by naming convention
  • Finding native methods via RegisterNatives
  • TODO
  • General tips
  • Using jclass, jmethodID, and jfieldID
  • Local and global references
  • UTF-8 and UTF-16 strings
  • Primitive arrays
  • Array region calls
  • Exceptions
  • Extended checking
  • Native libraries
  • 64-bit considerations
  • Unsupported features/backwards compatibility
  • FAQ: Why do I get UnsatisfiedLinkError?
  • FAQ: Why didn't FindClass find my class?
  • FAQ: How do I share raw data with native code?