- 这是一个最简的aosp源码工程,主要是演示Android.bp的使用。
- 使用cc_binary命令可以把cpp代码编译为可执行文件。
- 最少需要指定可执行文件的名称和源码文件即可。
- 标准c和c++的库和头文件会自动链接和引用。
- 这相对于一个empty native project模板,可以增加代码做一些简单的aosp源码或者Android相关的测试、验证。
main.cpp文件
#include <iostream>
using namespace std;
int main() {
cout << "Hello Marvin!" << endl;
return 0;
}
Android.bp文件
cc_binary {
name: "marvin_hello",
srcs: [
"main.cpp",
],
}
创建目录、编写代码
在aosp源码目录下,创建项目的目录,例如:
$ cd aosp/external
$ mkdir -p marvin/hello
# 在hello目录下创建上述2个文件
$ tree .
.
├── Android.bp
└── main.cpp
0 directories, 2 files
编译生成可执行文件
注意:当前shell已经设置过aosp编译环境: source aosp/build/envsetup.sh
$ cd aosp/external/marvin/hellow
$ mm -j16
...
[100% 358/358] Install: out/target/product/prod_name/system/bin/marvin_hello
运行程序
$ adb push aosp/out/target/product/prod_name/system/bin/marvin_hello /system/bin
$ adb shell marvin_hello
Hello Marvin!