第二个JNI程式, 读写filesystem 中的文件。
还是采用4层的结构:
1. Application
2. Framework(Java)
3. JNI(C/C++)
4. Stub(C/C++)
先构思 Framework层需要用到的函数,函数的参数,返回值(Java),根据定义的 native 函数生成 .h 文件。
cat xx.java
public final class xxromservice
{
...
//app_write_xx is for application called
public String app_write_xx(int item, String buf, int size)
{
...
write_xx(item, buf, size);
}
//app_read_xx is for application called
public String app_read_xx(int item, String buf, int size)
{
...
read_xx(item, buf, size);
}
/* declare all of the native interface */
private static native int write_xx(int item, String buf, int size);
private static native String read_xx(int item, String buf, int size);
}
然后使用 javah 根据 .java 文件生成对应的 .h 文件。
javac -classpath android-sdk-linux_86/platforms/android-8/android.jar com/exxx/xx.java
javah com/exxx/xx
之后就会生成com_exxx_xx.h 的头文件了。这个 .h 文件就是给 jni 层的c 文件使用的。
同样,做 jar 包则用以下命令:
jar cvf xxromservice.jar com/
这样就可以生成 jar 文件了。在 eclipse 导入进来就可以了。
阅读(1471) | 评论(0) | 转发(0) |