打造专属的Chromium for Android

本文分享了从零开始编译ChromiumforAndroid的全过程,包括获取源码、使用GYP及GN编译、Gradle构建等步骤,并详细记录了期间遇到的各种问题及其解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打造专属的Chromium for Android

自从写了上篇《chrome 源码研究启航篇》后,到今天已经有了近一个月的时间,这段时间做了啥呢?研究到啥程度了呢?后续节奏是否有调整呢?

针对上边疑问,下面做逐个解答:

一,这段时间做了啥?

总体来讲,这段时间主要利用闲余在编译和熟悉源码,完成了对源码的编译和Gradle构建,并将项目开源,命名为:公英小蒲。Git地址:https://github.com/derry/delion.git

具体的:

   1,获得源码

   和预期计划的一样,要深入研究Chrome首先要拿到完整的代码,进行完整的编译,先从宏观上搞清楚他的整体结构,搞清楚他开源的代码是否完整可用,进而确定下一步研究思路。

   获取源码官方有文档,http://dev.chromium.org/developers/how-tos/get-the-code,获取过程虽然等待时间漫长但总体还算比较顺利。fetch --nohooks android 完成后,代码基本就都拉下来了。过程中如果中断了,可以执行gclient sync继续。

因为这时候使用的—nohooks,所以真正编译需要的资源这时候还没有下。这一步一般没啥问题。

   2,编译

代码下完后,下一步选择编译方式:使用GYP或GN。

GYP的编译方式出来的比较早(网上查找也基本都是GYP的编译,我们现在项目里的编译方式就是GYP,市面上开源的如365浏览器也是,早期版本GYP方式确实可行,为什么说早期可行看后边)。我优先选择了使用GYP方式编,考虑这样的话还有成功的案例可以参考。(后来为此决定付出了折腾一晚上的代价)

根据官方说明:

echo "{'GYP_DEFINES': 'OS=android target_arch=arm', }" > chromium.gyp_env

指定编译类型。

然后运行gclient runhooks 获取真正的GYP需要的构建所需的资源。

正常情况执行后会把需要的所有资源下载下来。但是实践过程中发现里面有坑。

   经历的那些坑:

    a,运行gclient runhooks

         If you really want to run this, either run

         `python build/gyp_chromium.py`explicitly by hand

         or set the environment variable        GYP_CHROMIUM_NO_ACTION=0.

    b,You have PROXYvalues set in your environment, but gsutil in depot_tools does not (yet) obeythem.
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值