Xamarin 怎么调用java的 so文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xamarin 怎么调用java的 so文件相关的知识,希望对你有一定的参考价值。

1 、编写java代码
package net.lu;
public class HelloJNI
static
System.loadLibrary("HelloJNI");

public native static int get();
public native static void set(int i);
public static void main(String[] args)
HelloJNI test = new HelloJNI();
test.set(10);
System.out.println(test.get());


2、在HelloJNI.java文件所在目录下编译.java文件。

javac HelloJNI.java

3、生成.h头文件,需要注意的是,要在src目录层生成文件
... src] # javah -jni net.lu.HelloJNI
4、编写.c 文件
#include "net_wangliping_HelloJNI.h"
int i = 0;
JNIEXPORT jint JNICALL Java_net_wangliping_HelloJNI_get(JNIEnv *env, jclass jc)

return i;

JNIEXPORT void JNICALL Java_net_wangliping_HelloJNI_set(JNIEnv *env, jclass jc, jint j)

i = 2*j;

5、生成.so文件
[root@turbolinux src]# gcc -I/usr/java/jdk1.5.0_13/include/linux -I/usr/java/jdk1.5.0_13/include -fPIC -shared -o libHelloJNI.so HelloJNI.c
6、eclipse 调用SO文件

最简单的方式,调用 System.out.println(System.getProperty("java.library.path"));
得到/usr/java/jdk1.5.0_13/jre/lib/i386,将SO文件放在该目录下
运行java程序,输出了由C语言函数计算出的结果
参考技术A 1 、编写java代码
package net.lu;
public class HelloJNI
static
System.loadLibrary("HelloJNI");

public native static int get();
public native static void set(int i);
public static void main(String[] args)
HelloJNI test = new HelloJNI();
test.set(10);
System.out.println(test.get());


2、在HelloJNI.java文件所在目录下编译.java文件。

javac HelloJNI.java

3、生成.h头文件,需要注意的是,要在src目录层生成文件
... src] # javah -jni net.lu.HelloJNI
4、编写.c 文件
#include "net_wangliping_HelloJNI.h"
int i = 0;
JNIEXPORT jint JNICALL Java_net_wangliping_HelloJNI_get(JNIEnv *env, jclass jc)

return i;

JNIEXPORT void JNICALL Java_net_wangliping_HelloJNI_set(JNIEnv *env, jclass jc, jint j)

i = 2*j;

5、生成.so文件
[root@turbolinux src]# gcc -I/usr/java/jdk1.5.0_13/include/linux -I/usr/java/jdk1.5.0_13/include -fPIC -shared -o libHelloJNI.so HelloJNI.c
6、eclipse 调用SO文件

最简单的方式,调用 System.out.println(System.getProperty("java.library.path"));
得到/usr/java/jdk1.5.0_13/jre/lib/i386,将SO文件放在该目录下
运行java程序,输出了由C语言函数计算出的结果

我们是怎么调用android sdk里的库的,android的API有哪些?怎么分类?

android的API都有哪些,怎么分类?

参考技术A android sdk版本设置在2个地方 1. 文件project.properties t中arget=android-10
2. 文件AndroidManifest.xml中<uses-sdk android:minSdkVersion="10"></uses-sdk>
android 的API : http://developer.android.com/reference/java/io/DataInput.html

以上是关于Xamarin 怎么调用java的 so文件的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin Android - 找不到.so文件

Android怎么调用第三方SO动态链接库

android中怎么手动调用.so库中的游戏,

java 调用so文件

JNI之Java调用so文件

android中怎么调用第三方的so动态库啊~在线等...