1、创建一个android项目(需要已添加了NDK引用)
2、添加本地支持
3、创建编译模块并指定模块名
4、创建成功会有一个jni文件夹
5、为项目添加C++头文件(右键选择项目的属性进入,选择C,CPP,单击Add)
6、添加头文件路径(勾选add to all languages,此选项的明确作用暂时没整明白,但是勾选后编译成功或出错率会降低)
7、C++头文件位置(JDK安装的文件夹下,此部分主要添加的是对Jni头文件的引用)
8、添加完成后的样子
9、添加编译器自动编译(选择New来添加新编译器)
10、选择编译器来自program
11、选择浏览文件(NDK所在文件夹)添加编译器
Locaiton:选择浏览文件添加编译器
Working Directory:选择自己所在的项目
12、选择NDK-buikder添加(添加编译器)
13、选择自己的项目
14、选择第二项配置(勾选refresh resources upon completion)
15、第四项配置勾选之前(未进行任何操作的情况)
16、勾选选项之后 (操作之后,再选择secify resources)
17、选择自己的项目
18、配置成功会出现自己的obj文件夹
19、创建JniClient用于调用本地方法
20、Android.mk文件修改(此处的模块名要与Jni编译出来的头文件名相同)
21、JniClient加载库和本地方法 (native为本地方法)
22、进入项目的classes文件夹下编译出本地方法的头文件(必须在项目的classes文件夹编译,编译的文件应该把完整的包名与类名打印出来才能成功编译,直接在类所在的文件夹下编译是不会成功的,亲测。。。。)
23、编译成功会生成对应的头文件(头文件名是可以修改的,随便改成你想要的文件名都行,但要与Android.mk文件中的模块名对应,两个要相同)
24、测试配置(不是针对Jni专用的测试,正常的Android测试都可以这么配置)
25、创建测试类
27、引用现有的C++文件(本地方法名系统自己已经帮我们生成了,这个直接从刚才生成 的头文件里拷下来就可以 ,加上内容方法就OK了;编写完的方法,如果配置自动编译成功在文件保存时程序就会自己的编译并生成 so库)
27、编写独立的Java类用于调用SO库
28、编译成功会成功对应的SO库(到此,已经成功编译~~恭喜调用文件成功~~)