我构建了AOSP树的eng风格并安装在设备上。我喜欢单步执行模块的代码(比如libinput.so)。我想构建这个模块,其中“-O0 -g”作为CFLAGS的一部分传递。但我不想更改此模块的Android.mk文件。
让我们说这个模块位于aosppath / frameworks / base / service / input 我在使用build / envsetup.sh后cd到这个文件夹。
我尝试了“ 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的调试风格的建议方法是什么?
由于
答案 0 :(得分:1)
因为你不想对Android.mk进行更改的主要原因是你不必检查它,这里的另一种选择是使用.repo / local_manifests文件夹来更改模块。由android拥有并归你所有。
以下是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清单树中删除frameworks / base,并将其替换为您自己的清单树(您需要将其分叉到您自己的存储库中)。
之后,您可以在Android.mk文件中使用条件,如下所示:
ifeq ($(TARGET_BUILD_VARIANT),userdebug)
CONDITIONAL_CHANGES_HERE
endif
再一次,我意识到你不想修改Android.mk文件,但是因为你还要求建立一个以构建变量为条件的模块的建议方法,所以无论如何我都会包含这个答案。没有什么比这更好的了。这实际上是您想要做的事情的建议方式,因为您的项目现在将由repo工具维护。