原文:Android調用jni全過程,方便以後操作。
個人記錄下調用jni全過程,省的自己忘記了。哎。
有些需要準備的地方,ndk環境,ndk源碼一份,cygwin要裝好,配好profile。java要配好環境變數。
1.首先建立一個工程,建個類對調用native的方法進行聲明。
package com.stay.jni;
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說的方法來編譯:
- Place your native sources under
<project>/jni/...
- Create
<project>/jni/Android.mk
to describe your native sources to the NDK build system
- Optional: Create
<project>/jni/Application.mk
.
- Build your native code by running the 'ndk-build' script from your project's directory. It is located in the top-level NDK directory:
cd <project><ndk>/ndk-build
The build tools copy the stripped, shared libraries needed by your application to the proper location in the application's
個人記錄下調用jni全過程,省的自己忘記了。哎。
有些需要準備的地方,ndk環境,ndk源碼一份,cygwin要裝好,配好profile。java要配好環境變數。
1.首先建立一個工程,建個類對調用native的方法進行聲明。
package com.stay.jni;
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說的方法來編譯:
- Place your native sources under
<project>/jni/...
- Create
<project>/jni/Android.mk
to describe your native sources to the NDK build system
- Optional: Create
<project>/jni/Application.mk
.
- Build your native code by running the 'ndk-build' script from your project's directory. It is located in the top-level NDK directory:
cd <project><ndk>/ndk-build
The build tools copy the stripped, shared libraries needed by your application to the proper location in the application's