Android系统源码external添加新模块
在linux系统安装配置好C语言等编译工具后,可以轻松地写个C语言小程序验证某种功能,那如何在Android系统中编译C语言或者静态库呢?不严格地说,Android系统也可以看作是linux系统,那应该也能和linux系统一样,可以简单地编译C语言。事实上,是可以的。那如何Android系统源码external添加新模块、在android系统中运行呢?接下来以一个小例子说明。
一、写一个HelloWorld
-- test
|-- Android.mk
`-- helloworld.c
1. 在Android源码external路径下创建一个文件夹,例如test,
cd external
mkdir test
2. 写个HelloWord
#include<stdio.h> | " Press <F1> to display hel
|
int main(void) |- helloworld.c (/home/rick/am
{ ||- function
printf("Hello world...\n"); ||| main
return 0; |
| ~
}
3.编写Android.mk
LOCAL_PATH:= $(call my-dir) | " Press <F1> to display hel
include $(CLEAR_VARS) |
LOCAL_MODULE_TAGS := optional |- Android.mk (/home/rick/amlo
LOCAL_MODULE := test ||- macro
LOCAL_SRC_FILES := $(call all-subdir-c-files) ||| LOCAL_PATH
include $(BUILD_EXECUTABLE)
二、编译
1.配置编译环境
在Android源码根路径执行source build/envsetup.sh,然后执行lunch,根据实际硬件选择编译选项,再到external/test下执行mm
source build/envsetup.sh
lunch
7
cd external/test
mm
编译成功的前提是源码整包编译过,部分编译mm的时间不会太长,编译结果所在路径会在打印中提示,即out/target/product/xxx/system/bin/test
三、验证
adb push 方式或者串口方式将可执行文件下载到目标板子,执行./test
console:/ # cd vendor/
console:/vendor # ./test
Hello world...
四、修改Android.mk,编译a文件或so文件
具体步骤参考下面第二个链接,生成路径如下:
out/target/product/xxx/obj/STATIC_LIBRARIES/hello_intermediates/hello.a
out/target/product/xxx/obj/lib/hello.so
参考链接:

本文详细介绍了在Android系统源码external目录下添加并编译C语言模块的具体步骤,包括创建文件夹、编写HelloWorld示例、配置Android.mk、执行编译命令及验证编译结果。此外,还提供了编译静态库和共享库的方法。
849

被折叠的 条评论
为什么被折叠?



