gpt4 book ai didi

android-ndk - 如何在 AOSP 树下调试构建特定模块?

转载 作者:行者123 更新时间:2023-12-02 03:38:55 25 4
gpt4 key购买 nike

我构建了 AOSP 树的 eng 风格并安装在设备上。我喜欢单步执行模块的代码(比如 libinput.so)。我想用作为 CFLAGS 的一部分传递的“-O0 -g”来构建这个模块。但是我不想更改此模块的 Android.mk 文件。

假设此模块位于 aosppath/frameworks/base/service/input。
我在采购 build/envsetup.sh 后进入这个文件夹。

我试过“mm -B LOCAL_STRIP_MODULE=false”。当我单步执行 eclipse gdb 时,我看到执行顺序呈锯齿状。
然后我尝试了“mm -B LOCAL_STRIP_MODULE=false LOCAL_CFLAGS="-O0 -g""
现在 gdb 可以顺利通过了。但这在其他项目中似乎不起作用。我有一个使用 skia 和 opengl 的模块。当我在命令行上传递 LOCAL_CFLAGS 时,构建失败。

在 AOSP 树下制作特定 .so 或 exe 的调试风格的建议方法是什么?

谢谢

最佳答案

因此,由于您不想更改 Android.mk 的主要原因是您不必 checkin 它,这里的替代方法是使用 .repo/local_manifests 文件夹来更改模块归你所有。

这是一个示例 my_manifest.xml 文件,它可以为您执行此操作:

<manifest>
<remote name="origin"
fetch="ssh://git@github.com/YourRepoHere/" />

<remove-project name="platform/frameworks/base"/>
<project path="frameworks/base" remote="origin" name="frameworks-base" revision="your-branch-name"/>

</manifest>

这将从 android list 树中删除 frameworks/base,并将其替换为您自己的 list 树(您需要将其 fork 到您自己的存储库中)。

之后,您可以像这样在 Android.mk 文件中使用条件:

ifeq ($(TARGET_BUILD_VARIANT),userdebug)
CONDITIONAL_CHANGES_HERE
endif

同样,我意识到您不想修改 Android.mk 文件,但由于您还询问了制作以构建变体为条件的模块的建议方法,我将无论如何将这个答案包含在万一没有更好的事情发生。这确实是做您想做的事情的建议方法,因为您的项目现在将由 repo 工具维护。

关于android-ndk - 如何在 AOSP 树下调试构建特定模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21447675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com