
记录一次x86 OH6.0 ArkWebCore编译过程 原创
开局一张图:
记录一次x86 OH6.0 arkweb编译过程-鸿蒙开发者社区
从官方web_webview仓库中可以看出OpenHarmony官方没有提供x86架构的arkweb,x86还是用的arm64的,对于如此的糊弄我只能说什么呢,自己动手吧。
ArkWebCore的编译说明在下面这个仓库
https://gitcode.com/openharmony-tpc/chromium_src
1、下载代码与编译
我们首先下载编译所需的代码
repo init -u https://gitcode.com/openharmony-tpc/manifest -b 132_trunk_6.0-Release -m developer.xml --no-repo-verify
repo sync -c -j32
repo forall -c 'git lfs pull'
直接执行编译,不需要执行./prebuilts_download.sh
./build_arkweb.sh -t w -A x86_64
2、编译出现的错误与解决办法
中途如果出现缺软件包的情况,可以用apt-file search 头文件的方式找到对应软件包并安装,笔者这里因为安装时间过于久远已经忘记需要额外安装那些软件包了,这里需要开发者自行解决。
问题1:找不到llvm-config.h
通过在项目的文件中查找,发现是存在的,最终定位是在gn中,因为我们编译的x86架构,头文件没有加入配置,笔者这里是把if判断进行了注释去除
问题2:SUBZERO_TARGET重定义
通过查找字符串,把x64分支下的定义的内容进行注释去除
问题3:打包时找不到NODE_HOME
笔者这里是通过查看OpenHarmony6.0Release系统编译中的hap包编译配置进行定位,系统hap包能正常编译,直接利用就好了,这里打开applications/standard/dlp_manager下的local.properties文件,我们需要复制nodejs.dir的内容
在控制台中执行如下命令:
export NODE_HOME=/home/diemit/ohos_60/prebuilts/build-tools/common/nodejs/node-v16.20.2-linux-x64
export PATH=$NODE_HOME/bin:$PATH
解决上述问题后,编译正常结束
3、hap包签名
编译完成后脚本并没有自动执行签名操作,这时我们还需要执行如下命令进行hap包签名
./sign.sh x86_64
签名完成后我们通过日志信息查找-outFile找到最终的hap包。
4、验证ArkWebCore
笔者这里是用的是自己适配的x86 qemu虚拟机进行验证。
hdc tconn 127.0.0.1:55555
hdc app install .\NWeb-x86_64.hap
安装正常,说明签名正确
打开备忘录,没有闪退,显示正常,说明ArkWebCore已经正常运行,备忘录是通过调用ArkWebCore进行显示的,原先没有适配x86的webcore会闪退,到此x86的ArkWebCore编译调试完成。
x86的真机与qemu适配,可以查看我创建的【OHOS Porting Communities-开源鸿蒙系统移植社区(OPC)】
