环境配置
-
基础配置
Android Studio 2.2.3
gradle:2.2.3
-
下载NDK
Setting
--Appearance&Behavior
--System Setting
--Android SDK
--SDK tool
,选中CMake
、NDK
和LLDB
,然后点击Apply
,AS就会自动下载这两个工具了。现在貌似没有墙这个,我下载的时候没开VPN也很快下载下来了。
CMake
:Write once ,run everywhere
NDK
:不用说,开发基础
LLDB
:调试器,可以用来调试我们的JNI代码。
-
正式开发
-
新建项目,注意要添加
C++ support
:
新建项目.png
-
项目目录说明:
cpp文件夹
:cpp文件目录,里面放c的文件,相当于Eclipse中的JNI目录
External Build Files
:CMake文件目录,里面的一个 txt是CMake脚本配置的文件
项目目录.png
-
项目代码说明(新建过程中,谷歌自动提供了一个NDK的demo):
build.gradle:
Android Studio自动配置了:
cmake配置.png
MainActivity
:
public class MainActivity extends AppCompatActivity {
// Used to load the 'native-lib' library on application startup.
static {
System.loadLibrary("native-lib");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Example of a call to a native method
TextView tv = (TextView) findViewById(R.id.sample_text);
tv.setText(stringFromJNI());
}
/**
* A native method that is implemented by the 'native-lib' native library,
* which is packaged with this application.
*/
public native String stringFromJNI();
}
native-lib-cpp
:
#include <jni.h>
#include <string>
extern "C"
jstring
Java_com_mudo_demondkinit_MainActivity_stringFromJNI(
JNIEnv *env,
jobject /* this */) {
std::string hello = "Hello from C++";
return env->NewStringUTF(hello.c_str());
}
编译运行正常。
-
自己开发:
在MainActivity
中直接写一个native
方法,快捷键Alt
+Enter
,选中第一个,会自动在native-lib.cpp
中生成一个对应的方法



因为之前build.gradle中已经配置好了,所以修改后可以直接编译运行app,没有问题。
-
结束语
CMake是Android Studio2.2以后才出来的NDK开发方式,我也还是第一次用,大家可以看看这里的CMake入门。不知道文章里是不是有什么问题,请大家多多指教。
OVER。
网友评论