facebookincubator / Fbjni
Licence: apache-2.0
A library designed to simplify the usage of the Java Native Interface
Stars: ✭ 104
fbjni
The Facebook JNI helpers library is designed to simplify usage of the Java Native Interface. The helpers were implemented to ease the integration of cross-platform mobile code on Android, but there are no Android specifics in the design. It can be used with any Java VM that supports JNI.
struct JMyClass : JavaClass<JMyClass> {
static constexpr auto kJavaDescriptor = "Lcom/example/MyClass;";
// Automatic inference of Java method descriptors.
static std::string concatenate(
alias_ref<JClass> clazz,
// Automatic conversion to std::string.
std::string prefix) {
// Call methods easily.
static const auto getSuffix = clazz->getStaticMethod<JString()>("getSuffix");
// Manage JNI references automatically.
local_ref<JString> jstr = getSuffix(clazz);
// Automatic exception translation between Java and C++ (both ways).
// No need to check exception state after each call.
result += jstr->toStdString();
// Automatic conversion from std::string.
return result;
}
};
Documentation
- Why use a JNI wrapper?
- Set up your Android build with fbjni
- Quick reference to most features (great for copy/pasting!)
- Internal documentation for maintainers
License
fbjni is Apache-2 licensed, as found in the LICENSE file.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].