1 下载windwos android ndk r7,解压后即可使用。
r7和以前的版本不一样.之前的版本要用到cygwin,并配置环境,r7后,google已经把cygwin集成到ndk里面了.我们只需要运行ndk-build.cmd就行了
2 下载eclips的C插件CDT,选择自己用的版本安装
3 配合eclips使用
新建Android项目,在项目根目录下建一目录名为jni。把C文件放在里面,编写对应的Android.mk。
右键项目properties->builders->new->Program
locatioin 只要配置ndk-build.cmd的路径,Working Directory选择当前的项目
把refresh的refresh resources upon completion选上
把build options 的During auto builds 和specify working set of relevant resources选上
在specify resources把jni文件夹勾上就可以了.这样勾是告诉builder,这个设置只编译这文件夹的文件即可.然后ok保存 就回在控制台出现编译的信息
4 如果本机安装了cygwin,可能会出现编译出错问题,这时,可以把cygwin的安装目录名重命名就可以了。
Android.mk 介绍
1、LOCAL_PATH := $(call my-dir)
一个Android.mk file首先必须定义好LOCAL_PATH变量。它用于在开发树中查找源文件。在这个例子中,宏函数’my-dir’, 由编译系统提供,用于返回当前路径(即包含Android.mk file文件的目录)。
2、include $( CLEAR_VARS)
CLEAR_VARS 由编译系统提供,指定让GNU MAKEFILE为你清除许多LOCAL_XXX变量(例如 LOCAL_MODULE, LOCAL_SRC_FILES, LOCAL_STATIC_LIBRARIES, 等等...),除LOCAL_PATH 。这是必要的,因为所有的编译控制文件都在同一个GNU MAKE执行环境中,所有的变量都是全局的。
3、LOCAL_MODULE := HcSyncml
LOCAL_MODULE变量必须定义,以标识你在Android.mk文件中描述的每个模块。名称必须是唯一的,而且不包 含任何空格。注意编译系统会自动产生合适的前缀和后缀,换句话说,一个被命名为'HcSyncml'的共享库模块,将会生成'libHcSyncml.so'文件。
4、LOCAL_C_INCLUDES := $(LOCAL_PATH)/extra_inc$(LOCAL_PATH)/main_inc
LOCAL_C_INCLUDES 中加入所需要包含的头文件路径
5、LOCAL_SRC_FILES
LOCAL_SRC_FILES中加入源文件路径(需要编译的文件),多个文件用 ‘\’ 隔开
6、LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib –llog
表示需要链接Log库