跳转到主要内容

使用VSCode开发AOSP Native模块

调试 Aosp Native项目

  1. aidegen vendor/agold/apps/ACamera2/agold/jni_isphal_aidl/ -s -i v拉起vscode
  2. vscode安装clangd插件,用来解析compile_commands.json(上条命令会生成)
    1. 安装完成进入clangd插件设置添加参数
--compile-commands-dir=${workspaceFolder}
--background-index
--completion-style=detailed
--header-insertion=never
--log=info

主要是第一个参数,用来指定compile_commands.json所在的位置,例如

--compile-commands-dir=/home5/develop/u0/alps/out/full_g78v78c2k_dfl_eea-userdebug/out_sys/soong/development/ide/compdb
  1. 然后重新启动vscode

FAQ

u0-vendor hal 层项目无法通过aidegen VSCode 拉起

提示错误:

There is no Java, C/C++ or Rust target

问题原因: aidegen 会读取 out/full_a101k6989_dfl_tee-userdebug/out_hal/target/product/mgvi_64_64only_armv82_a101k6989_dfl_tee/module-info.json 文件 其中 face.default 模块 json 格式要在错误,多了双引号,导致json无法加载

LOCAL_SHARED_LIBRARIES :=   "libcamera2ndk_vendor"\
        "libcamera_metadata"\
        "libmediandk"\
        "libnativewindow"\
        "libcutils"\
        "libutils"\
        "libui"\
        "libc"\
        "libdl"\
        "liblog"\
        "libm"\
        "libsensorndkbridge"\
        "libstfaceunlock"\
        "libcv_faceid"\
        "libGsFace_ca"

改为:

LOCAL_SHARED_LIBRARIES :=   libcamera2ndk_vendor \
                            libcamera_metadata \
                            libmediandk \
                            libnativewindow \
                            libcutils \
                            libutils \
                            libui \
                            libc \
                            libdl \
                            liblog \
                            libm \
                            libsensorndkbridge \
                            libstfaceunlock \
                            libcv_faceid \
                            libGsFace_c