以前根本没有接触过Android,对Android感觉老好奇了,在公司经历几天简单的不知所云的培训就被拉去进项目了——悲催!啥都不会。总算把项目熬完了结果是啥都没学到,净给自己增加压力了。今天刚好学习了下在Android下编译C模块,记录一下。
我的Android源码目录是:/home/grj/android_kernel_workspace/Android-2.3.4,以下简称:$(android_src)。helloworld太经典了,我也使用这个例子来学习一下。
1、在$(android_src)目录下,创建一个hello目录。
#mkdir $(android_src)/hello
2、在hello目录中,编写hello.c,内容如下:
#include <stdio.h>
int main()
{
printf("hello world \n ");
exit(0);
}
3、在hello目录中,编写Android.mk, 内容如 下:
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE:=helloworld
LOCAL_SRC_FILES:=hello.c
include $(BUILD_EXECUTABLE)
LOCAL_SRC_FILES指定源文件,LOCAL_MODULE指定要编译的模块名,include $(BUILD_EXECUTABLE)指定编译成可执行文件,改为BUILD_SHARED_LIBRARY为动态链接库,这些可参考$(yourAndroid)/build/core/config.mk
4、回到Android源代码顶层目录进行编译,cd $(andoird_src) && make helloworld