Android NDK 第一个例子 HelloNDK
Android NDK 里面Samples里面有很多例子。我这里是第一个例子,从C++层返回一个String到Java层。然后显示在Android TextView上面。
我们新建一个Android工程,默认新建工程是没有jni文件夹的,我们自己新建一个(虾米,这东西有什么用? TT:这文件夹就是用来放NDK编译相关文件的)。
在jni文件里面,一定需要一个Android.mk文件,名字不能改成其它。
这其实就是Linux中的Makefile文件,里面写的就是编译源文件的规则。
Android.mk:
package com.example.ndkdemos;import android.os.Bundle;import android.app.Activity;import android.util.Log;import android.view.Menu;import android.widget.TextView;public class MainActivity extends Activity {private TextView textView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView=(TextView)findViewById(R.id.textView1);textView.setText(HelloNDK());}public native String HelloNDK();@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}static{System.loadLibrary("HelloNDK");}}要点:
1. public native String HelloNDK(); 这里注册了函数,用native表示这个函数在C++中实现。
2. 一定要记得加载动态链接库啊,而且只要填上名字就可以了,不要加上“.so”!
static
{
System.loadLibrary("HelloNDK");
}
好了,完毕!