一、下载NDK
1. 打开Android Studio,选择Tools->Android->SDK Manager。
2. 选择SDK tools选项卡。
3. 选中LLDB,CMake,以及NDK。
4. 选中Apply,在下一个页面点击OK。
5. 下载完成之后,点击finish,然后点击OK。
二、创建包含C/C++的项目
创建支持native代码的项目和创建普通项目的步骤基本一致,只是会多一些步骤:
1. 在Configure your new project,选中Include c++ support选项。
2. 一路点击Next。
3. 在Customize C++ Support页面,有以下选项可以选择:
- C++ standard:使用标准c++。
- Exceptions Support:选中这个选项以支持C++异常处理。
- Runtime Type Information Support:选中这个选项将支持RTTI。
项目创建完成之后,打开project面板,注意和普通的项目相比,多了cpp和External Build Files两个目录。
所有的C++头文件,源代码文件都在cpp目录下;而External Build Files放置的是编译脚本文件。
三、Hello源代码简单分析
首先,在MainActivity.java中,
static { System.loadLibrary("native-lib"); }此方法用来加载native 库。
有native方法的声明,
public native String stringFromJNI();打开native-lib.cpp,可以找到 stringFromJNI方法在native层的实现:
extern "C" JNIEXPORT jstring JNICALL Java_org_hunter_hellojni_MainActivity_stringFromJNI( JNIEnv *env, jobject /* this */) { std::string hello = "Hello from C++"; return env->NewStringUTF(hello.c_str()); }函数返回一个 jstring。