美文网首页
Android Studio NDK环境搭建

Android Studio NDK环境搭建

作者: peterzen | 来源:发表于2016-12-29 15:48 被阅读36次

Android Studio 2.2正式发布以后,已经对C/C++有了完善的支持,可以将C和C++编译成native library,打包到APK中。Java code可以通过JNI调用native library中的API。
Android Studio默认使用CMake编译native library,不过同样也支援ndk build。

环境准备

NDK Install

NDK的安装有两种方式:

  1. 通过Android Studio来下载;
  2. 从官网下载NDK的安装包,解压到你指定的位置;然后在"Project Structrue" -> "Android NDK Location"进行配置;

CMake & LLDB Install

在 "SDK Manager"->"SDK Tools"中选中CMake 和 LLDB进行下载;

  • CMake: 外部构建工具;
  • LLDB: Android Studio上调试本地代码的工具;

创建项目

创建支持native code的项目和普通的Android Studio项目基本一致,需要注意在"Config new project"时需要选中"Include C++ Support";

其他item按照普通项目创建就可以;
项目创建好以后,可以在"Android"视图看到"cpp"和"CMakeLists.txt"为native project所增加的;

添加新的Native API

在MainActivity.java中,新增一个API;

public native String stringFromJNI_Sample_1();

选中这个API名字,等红色的灯泡图标出现后,用弹出菜单的第一项来产生对应的C/C++ prototype;

这样,在native_lib.cpp中,会产生对应的代码

JNIEXPORT jstring JNICALL
Java_com_example_zengping_jnidemo_MainActivity_stringFromJNI_1Sample_11(JNIEnv *env,
jobject instance) {
// TODO
return env->NewStringUTF(returnValue);
}

经过实际测试,这样产生的代码,在使用时,会有crash的问题,需要把"JNIEXPORT jstring JNICALL"替换为工程产生时使用的原型:

extern "C"
jstring
Java_com_example_zengping_jnidemo_MainActivity_stringFromJNI_1Sample_11(JNIEnv *env,
jobject instance) {
// TODO
return env->NewStringUTF(returnValue);
}

修改后,在java层就可以正常使用新增的API了。

相关文章

网友评论

      本文标题:Android Studio NDK环境搭建

      本文链接:https://www.haomeiwen.com/subject/clhpvttx.html