极速浏览器|2022年浏览器开发总结

写前面的废话

一转眼鸽了三个月了,没更新公众号,也没上酷安,就🐑了的时候休息了下,没有闲着,这半年的时间基本上都在死磕内核,真的感觉精力有限。

到了年底12月中的时候,被叫去支援其他迭代,这才有点时间和精力写点总结,看看22年干了些啥,捋一捋流水帐。

2022上半年

一月~三月

一月,主要是在适配Android12。给索尼手机做的浏览器需要适配Android12,借着这个机会把内核升级适配了。

这是第一次搞浏览器内核代码,完全是盲人过河,一开始连内核怎么工作的都不知道,只能一点点抠一点点研究,还好得到了一位朋友的指点,跌跌撞撞的也算成功完成了。

一月底二月初的时候,还修复了一个遗留很久的百度搜索视频页面无法点击返回退出的问题

二月到三月,基本在做文件管理插件浏览器样式的适配和移植

文件管理插件是从清理大师里移植过来的,里面的最近文件功能是我21年做的,我知道有些人不太喜欢浏览器里的文件管理器,我也不喜欢,但是最近文件我个人觉得还是很好用的,找应用里下载的文件,每周用一次删一些文件,都还可以吧。

三月末尾,开始做新极速版2.0了。

四月

新极速版2.0算是上半年花费精力最多的事情吧,印象很深刻,在四月底快上线的时候正好赶上我的技术评级答辩,答辩的ppt都没怎么搞。

因为始终觉得极速浏览器是我自己一直在用的,不想弄差了。接手到手机浏览器的代码也是巧合吧,也就比较上心。

之前应该和大家有说过,旧极速版目前没人维护了,还是32位版本,重启新极速版2.0的时候,用的是360手机浏览器(绿e)的代码为基础,去除冗余模块及插件,进行改造的。

新极速继承了旧极速版的用户各种用户配置数据,把原来旧极速有的功能大部分都移植过来了。支持了64位,支持了Android12,优化修改了部分模块功能。本来强迫症设置选项被产品移除了,后来我争取回来的。

四月基本都在做数据继承、裁剪适配的工作,包括主程序、插件、云控的适配,还有绿e共存的兼容的问题,增加了底部小白条的适配,优化了启动速度。

由于涉及到32位升级64位程序、而且新旧极速版压根就是两份不同代码,存在技术难度和机型适配问题,最终也算是克服了大部分问题吧,4月29号晚上比较晚的时候,新极速版2.0.0.100算是顺利上线了。

一些记录

关于内测

因为是自己用的浏览器,想和酷安的同学们分享下,没想到大家那么热情,想要最新的包。

主要功能完成的差不多的时候,就去推动着运营去发内测包,battle了一段时间,终于算是发出来了,没有食言。

正式内测的时候,有用户喜欢,也有用户不喜欢,那段时间我也在酷安收集了好多用户反馈,优化了一些进入主页卡慢、界面加载卡顿的问题,改了壁纸闪烁、搜索框位置变动的问题,还增加了底部小白条的适配,等等吧。

那阵子基本只在群里发内测包,我有时也会偷偷公众号放一些链接。

因为没办法,这是运营主管的事情,本身我推动就算是越俎代庖吧,另外,我理解的顾虑可能还是未稳定的包大面积铺开,会影响产品口碑的吧。

五月~七月初

这段时间就是正常迭代,根据用户的反馈改些问题吧,大概发了6个版本2.0.1.2002.0.2.1002.0.2.3002.0.2.2002.1.0.1002.1.0.2002.1.0.300

就说下我做的一些工作吧:

五月

  • 首页宫格图标优化刷新逻辑,解决一些机型的卡死问题。
  • 搜索页上划隐藏地址栏。
  • 搜索引擎的正则表达式优化。
  • 优化冷启动后主页宫格加载完成导致搜索框上移的问题。
  • 优化主页壁纸加载,初始化时加载自定义壁纸,避免冷启动先展示白屏再加载壁纸。
  • 底部菜单栏改为全部可编辑,强迫症增加禁用下载红点。
  • 解决用户反馈网页上输入文字软件盘遮挡的问题。
  • 新增了开发者设置页面,这时还只有日志保存功能。

六月

  • 优化首页搜索框的位置和展示时间。

  • 开发者设置里新增“底部菜单自定义顺序”导出功能,允许高级用户自己隐藏自己不希望看到的按钮。

  • 适配平板平行视界:因为华为鸿蒙/小米系统默认给我们的应用开启了平行视界还没法代码关闭,现象就是pad用户拿到手横屏的时候是个小竖屏,统一适配了下,强制横屏填充,设置页什么的就支持分屏,还有一些插件的适配。

  • 暗黑模式改版,把原来发灰的暗黑模式背景改成了新的样式,统一替换了所有的资源,包括插件,花了挺长时间的。

  • 开发者设置里给大家加了“强制跟随系统暗黑模式”,这个是周末自己研究了方案搞了一版,没有产品需求,就加在开发者设置里了。

2022下半年

新极速收尾

我在新极速版的开发工作基本上到7月初就结束了,2.1.0.200版本之后基本就没在跟进了,七月和八月就是在开发者设置里加了些选项,这里感谢产品和测试的宽容,给我留了点自己的东西:

  • 新增了“调试内核webview主题颜色”功能。
  • 新增“移除搜索结果页面上的搜索框”功能:暂仅支持去除百度搜索页搜索框。
  • 新增:“重新释放浏览器内核”和“常驻开发者调试模式”。常驻开发者调试模式开启时,设置页面开启开发者设置入口,setWebContentsDebuggingEnabled设置为true。
  • 彩蛋功能:开启常驻开发者模式有🤫🤫🤫功能开启。
  • 新增“另一种暗黑样式”,还是个demo功能,搞内核的时候发现的设置接口,后面没时间再去改了。

总的来说,新极速版我自己是满意的,也是超出100%的投入的,我不再跟主程序开发的时候,线上崩溃率低于0.3%,ANR率低于0.7%,DAU数据也还算好吧。

内核开发

在酷安收集用户反馈的时候,发现很多都是浏览器内核的问题,都是我暂时没法处理的,下半年的时间我就转去主做内核相关的开发了。

说实在的,Chromium内核是我工作快10年来,接触过的最最复杂的系统,没有之一,之前我搞过很长的一段时间的Linux内核开发和Android操作系统开发,都没觉得这么吃力过。

首先是代码量宏大,3000w行左右的代码,一个项目纯代码文件占用的空间5.2GB,本机从头编译一次要8~12个小时。🤦‍♂️

先不说本身代码复杂度高,就单浏览器业务场景就很复杂,网页如何被解析被渲染后展示出来,我至今没法说清楚,之前专门做内核的开发全部离职了,也没有留下几页wiki,用盲人过河来形容真的不过分。

还好有一位之前不是专门做内核的老同事给我讲了些大概的流程,才让我慢慢找到门路。

全能播放器优化

下半年我基本上都在做全能播放器的优化,处理用户反馈的各种播放器问题吧,改了很多,可能你们感知并不明显,但我也尽力了吧,可能还引入了一些bug和崩溃,实在抱歉。

主要做的工作如下吧:

  • 广告过滤数据统计

  • 播放器倍速优化:支持更多的快进倍数,支持长按当前速度的2倍速快进;优化了从左划到右快进快退的灵敏度,总时长大概1分半左右,这样就可以一次划动跳过电视剧的片头

  • 播放器亮度调整优化:最低可以调整到0,修复获取系统亮度负值时屏幕很亮的问题。

  • 优化翻页距离:计算时去除顶部地址栏和底部工具栏高度,最终默认系数为0.85。

  • 播放器接管位置优化:包括飞极速、酷客影院、大师兄影视、茶杯狐、虎扑等页面,还有些不可描述的网页(我经常上班需要调试这些你们爱看的网站,导致同事们看我的眼神都很怪🤦‍♂️)。。

  • 修复一些机制问题、销毁问题、自动播放导致的崩溃,等等等等吧,这些问题回想起来我都觉得头痛无比。

  • 一些CVE漏洞修复的工作。

里面有一条播放器接管位置优化,就几个字,但是后面付出的艰辛真的巨大。

以前的全能播放器接管方案上有缺陷,需要获取网页中播放器在网页上的位置,然后在单独绘制一个播放器在相同的位置盖住下面网页原生的播放器,用户划动屏幕时计算网页的滚动距离,然后让播放器界面一起移动。

正常情况下,这种方案没问题,但是现在很多视频网站(盗版/色情/盗链),都是一个网页里套着另一个页面,而且开发者还会用各种方案隐藏网页的滚动距离,让用户看起来就是在一个网页里一样。像这种页面,上面的接管方案就失效了,因为这种情况下的滚动事件时获取不到的,这时你们看到的现象就是网页在滚动,但是播放器固定在那儿了。

做了好些努力吧,加了两三种新机制去获取滚动事件,解决一些网站的接管位置问题,可能还不全,还存在很多问题,希望大家理解吧。

数了下,下半年从7月中旬到12月中旬总共5个月的时间,内核代码提交了70多次,不包括升级版本号那些无效提交,相当于我每周要提交3.5次代码,也是超出我自己的预料了。

投屏功能

极速浏览器和绿e的投屏功能都下架了一段时间,反正事情也过去了,应该可以说了。

原因是XX投屏SDK开始收费了,本身极速没有广告,只有一点点搜索渠道的钱,非常非常少,和SDK的价格一开始没谈拢,后来服务就被停了,隐藏了投屏入口。

看到用户反馈比较多,大家还是想要这个功能,就又和投屏SDK谈了价格,这才上了线。

在做但没做完的

12月中旬,我在做电脑模式的优化工作,想加上一个网页自动缩放功能,去解决一些页面在电脑模式下显示异常的问题。

方案差不多跑通了,可行的。正好赶上项目组又有调整了,耽搁了。

我争取过完年,有时间把自动缩放的功能排上期,让大家尽快用上。

还有之前修复一些播放器的bug,也没来得及上线,希望年前有机会再推一次,看看能不能发个内测。

墨鱼丸视频

12月中旬的时候,由于人手不足,我来支援墨鱼丸视频的开发,就是绿e第二页的视频,有点像抖音的那种形式。

和服务端联调也是坎坎坷坷,一言难尽,总算这周一半夜里上了线。

虽然天天也搞到快10点,但是明显感觉到和内核开发不一样,要简单。

因为Android开发遇到的各种问题,网络上一搜,总有人会遇到类似的,而内核开发,完全就是自己在摸索,遇到问题,网上也找不到解决方案,只能自己苦苦思考、阅读代码。

一天下来,虽然都累,但真的不一样,脑袋被掏空的累。

最后

那天项目组开总结会,看到了些数字,我自己也没想到:“2022年极速版全年发布28个版本”,新极速是4月底上线的,28个版本意味着几乎每周一个版本了。

当然还有些数字是不尽如人意的,也就是年底有调整的原因。

2023极速版且行且珍惜吧,希望大家继续支持极速浏览器!🙏


以上,欢迎关注公众号“小黑杂说”。

小黑杂说


极速浏览器|2022年浏览器开发总结
https://wuruofan.com/2023/01/12/2022-lite-browser-developer-summary/
作者
rf.w
发布于
2023年1月12日
许可协议