> 技术文档 > OpenHarmony浏览器内核arkwebUT测试编译记录_arkweb编译

OpenHarmony浏览器内核arkwebUT测试编译记录_arkweb编译


一、准备工作

硬件资源:rk3568

获取浏览器内核源码:

项目首页 - chromium_src:chromium src主仓 - GitCode

repo:

windows和linux环境下安装repo-CSDN博客

hdc测试工具:

下载地址:每日构建 | OpenHarmony CI 下载ohos-sdk-public全量包,解压选择linux版本,将hdc和libusb_shared.so文件放到/usr/bin目录下,加上执行权限 (chmod 755 hdc)

测试指令参考OpenHarmony HDC工具详解 | 华为开发者联盟

二、编译执行

根据readme执行以下步骤:

1.repo拉取源码

(下载代码:以132_trunk分支为例,要下载其他分支代码请替换-b 后带的manifest分支参数,其余详见项目)。

repo init -u https://gitcode.com/openharmony-tpc/manifest -b 132_trunk -m developer.xml --no-repo-verifyrepo sync -crepo forall -c \'git lfs pull\'

2.编译并替换so库

./build_arkweb.sh -t w -A rk3568

(可能因为系统更新的缘故,博主rk3568上的鸿蒙系统无nweb目录,所以改为替换arkwebcore目录中的so库)执行hdc命令如下

hdc shell \"mount -o remount,rw /\"hdc file send libarkweb_render.so /data/app/el1/bundle/public/com.ohos.arkwebcore/libs/armhdc file send libarkweb_engine.so /data/app/el1/bundle/public/com.ohos.arkwebcore/libs/armpausehdc shell rebootpause

3.编译二进制文件

ninja -C ./src/out/rk3568 base_unittests

4.发送至设备并进行测试

发送 : 

hdc 本地文件名 send 接收目录

执行:

hdc shell  (进入指令交互)

cd (定位到接收目录)

chmod +x 文件名 (为二进制文件增加可执行权限)

/文件名 (执行二进制文件)

hdc base_unittests send /data/app/el1/bundle/public hdc shellcd /data/app/el1/bundle/publicchmod +x base_unittests/base_unittests

三、示例测试结果

所有测试用例跑完之后会进行结果统计:

四、编译遇到的问题

1.找不到头文件

问题描述:

src/arkweb/ohos_adapter_ndk/date_time_format_adapter/date_time_format_adapter_impl.h缺少对src/third_party/ohos_ndk/includes/ohos_adapter/date_time_format_adapter.h的引用。引用路径缺失

解决办法:

补全路径,回溯4层目录,重新定位

解决流程:

按ctrl定位到问题目录,全局查找该头文件fine -name \"文件名\"

补全该头文件的路径

2. unknown type name int64

问题描述:int64_t 误写为 int64,且类内初次定义,不需重载

解决方法:

3.TEST_F误测试不存在的成员函数

问题描述:TEST_F误测试不存在的成员函数

解决方法:

注释无意义的PrivacyStatus测试用例

4. undefined symbol: OH NativevSync Create

问题描述:库文件没有被正确链接到项目中

解决方法:build.gn增加链接

进入build.gn的目录增加adapter_ndk的libs的资源(注意一定要是报错文件同层级目录下的build.gn)