微信号:jszj2014215

介绍:主要分享移动互联网的相关产品和资讯,关注你将学习到更多,在互联网的当下你会赚更多的钱...

ndk调用实战

2014-03-25 21:03 Android技术之家

一、Application.mk的作用:

Application.mk描述了应用程序需要哪些动态库和静态库。

注意的是如果你的C++代码中出现了很多C++特有的库,例如<iostream>,<list>等,那么你还需要在jni的文件夹下添加一个Application.mk文件,文件内容为:

APP_STL:= stlport_static

APP_STL:= gnustl_static

 

二、Android.mk

//System.loadLibrary("TestNdkActivity");java关联so文件

LOCAL_MODULE:= TestNdkActivity

//要编译的c文件

LOCAL_SRC_FILES:= testndk.c

需要注意的是NDK只对.c.cpp的后缀的文件识别,当然还有.h文件了,其他的就不大认识

三、生成so文件

切换到c文件所在目录  执行ndk-build 会自动生成.so文件

 

四、生成头文件(.h,生成后不可以编辑,否则报错)

Cmd命令   不在activitySystem.loadLibrary("TestNdkActivity")   切换到项目的classes目录下,然后 javah -d {jni目录} (包名+要编译的ndk文件名)刷新项目在jni目录下  可以看到“包名.h”文件

   activitySystem.loadLibrary("TestNdkActivity")切换到项目的classes目录下,然后 javah-bootclasspath {自己sdk目录下的android.jar} -d {jni目录(包名+要编译的ndk文件名)  刷新项目在jni目录下  可以看到“包名.h”文件

 

五、生成jni目录

右键->AndroidTools->add native support...

会在生成jni目录及他的子文件mk文件和c/c++文件


欢迎关注微信公众账号:“Android技术之家”或者jszj2014215
QQ群:195026919 参与讨论

 
Android技术之家 更多文章 自动展开标题通知栏,兼容各个版本,欢饮大家关注,并参与讨论。 minSdkVersion、targetSdkVersion、targetApiLevel的区别 4 行代码实现 Android 快速文件下载 为什么程序员总是写糟糕的代码?这3个原因 程序中减少使用if语句的方法集锦
猜您喜欢 为什么要学习julia这门语言? Android启动过程深入解析 C#中的Infinity有个小坑 环境云,免费数据提供平台 你和女神距离是多少呢?请访问美团技术团队博客 9 月速报