在Android源码中编译自各儿的模块

在Android源码中编译自己的模块

在进行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 HelloWorld就在out\target\product\generic\system\bin生产了可执行的目标码,如果mekefile中指定为生产共享库,在生产的so文件在out\target\product\generic\system\lib文件夹下