是的,Android版Edge浏览器支持Extension(插件/扩展)了

这篇具有很好参考价值的文章主要介绍了是的,Android版Edge浏览器支持Extension(插件/扩展)了。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每个工作日都有文章更新。

有些小伙伴的消息渠道实在过于灵通,所以这件事我也不用藏着掖着了。

手机edge插件,随笔,android,edge,前端,浏览器,extension

(此处插件指的就是Extension,虽然Extension最标准的翻译应该是扩展)

其实Extension这个功能我们是想要先小范围秘密推出,看看数据再说的。没想到一些海外的极客博主,在我们发布带Extension功能版本的当天,就把隐藏的这个开关给找到了,并立刻引起了很多的新闻报道,这个功能也就藏不住了。

手机edge插件,随笔,android,edge,前端,浏览器,extension手机edge插件,随笔,android,edge,前端,浏览器,extension

是的,这个功能就是我做的。关于这一点,连我自己都未曾想到过。

长期以来,支持Extension一直是Android版Edge浏览器最强烈的用户呼声,我们内部收到过很多类似的用户反馈。我自己的公众号上也曾有不少朋友留过言,希望Android版Edge能支持Extension。

手机edge插件,随笔,android,edge,前端,浏览器,extension

那个时候,我还能很耐心地跟大家解释为什么Edge Android不支持Extension,反正这个功能和我没什么关系嘛。

有趣的是,你永远不知道明天会发生什么。

2021年底,我们部门来了一位新同事,jiayi。jiayi最早在腾讯做QQ浏览器,之后又去了猎豹浏览器,再后来又去过阿里和快手,现在来到了微软Edge浏览器。

jiayi担任的岗位是Android端架构师,所以他一开始做的也是一些偏基础架构之类的工作。后来我听说他准备去搞Android端的Extension,这就太牛了,Extension可是自从我进入Edge项目组之后就时不时听说的超级难题,确实得是架构师级别的才能搞得定。

结果在2022年底,Edge项目组进行了一次组织架构调整,jiayi不再担任架构师了,而是成为了基础架构组的Manager,还把我划到了他的组里。

新组成立,Manager要和每个组员单独聊天沟通,俗称1:1。jiayi当时找到我,就跟我说:“郭神,Extension就交给你了啊。”

手机edge插件,随笔,android,edge,前端,浏览器,extension

澄清一下,这活确实不是我主动要求的,但却是我主动接下的。因为当时如果我拒绝的话,是可以安排我到其他组继续做传统Android开发的。

但是对于我来说,这是一个非常大的挑战。如果做成功了,不仅能够产生巨大的影响力,同时还能让我跳出Android的技术栈,扩展自己的技术领域(Extension主要都是用C++开发的)。

这活我接了。

考虑到接手之前别人的研究成果总比自己从零开始强,于是我问jiayi之前研究到了哪里,我可以继续接着搞。结果jiayi说,这不是最近太忙了么,还没开始研究呢。。。

手机edge插件,随笔,android,edge,前端,浏览器,extension

不过jiayi还是给我提供了一个重要信息,那就是Android上的Kiwi浏览器是支持Extension的,并且Kiwi还开源了自己的代码。

于是我去查看了一下Kiwi的源码,好消息是,它确实成功支持了Extension。坏消息是,开源的代码已经是4年前的版本了,和现在Chromium的代码差距巨大。

因此,指望着靠照搬Kiwi的代码来让Edge支持Extension是不可能的事情了,但是我仍然从Kiwi的源码中受到了很大的启发。

因为本质上来说,我们并没有想要去发明Extension这个东西,Extension本来就在那里,只是Google不允许它在Android上运行而已。所以我们要做的事情,就是要把PC平台现有的Extension代码给带到Android平台上。

那么具体要怎么带呢?这时我去参考了一下Kiwi的思路:

手机edge插件,随笔,android,edge,前端,浏览器,extension

这是一段GN代码,在Chromium当中,GN可以用来进行编译配置,指定哪些文件参与编译,哪些文件不参与。

而上述的代码中,注释里很明确写了!is_android,也就是说这些代码是不给Android使用的。但是Extension却又依赖这些代码,所以Kiwi使用了if (true),来把这些代码强制带到Android平台上。

不得不说,Kiwi的这种做法虽然暴力,但确实管用。我在思路上进行了部分借鉴,不过写法要远比Kiwi更加优雅,不然这种写法在微软的代码审查上也是过不去的。

当然,这只是一个非常简单的例子,事实上Extension的代码量极其庞大,依赖关系错综复杂。我在整个的实现过程中能深深感受到,Google是完全没打算让Extension能在Android上运行,才会把代码写成这样。所以有小伙伴还期待着Chrome Android能支持Extension的,短期内就不要想了。

另外,只是把Extension相关的代码带到Android平台上并不算完。要知道,带进来的这些代码都不是为Android平台设计的,必然会出现海量的编译错误。

因此,接下来才是更加困难的部分,就是如何让这些Extension关联的代码在Android上能够编译通过。

这个就没有什么特别好的办法了,只能一个一个错误地去解决。

Chromium项目在编译的时候可以通过一个-k number的指令,告诉编译器遇到多少个编译错误之后才停止编译。我把这个数字调到了1000都不能一次性编译完整个项目,可见引入了Extension之后会带来多少的编译问题。

这些所有的编译问题一共花两个多月时间才全部处理完。两个多月时间,只是为了让项目能够编译通过,大家可以想象一下这个过程有多艰辛。

当然,即使所有的代码都编译通过了,也仅仅意味着Extension相关的代码被带到了Android平台上,这和在Edge Android上可以正常使用Extension了仍然是两回事。

因此,接下来的一段时间,我还要对Extension的具体功能进行开发调试,验证整体的Extension框架能否在Android平台上正常运行。不过相比起来,这已经算是回归到比较正常的软件开发流程了,之前做的那些工作才真的是整天摸着石头过河。

最后闯过无数难关,我终于做出了一个能够在Edge Android上运行Extension的Demo,这个项目到这里才算是正式立项。

之后就是以正规的流程去开发这个项目了,但仍有非常非常多的事情要做,包括功能开发、代码质量审查,安全性隐私性审查,应用性能检测等等等等一系列的事情。另外,Extension改动的基本全是桌面端的代码,因此还需要Edge美国团队和印度团队的成员来检查我这边的改动。总之没有一件事情是不花时间的。

最后从上线的日期来看,这距离我接手这个项目已经过去了一年左右的时间,这一年时间里我就只做了这一件事。

不过如此困难的一个项目,功劳也并不都是我一个人的。有许多同事在期间参与到了这个项目当中,并给我提供了帮助。

这里首先我要特别感谢我们组的一位同事,wadai。

wadai差不多参与了半个Extension项目的开发过程,帮助我解决了很多高难度的技术问题,并且还在这个过程中发明出了GN Overlay这种对Edge开发具有重大意义的技术。

我记得在解决编译问题的后期,有大约3000+ undefined symbol的报错。基本就是我们俩一人分一半,逐个解决的。光处理这些问题就得花上至少两周以上的时间,枯燥又乏味,但我们就是这么趟过来的。

另外要感谢的就是jiayi,虽说jiayi没有参与这个项目的研发,但是他作为Manager的一些决策直接决定了这个项目的成败。

开发进入中期的时候,我发现Chromium在Extension的设计上并没有做到很好的独立性,其实它是依赖于很多模块的。而Edge桌面端又会在这些被依赖的模块里做很多自己的功能,最后把Extension带到Android上的同时,我也几乎把半个Edge桌面端的功能都给带到了Android上。

这个事情对我当时打击很大,因为代码写成这个样子,PR文件改动数甚至达到了1000多个,就算Extension在Android上真的能跑起来了,我们也绝无可能上线。那个时候我甚至觉得这是一个注定要失败的项目,想要中途放弃了。

jiayi在这个时候做出了非常重要的决策。他让我先不要管代码写的合不合理,优先就是去实现一个能在Android上运行Extension的Demo,代码后期都可以再进行优化。哪怕是后期真的没有优化空间,这东西就是做不了,我们出过一个可运行的Demo,也比现在什么都没有的情况下结束项目强。

事实上也正如jiayi所说,我们在后期做了很大程度的代码优化工作,最低时PR的文件改动数仅剩200多个。扫清了这些障碍,Extension项目才得以顺利上线。

我还要感谢Edge美国团队的Kevin。Kevin是Edge桌面端的架构师,在我们开发Android端Extension的时候给了我们巨大的帮助。

Kevin特别喜欢中国的文化,他还关注了我的公众号,因此这篇文章他很有可能会看到。

Hey Kevin, I would like to give you a big thanks for everything. The Android Extension is here because of your help.

当然,还有很多同事我是想要感谢的,但是感觉不能再写下去了,再写这篇文章就要成感谢大会了。

回到正题,接下来得好好跟大家介绍下Edge Android上的Extension功能到底如何使用。

这个功能还在慢慢灰度中,因此没有被灰度到的朋友现在可能还看不到。

这里我教大家一个快速体验的办法。首先确保你的浏览器是最新的Edge 122版本,如果还没安装Edge的话可以通过下面的二维码快速安装:

手机edge插件,随笔,android,edge,前端,浏览器,extension

然后在Edge的地址栏输入edge://flags,你会看到如下界面:

手机edge插件,随笔,android,edge,前端,浏览器,extension

这个界面是Edge用于配置一些实验性功能开关的界面,里面显示的都是目前Edge正处于测试阶段的一些功能。

接下来在这个界面的搜索框当中输入Android Extension,如下所示:

手机edge插件,随笔,android,edge,前端,浏览器,extension

然后将这个功能的开关打开,选择Enabled选项即可:

手机edge插件,随笔,android,edge,前端,浏览器,extension

当你选择了Enabled之后,底部会弹出一个提醒告诉你重启浏览器来使开关生效。

重启之后,依次访问:底部工具栏菜单键->右滑至菜单第二页->全部菜单,在这里你就能看到一个新的扩展入口了。
手机edge插件,随笔,android,edge,前端,浏览器,extension

点击扩展可打开我们为Android平台专门设计的扩展商店页面,目前有3款扩展程序可供大家安装使用:

手机edge插件,随笔,android,edge,前端,浏览器,extension

这3款扩展程序都是非常热门且实用的,接下来我向大家分别演示一下它们的用法。

第1款,Dark Reader。它是用于将网页渲染成深色模式的。

作为Android开发者,我相信大家应该都知道如何让自己的App适配深色模式。但是浏览器是一个很特殊的App,虽然浏览器的外观可以用传统的方式去进行深色模式适配,但是浏览器显示的网页我们却是没有办法控制的。

因此,很多浏览器用户在夜间浏览网页时其实都是比较刺眼的,体验并不友好。

而Dark Reader则是专门用于解决这个问题的扩展程序,它有一套颜色算法可以对网页里的浅色元素进行反色,从而让任何网页内容都变得非常适合在夜间浏览。

安装Dark Reader后打开网页的效果如下图所示:

手机edge插件,随笔,android,edge,前端,浏览器,extension

另外我们还可以通过如下路径来操作已安装的扩展程序:底部工具栏菜单键->右滑至菜单第二页->全部菜单->扩展,现在你会看到刚刚安装好的Dark Reader:

手机edge插件,随笔,android,edge,前端,浏览器,extension

点击Dark Reader,将会打开扩展程序的弹窗界面,在这里可以对该扩展程序进行更多的功能控制,比如开启和关闭Dark Reader,或者针对某一个网站开启和关闭等等。

手机edge插件,随笔,android,edge,前端,浏览器,extension

我最喜欢的一个功能就是,点击Auto,让它跟随系统的深色模式自动开启和关闭,这样就能做到系统全局的深色模式效果了。

第2款,uBlock Origin,广告屏蔽神器,用过的都说好。所以这里我主要给没用过的朋友们做个简单的科普。

不知道大家玩不玩Steam游戏,玩的朋友可能都听过这个梗,没有人能在百度下载到正版的Steam,因为搜出来的全是广告。

手机edge插件,随笔,android,edge,前端,浏览器,extension

当然现在百度已经良心很多了,至少在第二条结果给了个官网的链接,但其他结果仍然都是广告。

现在我们安装一下uBlock Origin这个扩展程序,然后再次尝试在百度搜索Steam。

手机edge插件,随笔,android,edge,前端,浏览器,extension

可以看到,现在搜索出来的结果变得非常清爽,广告基本都被屏蔽掉了。

这里再告诉大家一个专门的网站可以用来测试广告屏蔽的效果,adblock-tester.com。

uBlock Origin在这个网站能够获得96分的高分,可见其广告屏蔽能力是非常强的。

手机edge插件,随笔,android,edge,前端,浏览器,extension

第3款,Global Speed,视频倍速控制器。任何在浏览器播放的视频都可以用它来控制播放速度。

B站的二次元用户们应该都很喜欢倍速播放这个功能,二倍速播放就能打开一个全新世界的大门。

Global Speed这款扩展程序则将B站的这个鬼畜功能应用到所有的视频网站,可以说是相当哇塞了。

这里我以播放抖音视频为例(不知道吧?在浏览器里也是可以刷抖音的),安装好Global Speed,然后打开它的弹窗界面,就能对视频播放进行倍速控制了。

手机edge插件,随笔,android,edge,前端,浏览器,extension

怎么样,这3款扩展程序是不是既实用又好玩。

但是也一定有朋友会说,才支持3款扩展程序也太少了吧。

没错,少是少了些。但是,只支持3款扩展程序,和只能支持3款扩展程序是两回事。

因为从能力的角度上来说,我们是把桌面端Extension的能力近乎全部都搬到了Android平台上,也就是说桌面端能安装的扩展程序,讲道理在Android上都能安装。

但是要知道,这么多的扩展程序,它们可能之前并没有考虑过还能在Android平台上运行,也没有对移动端进行过专门的适配。因此即使能安装这些扩展程序,在运行时也或多或少会出现一些问题。

也正是因为这个原因,我们采取了精选策略,先提供给大家经过我们严格测试的扩展程序,保证它们在Android上的用户体验是非常好的。

然后我们会一步步扩大支持范围,让更多的扩展程序能够登陆Android平台。

最后的长期目标是开放开发者生态,让广大的开发者们都能够在Edge Android上发布自己开发的优质扩展程序。

当然这个规划非常长远,目前我们还只是在第一步。至于后面每一步能不能走好,需要广大的用户和开发者们一同参与进来,多多给我们提出宝贵的意见。

如果你对我今天介绍的这些内容感兴趣,那么不妨扫描下方二维码下载最新版的Edge浏览器体验一下吧。

手机edge插件,随笔,android,edge,前端,浏览器,extension



如果想要学习Kotlin和最新的Android知识,可以参考我的新书 《第一行代码 第3版》,点击此处查看详情。文章来源地址https://www.toymoban.com/news/detail-845235.html

到了这里,关于是的,Android版Edge浏览器支持Extension(插件/扩展)了的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Edge浏览器和Google浏览器占用内存情况

    最近发现适用edge浏览器看视频时,或者打开多个网页,电脑就会变得非常卡顿,打开任务管理器发现内存占用较多,网上也有人说edge浏览器确实占用内存较多。但是给出的解决方案是更新windows系统,这个方法显然不能接受,采用google浏览器即可减小内存占用。 下面进行一组

    2024年02月15日
    浏览(42)
  • Edge浏览器入门

    关于作者: CSDN内容合伙人、技术专家, 从零开始做 日活千万级APP ,带领团队单日营收超千万。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业化变现、人工智能等,希望大家多多支持。 我们继续总结学习 工具的使用 ,温故知新。 今天记录一下edge浏览器

    2024年01月17日
    浏览(54)
  • edge浏览器插件打包安装到谷歌浏览器上

    没有安装插件的浏览器不能算的上是一个浏览器,众所周知的原因谷歌无法打开,所有也就无法安装谷歌应用商店的插件,但是Edge浏览器是可以安装访问插件,又因为egde浏览器用的是谷歌的内核,所有大部分的Edge浏览器插件在谷歌上一样是可以使用的。下面就来看一下怎么

    2024年02月13日
    浏览(72)
  • win10取消ie浏览器自动跳转edge浏览器

    建议大家看完整篇文章再作操作 随着windows10 日渐更新,各种不同的操作,规避IE浏览器跳转Edge浏览器的问题 1.(失败)思路 协助Edge浏览器 管理员身份打开 PowerShell 一般edge的默认安装目录是 PowerSell 进行跳转到上述目录 执行卸载命令 然后会提示 打开任务管理器,找到所有

    2024年02月07日
    浏览(57)
  • 查看edge浏览器插件的安装位置并将插件安装到别的浏览器

     C:Users zhang AppDataLocalMicrosoftEdgeUser DataDefaultExtensions    这是我的目录,把中间的的替换成你的电脑用户名就可以了 你也可以先输入目录的部分名称,下拉找对应的目录  将插件导出,导入到别的浏览器 以第一个插件  扩展管理器  为例,进入下一级子文件,找到插件

    2024年02月10日
    浏览(53)
  • 新版edge浏览器读取谷歌浏览器上的历史记录

    上一篇: (3条消息) 新版edge浏览器读取谷歌浏览器上的历史记录_learningbilibili的博客-CSDN博客 https://blog.csdn.net/learningbilibili/article/details/123662218 关于上次的读取历史记录的问题是现在的edge浏览器最近的版本更新后出现了每次启动时从 Google Chrome 导入浏览器数据的功能,而且是

    2024年02月09日
    浏览(63)
  • 离线安装 edge 浏览器

    Microsoft Edge离线安装 针对部分设备无法联网情况下安装Microsoft Edge有两个解决方案: 使用Microsoft Edge商业版 前往Microsoft Edge商业版下载页面选择对应的版本下载,在通过移动储存设备将离线安装包导入离线设备即可进行安装 点击以下链接进入Microsoft Edge商业版下载页面: htt

    2024年02月04日
    浏览(39)
  • Edge 浏览器设置自动刷新

    要在 Microsoft Edge 浏览器中设置自动刷新,您可以使用第三方扩展来实现这一功能。目前,Edge 浏览器本身并没有内置的自动刷新功能。以下是启用自动刷新的一般步骤: 打开 Microsoft Edge 扩展商店:首先,在 Edge 浏览器中打开扩展商店。您可以通过点击浏览器右上角的三个水

    2024年02月02日
    浏览(147)
  • edge浏览器关闭组织托管

    参考链接   edge浏览器出现了“由你的组织管理”的提示,另外的一个的解决方案!_哔哩哔哩_bilibili 我本人是直接删除注册表 计算机HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftEdge  解决了问题 如果怕删除注册表有什么隐患,可以在注册表编辑器中在需要备份的文件目录下店家左

    2024年02月20日
    浏览(42)
  • Edge浏览器设置自动刷新

    你可以在 Edge 的扩展商店中搜索并安装这些扩展。以下是一些常见的扩展: Super Auto Refresh: 提供了强大的自动刷新功能,可以根据自定义的时间间隔进行刷新。 Auto Refresh: 允许你设置页面刷新的间隔。 Edge 浏览器的开发者工具中也有自动刷新的选项: 打开开发者工具:按 F

    2024年02月02日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包