您的位置:首页 > 移动开发 > Android开发

AndroidStudio NDK , VisualStudio NDK

2016-02-16 17:56 531 查看
个人感觉在AndroidStudio中开发NDK有点麻烦,不如在VS中开发高效简单,

可以参考《VS+VA搭建顺手的NDK集成开发环境》,后面转了这篇文章,同时添加了一些新的高效方法;

不过目前VS2015支持Android,IOS库开发,如果为了更加的方便,可以用VS2015,开发NDK,还默认包含了上述的方法;后面讲解;

JNI dir;

NDK

jni.srcDirs = []

jniLibs.srcDirs =['src/main/libs']

mk
1:

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),然后创建函数实现;

非常高效方便;

[b]新添加:如果还想执行别的命令或程序或bat文件,可以在调试->命令:中输入文件路径,执行就可以了;

[/b]

当然,用简单优化一下上述命令行路径,添加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工程基本上一样了;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: