分类: LINUX
2009-05-31 21:28:08
在以前的一篇博客中,学习了Android原生(Native)C开发之的环境搭建。
这样就可以在android中编译native c程序了。今天要学习的是如何在android的源文件中增加一个新的模块。
Android编译环境本身比较复杂,且不像普通的编译环境:只有顶层目录下才有Makefile文件,而其他的每个component都使用统一标准的Android.mk. Android.mk文件本身是比较简单的,不过它并不是我们熟悉的Makefile,而是经过了Android自身编译系统的很多处理,因此要真正理清楚其中的联系还比较复杂,不过这种方式的好处在于,编写一个新的Android.mk来给Android增加一个新的Component会比较简单。
下面通过一个小例子来说明,如何在Android 中增加一个只包含一个C程序Hello World的模块:
1. 在$(YOUR_ANDROID)/ external目录下创建hello目录,其中$(YOUR_ANDROID)指Android源代码所在的目录。
- # mkdir $(YOUR_ANDROID)/external/hello
2. 在$(YOUR_ANDROID)/external/hello/目录编写helloworld.c文件:
|
LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES:=
\ helloworld.c LOCAL_MODULE:= helloworld LOCAL_C_INCLUDES := $(KERNEL_HEADERS) LOCAL_CFLAGS := LOCAL_SHARED_LIBRARIES := libcutils include $(BUILD_EXECUTABLE) |
注意上面LOCAL_SRC_FILES用来指定源文件;,LOCAL_MODULE指定要编译的模块的名字,下一步骤编译时就要用到;include $(BUILD_EXECUTABLE)表示要编译成一个可执行文件,如果想编译成动态库则可用BUILD_SHARED_LIBRARY,这些可以在$(YOUR_ANDROID)/build/core/config.mk查到。
|
|