Chromium 81版本编译webview

1、Debug和Release版本

webview是可以编译debug和release版本的。如果只是在调试的话,一定要以默认的debug编译,因为webview的release版本,最终会把所有的动态库合成一个libwebviewchromium.so。而debug版本,则把每一个module的功能都区分成了很多个cr.so(例如libblink_core.cr.so),修改代码编译的速度就会提高。

2、关于H264的支持

默认情况下,webview编译出来就已经支持H264了,但是是硬解,如果需要软解,需要打开,也就是参数直接增加rtc_use_h264 = true,还需要修改ffmpeg的代码。暂时还没有尝试
老版本的webview不支持H264硬解的原因,只是因为一个设置项,这个设置项google 79的时候才发现已经可以了,故而去掉了。在android_webview/browser/aw_settings.cc 下
#if BUILDFLAG(ENABLE_WEBRTC)
// WebRTC hardware decoding is not supported, internal bug 15075307
cl->AppendSwitch(switches::kDisableWebRtcHWDecoding);
#endif
直接把BUILDFLG 删掉就好了,改成
cl->AppendSwitch(switches::kDisableWebRtcHWDecoding);

3、使用android官方readme里的参数,存在一个问题

会提示一个output file > 4G的问题。需要增加一个参数:
symbol_level=1
所有的:
target_os = “android”
target_cpu = “arm”
proprietary_codecs = true
ffmpeg_branding = “Chrome”
is_debug = false
is_official_build = true
use_official_google_api_keys = false
exclude_unwind_tables = true
is_component_build=false
enable_resource_whitelist_generation=true
enable_remoting=true
symbol_level=1

4、如何下载代码和编译

可以参考官方文档:
https://chromium.googlesource.com/chromium/src/+/master/docs/android_build_instructions.md

首先下载dev_tools工具
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
然后配置环境变量

export PATH="$PATH:/path/to/depot_tools"

创建chromium代码下载目录

mkdir ~/chromium && cd ~/chromium

下载基础代码

fetch --nohooks android

此时如果要切换分支,请预先切换,cd到src目录,使用git切换需要的分支。
然后再同步依赖库,同样cd到src目录:

gclient sync

在同步一些系统的依赖库:

build/install-build-deps-android.sh

以上的所有的操作都要科学上网,注意。
实际上还需要执行一个,但是gclient sync应该首次就做完了

gclient runhooks。

万事具备,可以编译了。首先创建gn参数,详见:
https://www.chromium.org/developers/gn-build-configuration
当然我们这边gn的参数如下。

gn gen --args='target_os="android" target_cpu="arm" proprietary_codecs=true  ffmpeg_branding="Chrome" is_debug=false is_official_build=true is_chrome_branded=false  use_official_google_api_keys=false exclude_unwind_tables=true enable_resource_whitelist_generation=true enable_remoting=true symbol_level=1' out/Default

debug编译的时候去掉is_debug=false is_official_build=true use_official_google_api_keys=false即可
然后就可以启动编译了。
autoninja -C out/Default system_webview_apk
生成的apk文件就在out/Default/apks下。具体调试可以参见:
https://chromium.googlesource.com/chromium/src/+/master/docs/android_debugging_instructions.md
webview的官方调试见
https://www.chromium.org/developers/how-tos/build-instructions-android-webview

你可能感兴趣的:(Chromium 81版本编译webview)