Android版本:Android 13
增加一个app分为三个部分:
一、编写代码
二、编译
三、测试效果
下面详细介绍各个部分。
一、编写代码
1. 在 SD-HQX4.5.5.0/lagvm/LINUX/android/vendor/xxxxxx/hardware/interfaces/ 下新增一个文件夹,例如hello_app
2. 在hello_app下,新建app代码文件,例如hello.c
#include <stdio.h>
/***********主程序***********/
int main(int argc, char* argv[])
{
printf("Hello Android!\n");
return 0;
}
3. 在hello_app下,新建Android.bp文件,内容如下:
cc_binary {
name: "hello",
proprietary: true,
relative_install_path: "hw",
cflags: ["-DTARGET_ANDROID", "-DDEBUG", "-Wno-error=date-time"],
product_variables: {
debuggable: {
cflags: [
"-DTARGET_BUILD_USERDEBUG",
],
cppflags: [
"-DTARGET_BUILD_USERDEBUG",
],
},
eng: {
cflags: [
"-DTARGET_BUILD_USERDEBUG",
],
cppflags: [
"-DTARGET_BUILD_USERDEBUG",
],
},
},
include_dirs: [
],
srcs: [
"hello.c",
],
shared_libs: [
],
vendor:true,
}
二、编译
1. cd SD-HQX4.5.5.0/lagvm/LINUX/android
2. source build/envsetup.sh
3. lunch (根据实际情况选择)
4. make xxxxx (xxxxx是Android.bp中name的值)
三、测试效果
这一步可以使用烧写的方式更新固件,也可以只把第二步编译出来的可执行文件push到设备中测试,烧写的方式不需要特殊说明,以下介绍push可执行文件到设备的方式:
1. adb root (获取root权限)
2. adb remount (重新挂载分区,为了能够push文件)
3. adb push out/target/product/msmnile_gvmq/vendor/bin/hw/hello /data
(out/target/product/xxxxxxxx/vendor/bin/hw/hello是编译出来的可执行文件;/data是设备的一个目录,把可执行文件hello push到/data目录;也可以把/data换成其他目录,只要可以push文件,可以执行app即可)
4. adb shell (登录设备)
5. su
6. cd /data
7. chmod 777 ./hello
8. ./hello (执行hello,看效果)
参考文章:【Android】Android.bp实例之编译可执行程序_android.bp将py文件编译成bin文件-CSDN博客