HarmonyOS 鸿蒙Next Chromium框架开发指导

HarmonyOS 鸿蒙Next Chromium框架开发指导

一、引言

1.1 欢迎使用Chromium

欢迎您关注并使用HarmonyOS Chromium!Chromium是一个开源浏览器项目,旨在为所有用户构建更安全、更快、更稳定的网络体验。它是 Google Chrome及其他许多浏览器(如Microsoft Edge、Opera)的基础。Chromium对HarmonyOS平台进行了适配,可助力开发者在HarmonyOS上更高效、更稳定地构建应用。

1.2 本篇文档目的

本文档旨在向开发者清晰地传达以下关键信息:

  1. Chromium在HarmonyOS上的支持状态。
  2. 提供快速上手和深入使用Chromium的开发指导。
  3. 建议在使用Chromium开发前,仔细阅读本文档。

二、支持声明

2.1 支持确认

Chromium框架已获得HarmonyOS生态合作伙伴的支持,当前Chromium框架HarmonyOS版本已开源,欢迎访问 [Chromium 分支 ] 进行使用,对应分支为pc_chromium_132,仓库配置说明可参考 [OH 官方文档 ] 进行学习。

2.2 开箱即用

开发者现在可以在HarmonyOS 5.0上放心地集成和使用Chromium HarmonyOS版本进行项目开发。该框架已深度适配平台环境,并在HarmonyOS 5.0环境中经过严格测试与验证,确保核心功能的稳定运行和兼容性。

2.3 持续维护和演进

Chromium HarmonyOS版本已于2025年6月在OH社区上正式开源,后续更新计划正在规划中,我们将持续投入资源对Chroimum HarmonyOS版本进行维护、升级和优化,及时修复问题,并根据平台发展和开发者反馈引入新特性,确保其长期的生命力和竞争力。

2.4 推荐使用

Chromium作为开源的浏览器内核项目,不仅支撑了Google Chrome、Microsoft Edge等主流浏览器,其模块化设计和强大的底层能力也使其成为开发特定类型桌面应用、嵌入式系统和工具的理想选择。以下场景推荐使用Chromium进行开发:

  • 开发一个全新的浏览器(或浏览器变体)。
  • 构建高度定制化、安全关键型的嵌入式或信息亭(Kiosk)系统。

直接使用纯Chromium源码开发是一个非常特殊且高门槛的选择,通常只适用于极少数特定场景。对于绝大多数应用开发,建议优先考虑基于成熟框架(如Electron、CEF等)。

2.5 编译环境

操作系统:Ubuntu 22.04
磁盘空间:大于100G
内存:大于32G
CPU架构:x86_64

三、Chromium开发指导

3.1 Repo配置

运行如下脚本,下载并安装Gitee Repo工具,点击可查看 [Gitee 帮助中心 ]。

mkdir -p ~/bin 
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo 
chmod a+x ~/bin/repo 
export PATH=~/bin/:$PATH 
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

运行后无报错,即表明安装成功。

3.2 代码拉取

repo init -u https://gitcode.com/openharmony-tpc/manifest.git -b pc_chromium_132 -m chromium.xml --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

个别大文件因为已不存在无法拉取,但必要文件已拉取,不影响后续构建。

3.3 内核代码构建

Chromium依赖安装(首次构建),执行构建脚本,构建chrome_main_web。

sudo ./src/build/install-build-deps.sh --no-chromeos-fonts  
build.sh -t chrome_main_web

执行上述命令后,若无问题,则会开始进行构建。

3.4 HAP工程验证

3.4.1 拷贝目录

./src/ohos/app/ohos_hap目录拷贝到本地。

3.4.2 拷贝动态库

./src/out/musl_64目录下的libadapter.solibchrome_main_web.so,以及./src/ohos_sdk/openharmony/native/llvm/lib/aarch64-linux-ohos目录下libc++_shared.so动态库拷贝到本地hap工程./chromium/libs/arm64-v8a目录下。

3.4.3 拷贝资源文件

./src/out/musl_64目录下resources.pakchrome_100_percent.pakchrome_200_percent.pakicudtl.datsnapshot_blob.binv8_context_snapshot.binlocales拷贝到本地hap工程./web_engine/src/main/resources/resfile目录下。

3.4.4 签名与权限配置

  1. 可以选择自动签名或手动签名方式,点击此处跳转 [配置调试签名 ]。
  2. 权限配置文件位置:ohos_hap\web_engine\src\main\module.json5文件中requestPermissions字段,以下是当前声明的权限及说明,若需要了解更多信息,参考 [应用权限列表 ]。
权限名 权限说明 必要性
ohos.permission.SYSTEM_FLOAT_WINDOW 允许应用使用全局悬浮窗的能力。 按需申请
ohos.permission.INTERNET 允许使用 Internet 网络。 基础权限
ohos.permission.GET_NETWORK_INFO 允许应用获取数据网络信息。 基础权限
ohos.permission.ACCESS_CERT_MANAGER 允许应用进行查询证书及私有凭据等操作。 按需申请
ohos.permission.RUNNING_LOCK 允许应用获取运行锁,保证应用在后台的持续运行 基础权限
ohos.permission.PRINT 允许应用获取打印框架的能力。 按需申请
ohos.permission.PREPARE_APP_TERMINATE 允许应用关闭前执行自定义的预关闭动作。 基础权限
ohos.permission.ACCESS_BIOMETRIC 允许应用使用生物特征识别能力进行身份认证。 按需申请
ohos.permission.FILE_ACCESS_PERSIST 允许应用支持持久化访问文件 Uri。 基础权限
ohos.permission.PRIVACY_WINDOW 允许应用将窗口设置为隐私窗口,禁止截屏录屏。 按需申请
ohos.permission.WINDOW_TOPMOST 允许窗口置顶。 按需申请
ohos.permission.READ_PASTEBOARD 允许应用读取剪贴板。 基础权限
ohos.permission.READ_WRITE_DOWNLOAD_DIRECTORY 允许应用访问公共目录下 Download 目录及子目录,建议与 ohos.permission.FILE_ACCESS_PERSIST 同时申请。 按需申请
ohos.permission.READ_WRITE_DOCUMENTS_DIRECTORY 允许应用访问公共目录下 Documents 目录及子目录,建议与 ohos.permission.FILE_ACCESS_PERSIST 同时申请。 按需申请
ohos.permission.READ_WRITE_DESKTOP_DIRECTORY 允许应用访问公共目录下 Desktop 目录及子目录,建议与 ohos.permission.FILE_ACCESS_PERSIST 同时申请。 按需申请
ohos.permission.LOCATION 允许应用获取设备位置信息。 按需申请
ohos.permission.APPROXIMATELY_LOCATION 允许应用获取设备模糊位置信息。 按需申请
ohos.permission.LOCATION_IN_BACKGROUND 允许应用在后台运行时获取设备位置信息。 按需申请
ohos.permission.MICROPHONE 允许应用使用麦克风。 按需申请
ohos.permission.CAMERA 允许应用使用相机。 按需申请
ohos.permission.ACCESS_BLUETOOTH 允许应用接入蓝牙并使用蓝牙能力,例如配对、连接外围设备等。 按需申请
ohos.permission.CUSTOM_SCREEN_CAPTURE 允许应用截取屏幕内容。 按需申请

点击查看权限:[申请应用权限 ],权限申请邮件内容示例如下:请根据实际需要的授权申请权限,示例内容仅供参考。

3.4.5 构建HAP包

依次点击DevEco Studio菜单【Build】-【Build Hap(s)/App(s)】-【Build Hap(s)】完成HAP包构建,输出路径在./chromium/build/default/outputs/default目录下。签名包为chromium-default-signed.hap,未签名包为chromium-default-unsigned.hap。

3.5 HAP工程运行

3.5.1 hdc工具安装

DevEco Studio中自带hdc,将其配置到环境变量中即可使用,目录为DevEcoStudio\sdk\default\openharmony\toolchains

3.5.2 hdc安装签名包

在完成上述操作后,即可通过hdc命令安装签名包chromium-default-signed.hap进行验证测试,需要在运行DevEco Studio的系统上打开终端命令行,执行以下命令。

安装

hdc install chromium-default-signed.hap

启动应用

hdc shell aa start -a EntryAbility -b com.huawei.ohos_chromium

停止应用

hdc shell aa force-stop com.huawei.ohos_chromium

卸载

hdc uninstall com.huawei.ohos_chromium

看到AppMod finish即表示安装成功,可以开始运行。

四、坚盾模式特别说明

4.1 坚盾守护模式

坚盾守护模式是为高安全需求用户设计的系统级安全防护方案。该模式通过实施严格的功能限制,显著增强系统安全性,有效防范针对远程攻击面的各类威胁。在坚盾安全模式下,系统增加了功能限制,需要开发者评估应用在坚盾模式下的可用性。

4.2 启用坚盾守护模式

要启用坚盾守护模式,请按以下路径操作:

  • 进入电脑系统设置。
  • 选择"隐私和安全"选项。
  • 点击"坚盾守护模式"并开启。

4.3 坚盾守护模式下的功能限制

为降低应用受攻击风险,坚盾守护模式将实施以下关键安全限制:

  • 全面禁用即时编译(JIT)功能,包括已获取 ACL 权限的应用程序。
  • 暂停 WebAssembly 支持(当前版本中 WebAssembly 依赖 JIT 功能实现)。

4.4 应用兼容性评估指南

在坚盾守护模式下运行应用程序时,建议进行以下兼容性检查:

JavaScript 性能评估

  • 测试应用在限制环境中的运行效率。
  • 优化可能存在的性能瓶颈。

WebAssembly 兼容性检查

  • 静态代码分析:检查项目中的 WebAssembly 相关API调用,与第三方库的 Wasm 依赖情况。
  • 运行时验证:在坚盾守护模式下执行全功能测试。

参考文档:[查询设备安全模式 ]、[C/C++]、[JSVM-API 坚盾守护模式 ]、[坚盾守护模式 ]、[坚盾守护模式 ]。


更多关于HarmonyOS 鸿蒙Next Chromium框架开发指导的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

鸿蒙Next的Chromium框架开发基于ArkUI框架,主要使用TS/JS语言。开发者需通过鸿蒙SDK中的Web组件实现浏览器功能,支持Chromium内核渲染。关键开发步骤:

  1. 配置Web组件加载网页;
  2. 使用WebController管理页面行为;
  3. 通过WebCookieManager处理cookie。

鸿蒙Next的Chromium版本为定制分支,需调用@ohos.web.webview提供的API,不支持直接使用Chromium原生接口。网页调试可使用DevTools,需在config.json中开启调试权限。

更多关于HarmonyOS 鸿蒙Next Chromium框架开发指导的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


根据HarmonyOS Next的Chromium框架开发指导文档,以下是关键要点总结:

环境准备:

  • 需要Ubuntu 22.04系统,建议配置32GB内存和100GB磁盘空间
  • 通过repo工具拉取pc_chromium_132分支代码

构建流程:

HAP工程集成:

  • 需要拷贝动态库到libs/arm64-v8a目录
  • 资源文件需放置到resources/resfile目录
  • 注意配置必要的权限声明

调试部署:

  • 使用hdc工具安装签名HAP包
  • 可通过aa start命令启动应用

安全注意事项:

  • 坚盾模式下会禁用JIT和WebAssembly
  • 需要评估应用在安全模式下的兼容性

建议开发者严格按照文档中的步骤操作,特别注意权限配置和资源文件的正确放置。

回到顶部