西木 2012-02-23
在进行Android下的jni开始时,我们编写的有些C/C++代码需要访问android中的一些C/C++的头文件,这些头文件没有在NDK中包含,不能再NDK中直接编译。只能放入到android的源码中进行编译。编译的方法为:
1.在android的源码的development路径下创建一个文件夹,取名为screen(可以取任意的名称),然后将需要编译的C/C++文件放入这个文件夹,然后编写makefile文件Android.mk,内容大致如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_LDLIBS := -lm -llog//这一句是可选的,如果代码中使用android中的记录日志的api,就需要加上,否则不需要加上。
LOCAL_MODULE := HelloWorld
LOCAL_SRC_FILES := HelloWorld.cpp
include $(BUILD_EXECUTABLE) 此处设置为生成可执行的目标码,如果生成so共享库,则需要修改为
include $(BUILD_SHARED_LIBRARY)
2.然后在android源码的根目录下运行make screen就在out\target\product\generic\system\bin生产了可执行的目标码,如果mekefile中指定为生产共享库,在生产的so文件在out\target\product\generic\system\lib文件夹下