Chromium for Android 浏览器的编译和安装
Chromium for Android 浏览器的编译和安装
- Chromium for Android 浏览器的编译和安装
- 环境要求和配置
- Chromium for Android源码下载
- 安装 depot_tools
- 获取代码
- 转换现有的Linux检出
- 安装额外的构建依赖
- 运行钩子
- Chromium for Android源码编译
- 设置编译环境
- 编译 Chromium
- Chromium for Android安装到设备
Chromium for Android 浏览器的编译和安装
这篇文章介绍Android版本Chromium浏览器的源码下载、编译、安装的过程。
环境要求和配置
要在Linux上构建Chromium项目的Android客户端,系统需要满足以下要求:
- 硬件要求:
- 处理器:x86-64架构的机器。
- 内存:至少8GB的RAM(推荐超过16GB以获得更好的性能)。
- 存储:至少100GB的可用磁盘空间。
- 软件要求:
操作系统:大多数开发工作在Ubuntu上进行。其他Linux发行版可能也可以使用,但需要参考Linux安装说明以确保兼容性。
工具:
- Git:用于版本控制和代码管理。
- Python:用于构建脚本和其他开发工具。
- 注意事项:
在Windows或Mac上构建Android客户端是不支持的,并且无法正常工作。建议在Linux环境中进行开发和构建。
这些要求确保你的开发环境足够强大,可以处理Chromium项目的构建过程,特别是在处理Android客户端时。确保系统满足这些要求将有助于避免构建过程中的常见问题,并提高开发效率。
Chromium for Android源码下载
以下代码下载需要连接外网才能下载
安装 depot_tools
- 下载depot_tools 仓库:
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
- 将 depot_tools 添加到PATH:
假设你将 depot_tools 克隆到了 /path/to/depot_tools,可以通过以下命令将其添加到PATH(建议将这行代码添加到 ~/.bashrc 或 ~/.zshrc 中):
export PATH="$PATH:/path/to/depot_tools"
获取代码
- 创建并进入 Chromium 目录:
mkdir ~/chromium && cd ~/chromium
- 获取 Android 代码:
使用 fetch 命令获取代码:
fetch --nohooks android
如果不需要完整的仓库历史记录,可以使用 --no-history 标志来节省时间。
注意:即使在快速的网络连接下,该命令也可能需要30分钟,在较慢的连接下可能需要数小时。
- 进入 src 目录:
获取完成后,会在工作目录中创建一个隐藏的 .gclient 文件和一个名为 src 的目录。接下来的操作假定你已经切换到 src 目录:
cd src
转换现有的Linux检出
如果你已有一个Linux的检出,可以通过在 .gclient 文件中添加 target_os = [‘linux’, ‘android’] 来添加Android支持:
echo "target_os = [ 'linux', 'android' ]" >> ../.gclient
安装额外的构建依赖
检出代码后,运行以下命令以获取所有构建Linux和Android所需的依赖项:
build/install-build-deps.sh
运行钩子
在至少运行一次 install-build-deps 之后,可以运行Chromium特定的钩子,这将下载额外的二进制文件和其他可能需要的东西:
gclient runhooks
通过以上步骤,你应该能够成功设置Chromium项目的开发环境,特别是针对Android客户端的构建。确保每一步都正确执行,以避免后续构建过程中的问题。
Chromium for Android源码编译
设置编译环境
Chromium 使用 Ninja 作为其主要构建工具,并使用一个名为 GN 的工具来生成 .ninja 文件。你可以创建任意数量的构建目录,并使用不同的配置。要创建一个用于构建 Android 版 Chrome 的构建目录,请运行 gn args out/Default 并编辑文件以包含以下参数:
target_os = "android"is_debug = falsetarget_cpu = "arm64" # See "Figuring out target_cpu" below#use_remoteexec = true # Enables distributed builds. See "Faster Builds".symbol_level = 0enable_android_apk_bundles = trueis_official_build = trueandroid_channel = "stable"enable_r8 = truechrome_pgo_phase = 0proprietary_codecs = trueffmpeg_branding = "Chrome"enable_media_router = trueenable_cast_receivers = trueenable_widevine = true
对于每个新的构建目录,你只需运行一次这些命令,Ninja 会根据需要更新构建文件。你可以将 Default 替换为其他名称,但它应是 out 的子目录。有关其他构建参数,包括发布设置,请参阅 GN 构建配置。默认情况下将是一个调试组件构建。有关 GN 的更多信息,请在命令行中运行 gn help 或阅读快速入门指南。
编译 Chromium
使用 Ninja 构建 Chromium,可以通过以下命令进行:
autoninja -C out/Default chrome_public_apk
你可以通过在命令行中运行 gn ls out/Default 来获取所有其他构建目标的列表。要编译其中一个目标,将 GN 标签传递给 Ninja 时不需要前面的“//”(例如,对于 //chrome/test:unit_tests,使用 autoninja -C out/Default chrome/test:unit_tests)。
Chromium for Android安装到设备
编译后生成apk路径:
out/Default/apks/ChromePublic.apk
可以直接通过adb install 安装
相关文章:

Chromium for Android 浏览器的编译和安装
Chromium for Android 浏览器的编译和安装 Chromium for Android 浏览器的编译和安装环境要求和配置Chromium for Android源码下载安装 depot_tools获取代码转换现有的Linux检出安装额外的构建依赖运行钩子 Chromium for Android源码编译设置编译环境 编译 ChromiumChromium fo…...

实景视频与模型叠加融合?
[视频GIS系列]无人机视频与与实景模型进行实时融合_无人机视频融合-CSDN博客文章浏览阅读1.5k次,点赞28次,收藏14次。将无人机视频与实景模型进行实时融合是一个涉及多个技术领域的复杂过程,主要包括无人机视频采集、实景模型构建、视频与模型…...

Scala的隐式类
package hfd //隐式类 //任务:给之前的BaseUser添加新的功能,但是不要直接去改代码 //思路:把BaseUser通过隐式转换,改成一个新类型,而这个新类型中有这新的方法 //implicit class一个隐式转换函数类 //作用࿱…...

常见软件设计模式介绍:三层架构、MVC、SSM、EDD、DDD
三层架构(View Service Dao) 三层架构是指:视图层 view(表现层),服务层 service(业务逻辑层),持久层 Dao(数据访问层) 表现层:直接跟前…...

Springboot技术栈常见问题及搭建步骤
一. SpringBoot介绍 1.1. 引言 为了使用SSM框架去开发, 准备SSM框架的模板配置 为了使Spring整合第三方框架, 单独的去编写xml文件 导致SSM项目后期xml文件特别多, 维护xml文件的成本是很高的 SSM工程部署也是很麻烦, 依赖第三方的容器 SSM开发方式很是笨重 1.2 SpringBoot …...

session 共享服务器
1.安装 kryo-3.0.3.jar asm-5.2.jar objenesis-2.6.jar reflectasm-1.11.9.jar minlog-1.3.1.jar kryo-serializers-0.45.jar msm-kryo-serializer-2.3.2.jar memcached-session-manager-tc9-2.3.2.jar spymemcached-2.12.3.jar memcached-session-manager-2.3.2.jar …...

vue2:v-for实现的el-radio-group选中时显示角标,并自定义选中按钮的字体颜色和背景色
项目中需要实现一组预定义查询,每一个查询按钮在选中时右上角显示一个角标,展示当前查询返回的数据条目。 1、text-color="#3785FF" fill="#E6EAF1" 处理选中时的字体颜色和背景色,如上图,分别为蓝色和浅灰色。 2、badge中:value="selectedRadio…...

【Linux】-学习笔记10
第八章、Linux下的火墙管理及优化 1.什么是防火墙 从功能角度来讲 防火墙是位于内部网和外部网之间的屏障,它按照系统管理员预先定义好的规则来控制数据包的进出 从功能实现角度来讲 火墙是系统内核上的一个模块netfilter(数据包过滤机制) …...

鸿蒙NEXT开发案例:九宫格随机
【引言】 在鸿蒙NEXT开发中,九宫格抽奖是一个常见且有趣的应用场景。通过九宫格抽奖,用户可以随机获得不同奖品,增加互动性和趣味性。本文将介绍如何使用鸿蒙开发框架实现九宫格抽奖功能,并通过代码解析展示实现细节。 【环境准…...

深度解析:RTC电路上的32.768KHz时钟的频偏及测试
1、什么是RTC RTC是Real-Time Clock(实时时钟)的缩写,通常在电子产品中,是用时钟电路(外部采用时钟芯片,比如AiP8563)或时钟模块(SOC内部包含了时钟模块,只需要外接32.768KHz晶振)来…...

Scala的泛型
需求:定义一个名为getMiddleEle 的方法用它来获取当前的列表的中间位置的值中间位置的下标 长度/2目标:getMiddleEle(List(1,2,3,4,5)) > 5/2 2 > 下标为2的元素是:3 getMiddleEle(List(1,2,3,4)) > 4/2 2 > 下标为2的元素是:3格式如下: 定义一个函数的格式:def…...

OpenGL ES详解——glUniform1i方法是否能用于设置纹理单元
glUniform1i 方法确实可以用于设置纹理单元(texture unit)。在OpenGL中,纹理单元是图形硬件的一部分,它允许你同时绑定多个纹理,并在着色器程序中通过uniform变量来选择使用哪个纹理。 通常,纹理单元通过整…...

探索 Janus-1.3B:一个统一的 Any-to-Any 多模态理解与生成模型
随着多模态技术的不断发展,越来越多的模型被提出以解决跨文本与图像等多种数据类型的任务。Janus-1.3B 是由 DeepSeek 推出的一个革命性的模型,它通过解耦视觉编码并采用统一的 Transformer 架构,带来了一个高度灵活的 any-to-any 多模态框架…...

论文信息搜集
系列博客目录 文章目录 系列博客目录1.秩典型相关分析及其在视觉搜索重排序中的应用《Rank canonical correlation analysis and its application in visual search reranking》2.利用边信息的规范秩估计在多维谐波恢复中的应用《Canonical Rank Estimation Using Side Informa…...

实操给自助触摸一体机接入大模型语音交互
本文以CSK6 大模型开发板串口触摸屏为例,实操讲解触摸一体机怎样快速增加大模型语音交互功能,使用户能够通过语音在一体机上查询信息、获取智能回答及实现更多互动功能等。 在本文方案中通过CSK6大模型语音开发板采集用户语音,将语音数据传输…...

图表的放大和刷新功能
正常图表渲染显示: // 漏斗ading动画 let myChartone; // 获取配置项 let optionone; // 获取漏斗的数据 let order; let pay_order; let pay_order_num; let pay_order_num_num; let optiones; // 漏斗渲染 function polt(data) {// 从名为data的对象中获取ordata属…...

SQLServer利用QQ邮箱做SMTP服务器发邮件
环境 Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64) SQL Server Management Studio 15.0.18384.0 SQL Server 管理对象 (SMO) 16.100.46367.54 Microsoft .NET Framework 4.0.30319.42000 操作系统 Windows Server2019 ———————————————— 前言…...

flutter 多文本,其中文本下划线往下移动
变态需求 flutter中再满足多行文本,文本内有多个样式,并且多个样式可触发事件的情况,将其中的一部分文本的下划线往下移 方式一: 实现 使用RichText组件,主要是看中里面的WidgetSpan可以穿child为一个widget 实现源…...

7.OPEN SQL
总学习目录请点击下面连接 SAP ABAP开发从0到入职,冷冬备战-CSDN博客 目录 编辑 1.OPEN-SQL 简单回顾 R3体系 OEPN-SQL 2.OPEN-SQL 读取数据 2.1Select 语句 select 1条数据 多条数据与into AS别名 2.2INTO 结构体 内表 例子 2.3FROM 选择动态表…...

Python轻松获取抖音视频播放量
现在在gpt的加持下写一些简单的代码还是很容易的,效率高,但是要有一点基础,不然有时候发现不了问题,这些都需要经验积累和实战,最好能和工作结合起来,不然很快一段时间就忘的干干净净了,下面就是…...

YOLOv8目标检测(三*)_最佳超参数训练
YOLOv8目标检测(一)_检测流程梳理:YOLOv8目标检测(一)_检测流程梳理_yolo检测流程-CSDN博客 YOLOv8目标检测(二)_准备数据集:YOLOv8目标检测(二)_准备数据集_yolov8 数据集准备-CSDN博客 YOLOv8目标检测(三)_训练模型:YOLOv8目标检测(三)_训…...

SpringBoot SPI
参考 https://blog.csdn.net/Peelarmy/article/details/106872570 https://javaguide.cn/java/basis/spi.html#%E4%BD%95%E8%B0%93-spi SPI SPI(service provider interface)是JDK提供的服务发现机制。以JDBC为例,JDK提供JDBC接口,在包java.sql.*。MY…...

uniappp配置导航栏自定义按钮(解决首次加载图标失败问题)
1.引入iconfont的图标,只保留这两个文件 2.App.vue引入到全局中 import "./static/fonts/iconfont.css"3.pages.json中配置text为图标对应的unicode {"path": "pages/invite/invite","style": {"h5": {"…...

【Apache paimon】-- 集成 hive3.1.3 异常
目录 1、场景再现 Step1:在 hive cli beeline 执行创建 hive paimon 表 Step2:使用 insert into 写入数据 Step3:抛出异常 2、原因分析 Step1:在 yarn resource manager 作业界面查询 hive sql mr job 的 yarn log Step2:搜索job 使用的 zstd jar 版本 Step3:定…...

基于docker部署Nacos最新版本-国内稳定镜像
介绍 当前微服务架构常用的配置中心,本文推荐的是阿里云开源的nacos,截止发布本文为止,最新的nacos稳定版本为2.4.3 拉取镜像 //这个是国内目前可以下载的成熟的nacos镜像仓库,默认的docker hub需要不断的翻墙才可以下载 docke…...

云计算中的Hive操作详解
文章目录 云计算中的Hive操作详解一、引言二、Hive的基本操作1、创建表2、导入数据3、数据查询4、分区表操作 三、使用示例1、字符串处理函数2、数据类型转换 四、总结 云计算中的Hive操作详解 一、引言 Hive是云计算中一个非常重要的组件,它是基于Hadoop的一个数…...

UE4_控件蓝图_制作3D生命血条
一:效果图如下: 二、实现步骤: 1、新建敌人 右键蓝图类 选择角色, 重命名为BP_Enemytest。 双击打开,配置敌人网格体 修改位置及朝向 效果如下: 选择合适的动画蓝图类: 人物就有了动作&#x…...

11篇--图像边缘检测
图像梯度 要学习图像边缘检测,要先了解图像梯度的概念,我们正是通过梯度值来区分边缘像素点的 处于边缘附近的像素点与周围像素点的差距很大(不然不会有边缘呈现),所以给边缘附近的的梯度之变化很快,通过…...

宝塔SSL证书申请失败,报错:申请SSL证书错误 module ‘OpenSSL.crypto‘ has no attribute ‘sign‘(已解决)
刚安装宝塔申请SSL就报错:申请SSL证书错误 module OpenSSL.crypto has no attribute sign 面板、插件版本:9.2.0 系统版本:Alibaba Cloud Linux 3.2104 LTS 问题:申请SSL证书错误 module OpenSSL.crypto has no attribute sign…...

(已开源) 详解4D Radar数据集K-Radar
本文介绍一个4D Radar公开数据集:KAIST-Radar(简称K-Radar,由AVELab提供)是一个新型的大规模目标检测数据集和基准测试集,包含35000帧4D雷达张量(4DRT)数据。本文主要贡献有: 本文提…...