赞
踩
在linux系统安装配置好C语言等编译工具后,可以轻松地写个C语言小程序验证某种功能,那如何在Android系统中编译C语言或者静态库呢?不严格地说,Android系统也可以看作是linux系统,那应该也能和linux系统一样,可以简单地编译C语言。事实上,是可以的。那如何Android系统源码external添加新模块、在android系统中运行呢?接下来以一个小例子说明。
-- 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...
具体步骤参考下面第二个链接,生成路径如下:
out/target/product/xxx/obj/STATIC_LIBRARIES/hello_intermediates/hello.a
out/target/product/xxx/obj/lib/hello.so
参考链接:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。