有些需要準備的地方,ndk環境,ndk源碼一份,cygwin要裝好,配好profile。java要配好環境變量。
1.首先新建一個工程,建個類對調用native的方法進行聲明。
public class CallNative {
public CallNative() {
}
static {//導入的lib名去掉前面的lib
System.loadLibrary("skytech");
}
public native byte[] readCmd(String path);
public native int writeCmd(byte[] cmd, String path);
}
2.build下項目,打開cmd,cd到該工程bin目錄下,
D:\>cd D:\android\rayn\TestJni\bin
D:\android\rayn\TestJni\bin>javah -jni com.stay.jni.CallNative
然後在bin目錄下會出現一個.h文件這是聲明的頭文件
3.我們要的是裏面聲明的方法,把我們要寫的c文件改成相同的方法名就可以了。(我做了一件非常挫的事,把實現寫到.h文件裏了,一直拿.h文件去編譯。。= =)
4.在工程裏建個jni目錄,將改好的c文件和mk文件(隨便copy一個,改下路徑和lib名就好啦)copy進去
5.將整個工程拷貝到ndk的samples目錄裏(D:\android-ndk-r5\samples)
6.打開cygwin、配好環境。打開cygwin.bat。進行編譯。萬事ok。這樣就可以成功調用jni了。