今天换台电脑,上面什么都没,只好又整理了一遍ndk的东西,记下来吧,免得下次又去找。
首先准备下环境,
eclipse和sdk装好后,去google网站下ndk,解压。设置PATH变量,将eclipse的window-》Preference-》Android-》NDK设置成正确路径。
然后测试环境,把ndk中的sample:hellojni导入eclipse,右键添加native support. that’s all。
下面来看下常用的Android.mk和Application.mk中的参数含义:
Android.mk中
LOCAL_CFLAGS :选一些编译器的标志,比如下面的说明我们要用到OPENGL了
LOCAL_CFLAGS += -DUSE_OPENGL_RENDERER
LOCAL_LDFLAGS: 告诉链接哪些系统的动态库,比如下面就是要告诉系统要用到打log的函数
LOCAL_LDFLAGS += -llog
LOCAL_C_INCLUDES: 头文件所在的目录
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_SRC_FILES: 要编译进去的源文件列表
LOCAL_SRC_FILES := aaa.c \
bbb/b.c
LOCAL_SHARED_LIBRARIES :要用到的动态库
LOCAL_SHARED_LIBRARIES := libcutils \
liblog
LOCAL_LDLIBS : 要用到的链接库,一般是系统自带的库
LOCAL_LDLIBS += -lpthread
(LDLIBS和LDFLAGS的区别在于后者可以加入我们自己的库,LOCAL_LDFLAGS += -L$(LOCAL_PATH)/lib/ -lMylib)
Application.mk中:
APP_ABI :为不同的平台构建so
APP_ABI := armeabi
APP_BUILD_SCRIPT: 据说是指定不同的Android.mk
APP_BUILD_SCRIPT := F:\aaa
然后剩下的就是正式的开发了。留待以后再说。