个人感觉在AndroidStudio中开发NDK有点麻烦,不如在VS中开发高效简单,
可以参考《VS+VA搭建顺手的NDK集成开发环境》,后面转了这篇文章,同时添加了一些新的高效方法;
不过目前VS2015支持Android,IOS库开发,如果为了更加的方便,可以用VS2015,开发NDK,还默认包含了上述的方法;后面讲解;
JNI dir;
NDK
jni.srcDirs = []
jniLibs.srcDirs =['src/main/libs']
LOCAL_PATH:= $(call my-dir) # include $(CLEAR_VARS) LOCAL_MODULE := hello LOCAL_SRC_FILES := F:\hello\jni\libhello.so LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/tools/include include $(PREBUILT_SHARED_LIBRARY) # include $(CLEAR_VARS) LOCAL_MODULE := hello-jni LOCAL_CFLAGS := -std=c++11 -fexceptions LOCAL_LDLIBS := -llog LOCAL_SHARED_LIBRARIES := libhello LOCAL_SRC_FILES := mainactivity.cpp include $(BUILD_SHARED_LIBRARY)
2:
#APP_PLATFORM := android-9 APP_ABI := armeabi-v7a #APP_STL := stlport_static APP_STL := gnustl_shared APP_GNUSTL_FORCE_CPP_FEATURES := exceptions rtti
4:ndk-build.cmd
cd .. ndk-build
5: javah.cmd ,main dir execute;
javah -d jni -classpath D:\android_sdk\platforms\android-22\android.jar;D:\android_sdk\extras\android\support\v4\android-support-v4.jar;D:\android_sdk\extras\android\support\v7\appcompat\libs\android-support-v7-appcompat.jar;..\..\build\intermediates\classes\debug com.example.administrator.myapplication.MainActivity
《VS+VA搭建顺手的NDK集成开发环境》
工欲善其事,必先利其器。
VS+VA有高效的提示,而且VS的IDE非常好用;如果没有特殊要求,通常的代码编写,个人建议用这个方法;
Android NDK开发环境,可选择VIM+插件、Eclipse+CDT等,这里介绍另一种选择:VS+VA
软件准备:
Visual studio 2008 // 其他版本也行,这里以VS2008为例。
Visual assist X
Android NDK
环境变量:
将NDK根目录加入%PATH%环境变量。
打开VS2008,新建Makefile项目 (中文版:生成文件项目)
在项目向导中填写以下内容
Build command line: ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk
Clean commands: ndk-build clean NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk
Rebuild command line: ndk-build -B NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk
Include search path: E:\Android\android-ndk-r9d\platforms\android-12\arch-arm\usr\include // 对应到你本机的目录及版本。
点击完成。
这些设置可以在工程属性中修改;Debug、Release可以分别设置。
写代码测试一下
试试编译、清理、重新编译有无问题。
搞定,开始愉快的写代码吧。
新添加:通过javah命令行生成JNI的.h头文件后,可以通过VC助手,右键创建cpp文件(Create File),然后创建函数实现;
非常高效方便;
新添加:如果还想执行别的命令或程序或bat文件,可以在调试->命令:中输入文件路径,执行就可以了;
当然,用简单优化一下上述命令行路径,添加jni文件夹到工程目录,然后添加文件到目录, 包括mk文件,这样也就可以比人直接命令行编译了;
因为NDK的编译文件必须咋jni文件夹中;
当然,如果不想这么修改,给别代码的时候,需要将工程下的代码,复制到jni文件夹中才可以ndk-build编译;
VS2015 NDK 开发:
vs2015的安装,一定要安装想的VS2015中的NDK包,里面包含了微软的一些mk文件,我们可以参考,写我们的mk文件;
其中Android的sdk如果自己有,可以不用安装,在tools-》Options-》Cross Platform -》C++:这个页面中配置;
在VS2015中开发Android的NDK有几种方法;
方法一:
上面讲解的手动配置VS2010的NDK开发,但是在VS2015中,只需要直接生成相关工程就可以有上面的配置了;
New Project -》Templates -》 Visual C++ -》Windows -》Cross Platform -》Makefile Project(Android);
这样就生成了Android的可以通过mk文件编译NDK的工程;
我们可以将NDK中的例子的JNI文件夹直接复制到新建的工程目录下编译就可以了;
为了方便,可以将相关文件直接添加到工程中,方便查看编写;
自己建立的jni目录中没有mk文件,vs2015会调用 ProgramData\Microsoft\AndroidNDK\android-ndk-r10e\build\core 中的mk文件,编译默认名为lib.a的库文件;
看了上述描述,是不是很方便!
方法二:
直接选择 Dynamic Shared Library(Android),或者 Static Library(Android),软后添加自己的h文件和cpp文件就可以编译相关的Android 的 NDK库了;
这个方法不需要mk文件,VS内部已经根据相关配置编译了,相当于有mk配置编译文件了;
这个方法中编写NDK就和编写一般的vc工程基本上一样了;