JNI编程入门

JNI(Java Native Interface)是Java平台的一部分,它允许Java代码与其他语言写的代码进行交互。下面是创建第一个JNI程序的基本步骤:

  1. 编写Java类:首先,你需要创建一个Java类,并声明native方法。Native方法是Java中调用非Java代码的接口。

  2. 生成JNI头文件:使用javac命令编译Java类,然后使用javah命令从编译后的.class文件生成C/C++的头文件。

  3. 实现本地方法:在C/C++文件中实现JNI头文件中声明的native方法。你需要包含必要的JNI头文件,并实现函数签名以匹配Java中的native方法。

  4. 编译和链接:使用C/C++编译器编译你的本地方法实现,生成动态链接库(如.dll或.so文件)。

  5. 运行Java程序:在Java程序中加载并调用你的动态链接库中的本地方法。确保在运行时JVM能找到这个库文件。

以上就是JNI编程的基本流程。通过JNI,Java可以调用其他语言编写的库和代码,从而扩展其功能。

rar
JNITest.rar 预估大小:81个文件
folder
sdfaf 文件夹
folder
bin 文件夹
file
classes.dex 2.1MB
folder
res 文件夹
folder
crunch 文件夹
folder
drawable-hdpi 文件夹
file
ic_launcher.png 6KB
folder
drawable-xhdpi 文件夹
file
ic_launcher.png 9KB
folder
drawable-xxhdpi 文件夹
file
ic_launcher.png 17KB
folder
drawable-mdpi 文件夹
file
ic_launcher.png 3KB
file
sdfaf.apk 1.14MB
file
jarlist.cache 120B
file
R.txt 62KB
folder
dexedLibs 文件夹
file
android-support-v4-a5f7de5b4505fbfdcbf66bfe897c11bb.jar 461KB
file
android-support-v7-appcompat-c670e6f59a70500f9b7fcdf3e9fb2ddb.jar 237KB
file
appcompat_v7-ebd0e3276c23f4ec5b32063b77527bfa.jar 166B
folder
classes 文件夹
folder
android 文件夹
folder
support 文件夹
folder
v7 文件夹
folder
appcompat 文件夹
file
R$layout.class 2KB
file
R$bool.class 872B
file
R$id.class 4KB
file
R$drawable.class 4KB
file
R$dimen.class 5KB
file
R$attr.class 9KB
file
R.class 1015B
file
R$styleable.class 19KB
file
R$string.class 1KB
file
R$integer.class 657B
file
R$color.class 4KB
file
R$anim.class 813B
file
R$style.class 19KB
folder
com 文件夹
folder
example 文件夹
folder
sdfaf 文件夹
file
MainActivity.class 970B
file
BuildConfig.class 343B
file
R$layout.class 2KB
file
R$bool.class 839B
file
R$id.class 4KB
file
R$drawable.class 4KB
file
R$dimen.class 5KB
file
R$attr.class 9KB
file
R$menu.class 385B
file
R.class 906B
file
R$styleable.class 19KB
file
R$string.class 2KB
file
R$integer.class 624B
file
R$color.class 4KB
file
R$anim.class 780B
file
R$style.class 19KB
file
testj.class 341B
file
com_example_sdfaf_testj.h 670B
file
resources.ap_ 447KB
file
AndroidManifest.xml 859B
folder
res 文件夹
folder
drawable-ldpi 文件夹
folder
values-v11 文件夹
file
styles.xml 331B
folder
menu 文件夹
file
main.xml 420B
folder
values-v14 文件夹
file
styles.xml 388B
folder
drawable-hdpi 文件夹
file
ic_launcher.png 7KB
folder
drawable-xhdpi 文件夹
file
ic_launcher.png 12KB
folder
drawable-xxhdpi 文件夹
file
ic_launcher.png 24KB
folder
values 文件夹
file
strings.xml 222B
file
styles.xml 699B
file
dimens.xml 220B
folder
drawable-mdpi 文件夹
file
ic_launcher.png 4KB
folder
layout 文件夹
file
activity_main.xml 683B
folder
values-w820dp 文件夹
file
dimens.xml 381B
file
proguard-project.txt 781B
folder
obj 文件夹
folder
local 文件夹
folder
armeabi 文件夹
file
libsdfaf.so 56KB
folder
objs 文件夹
folder
sdfaf 文件夹
file
sdfaf2.o 24KB
file
sdfaf2.o.d 789B
file
sdfaf.o.d 3KB
file
sdfaf.o 53KB
file
libstdc++.a 8B
file
ic_launcher-web.png 50KB
folder
assets 文件夹
folder
gen 文件夹
folder
android 文件夹
folder
support 文件夹
folder
v7 文件夹
folder
appcompat 文件夹
file
R.java 83KB
folder
com 文件夹
folder
example 文件夹
folder
sdfaf 文件夹
file
BuildConfig.java 159B
file
R.java 418KB
folder
jni 文件夹
file
Android.mk 178B
file
com_example_sdfaf_testj.h 678B
file
sdfaf.cpp 102B
file
sdfaf2.c 801B
folder
.settings 文件夹
file
org.eclipse.cdt.codan.core.prefs 11KB
folder
src 文件夹
folder
com 文件夹
folder
example 文件夹
folder
sdfaf 文件夹
file
testj.java 145B
file
MainActivity.java 683B
file
.project 1KB
file
.cproject 4KB
file
.classpath 475B
file
project.properties 607B
file
AndroidManifest.xml 859B
folder
libs 文件夹
folder
armeabi 文件夹
file
libsdfaf.so 13KB
file
android-support-v4.jar 1.36MB
...
rar 文件大小:3.8MB