1.1
1.利用Android Studio的Terminal,进入你自戚基棚己的Android工程文件的app/src/main目录,例如(D:\Users\AndroidStudio\Application\app\src\main)
在Terminal中输入命令
cd app\src\main
这样就进入到了main目录,可以使用dir命令查看当前目录有哪些高则文件
总共有三种方式生成Jni头文件
2. 在Terminal中输入命令
javah -d jni -jni -classpath ..\..\build\intermediates\classes\debug com.example.lenovo.application.JniClass
解释:
-d<dir>输出目录,后面跟上要生成的目录名
-jni 生成Jni样式的标头文件
-classpath<path>指定加载类的路径,后面跟上你要生成头文件的这个类的路径,例如:
..\..\..\build\intermediates\classes\debug(这个是类所在的路径)
com.example.lenovo.application.JniClass(类的包名)
注意,要生成.class文件,要Make Project
3.如果前面没有出错的话,就能看到jni文件和生成的头文件
其实jni目录可以不用命令生成锋宽,Android Studio已经为我们准备好了。
这样就能快速的生成jni目录了。
然后在Terminal中进入到该目录,输入命令
cd app\src\main\jni
在执行如下命令
javah -d jni -jni -classpath ..\..\build\intermediates\classes\debug com.example.lenovo.application.JniClass
这样也能生成头文件
利用Windows的cmd生成jni头文件
1.进入到你自己Android工程目录下的app\build\intermediates\classes\debug
2.然后Shift加鼠标右键,点击红色方框的内容
3.出现cmd命令行,输入如下命令
javah -jni com.example.lenovo.application.JniClass
4.会在当前目录生成*.h头文件,把它拷贝进jni目录就可以了。
jni目录可以按照上面的方法创建
至此,生成jni头文件的三种方法讲解完毕。
jNi就是java调用本地方法的技术,最简单的来说,java运行一个程序需要要和不同的系统平台打交道,在windows里就是和windows平台底层打交道,mac就是要和mac打交道,jvm就是通过大量的jni技术使得java能够在不同平台上运行。而使用了这技术的一个标志就是native,如果一个类里的一个方法被native修饰,那就说明这个方法是jni来实现的,他是通过本地系统api里的方法来实现的。当然这个本地方法可能是c或者C++,当然也可能是别的语言。jni是java跨平台的基础,jvm通过在不同系统上调用不同的本地方法使得jvm可以在不同平台间移植。当前你自己也可以用jni来写一些程序,这种基本上是你以前使用了其他语言完成了一些功山团能,但是你有要用java来重复这些功能的时候,就可以使用jni来完成了。不过带来的问题就是,如果你的那个本地方法是依托于本地 *** 作系统的话,那就意味着你的java程序也只能在这一个系统上运行了。所以jni就使得java很容易限定在了一个系统平台上,而jdk的作用在于他提供一个规范,这个规范就是包含了很多native方法,这些方液返法都是要本地 *** 作系统来实现的,而实现了这些本地方法的 *** 闹唯饥作系统就可以移植java平台了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)