从Android 4.4开始,系统的WebView组件就采用了Chromium/Blink引擎。Chromium的代码及其庞大,理解起来也有些难度。借助于gdb调试,通过跟踪代码的运行,打印调用堆栈,有助于理解代码的执行流程。另外libchromiumwebview.so的编译链接及其耗时间,所以那种打log的方式除非不得已,还是要尽量少用。虽然Chromium for Android以及Chromium桌面版都采用了多进程模型,但Chromium WebView却是采用的单进程模型,所以调试上简单了很多。
下面以Android 5.1为例,调试脚本如下:
#!/bin/bash
# check env setup first
if [ ! "$ANDROID_BUILD_TOP" ]; then
echo "please source build/envsetup.sh to set env var first!"
exit
fi
GDBSERVER_LOG=temp.log
BROWSER_PACKAGE_NAME=

本文介绍了如何在Android 5.1上调试Chromium WebView的C++代码,利用gdb进行过程跟踪和堆栈打印,以理解代码执行流程。由于Chromium WebView采用单进程模型,调试相对简单。在调试前需要设置Android源码的环境变量,调试时可能遇到的中断错误也有解决方法。
最低0.47元/天 解锁文章

1万+

被折叠的 条评论
为什么被折叠?



