关于android ndk的jni总结

开发工具支持

主要要点如下,更详细的应该参考官方文档:

  1. 需要下载android ndk,并设置ANDROID_NDK_HOME并设置PATH, 在eclipse中顺便也设置一下。
  2. eclipse支持android ndk开发,只需要在项目中右键添加Android Tools > Add Native Support即可。

配置文件

主要配置文件有2个: Android.mk,Application.mk,详细配置还是应该阅读官方文档。下面说一下常用配置。

Application.mk

详细配置参考https://developer.android.com/intl/zh-cn/ndk/guides/application_mk.html

Android.mk

详细配置参考https://developer.android.com/intl/zh-cn/ndk/guides/android_mk.html
这个配置是可以一次性生成多个so文档的,只需要区分不同的LOCAL_MODULE、LOCAL_SRC_FILES即可。

发现ndk好像默认不支持c/c++混编,所以最好统一成cpp后缀。又或者是我不清楚实际是可以的

  • LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -lz -llog -landroid 依赖的库,这个例子表示依赖zlib、android log模块及android运行库
  • LOCAL_MODULE := protect 生成的模块名
  • LOCAL_SRC_FILES := NativeApplication.cpp NativeHelper.cpp arcfour.cpp MultiDex.cpp 就是把so需要的相关源文件列出来

jni编程

剩下的内容和Android都没特别关系了,都是java jni的知识。
对于android中jni的各种限制,可以参考官方文档: http://developer.android.com/intl/zh-cn/training/articles/perf-jni.html

生成native方法的头文件

和普通java的没区别,用javah就可以了,就是需要在classpath中添加android的jar即可。举例:

cd native
javah -cp ./bin/classes;D:\05programs\Android\android-windows\platforms\android-19\android.jar -d ./jni com.huawei.g3.proxy.NativeApplication

默认生成的方法名是有特殊命名规则的(具体规则请自行查阅资料),如果需要不同名字,可以在JNI_OnLoad

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值