android studio 2.x ndk开发一

在Android studio 2.x以前,ndk开发对于Android studio来说是非常不友好的,没有代码提示,写c/c++代码效率非常低下,很多人还是使用Eclipse去进行ndk开发,我这里就默认你会使用Eclipse开发ndk了,这里介绍的是如何使用Android studio来快速导入到你的工程的,即原先你是使用Eclipse来开发ndk的。这里以一个opencv的简单例子来说明。


1.下载opencv的Android源码

https://opencv.org/opencv-3-3.html,我这里使用的是现在最新的版本


2.新建Android studio项目,注意不用勾选支持c++的选项

在工程目录下创建jni目录和libs目录,如图:


把刚才下好的opencv源码中sdk目录下的native文件夹全部copy到你刚才创建的jni目录下



创建Android.mk和Application.mk文件。

Android.mk:

LOCAL_PATH:=$(call my-dir)

include $(CLEAR_VARS)
OpenCV_INSTALL_MODULES := on
OpenCV_CAMERA_MODULES := off
OPENCV_LIB_TYPE :=STATIC

ifeq ("$(wildcard $(OPENCV_MK_PATH))","")   #加入opencv的mk配置,这样就不用你去自己写opencv的配置了
include $(LOCAL_PATH)/native/jni/OpenCV.mk
else
include $(OPENCV_MK_PATH)
endif
LOCAL_MODULE := OpenCV                   
LOCAL_SRC_FILES := NDKUtils.cpp
LOCAL_LDLIBS +=  -lm -llog
include $(BUILD_SHARED_LIBRARY)
Application.mk:

APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_PLATFORM := android-26
APP_ABI :=all

接下来就是添加jni的调用了,这里我就不进行说明了,这方面的博客很多,相信Android开发(非初学者)都看的懂,后面我会把我的代码共享出来。我这个demo实现的是图片的灰度处理,是用c/c++的数组方式去进行矩阵变化的,当然了你也完全可以通过java的数组方式去处理矩阵,道理都是一样的。


如果你配置了Android ndk的环境变量,在工程下进入到jni目录下,运行ndk-build,c/c++代码就开始编译了,编译生成的动态链接库在刚创建的libs文件夹下


如果你未配置Android ndk的环境变量,这里告诉你另外一种编译的方式,通过Android studio添加External Tools,我这里已经添加了了两个工具






这样你点击上面图片中ndk-build后,工程就开始编译了。

后面的效果就不多说了。


源码地址:http://download.csdn.net/download/jxgzycxyxhp/10103483


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智行码上说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值