0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

闲谈Flash Player的前世今生

如意 来源:品玩网 作者:光谱 2021-01-08 14:10 次阅读

Adobe Flash,一个只要在互联网上混过的人应该都听说过的东西。在2020年的最后一天,我们终于和它说了再见。

Flash 是一种多媒体创作和播放支持技术,在互联网技术史上曾经扮演过重要的地位。在20多年前网络技术还不像今天一样发达的年代,人们曾经重度依赖 Flash 制作网页、广告、小软件、游戏等多种多样酷炫、可互动的在线内容。

谷歌这样评价 Flash:过去的20年里,Flash 塑造了人们玩游戏、看视频和在网络上运行程序的方式。但是,在最近几年的时间里,Flash 变得没那么流行了(特别是在谷歌主导推行 HTML5 替代 Flash 的努力下)。

在2014年,大约80%的 Chrome 浏览器用户会访问包含 Flash 内容的网站。这个数字到2017年只有17%了;而在今天,只有可能更低。比如硅星人日常会访问的网站里,只有微信公众号后台和美图秀秀网页版还在使用 Flash。

(如何知道正在访问的网站是否包含 Flash 内容?以 Chrome 为例,如果你在地址栏靠右的地方看到下面这样的图标,则代表网页包含 Flash 内容,而且已经被浏览器默认屏蔽了。)

为什么 Flash 被抛弃了?原因主要包括安全性、计算资源使用效率低等。

简单来说,Flash 作为一项已经诞生20多年的技术,为了保证兼容性,客观上存在不少“漏洞”。

在 Flash 还流行的年代,一般浏览器产品的漏洞中很大一部分都是因为需要支持 Flash。

Flash 在它诞生的时候十分前卫,但随着时间和其它方面互联网技术的进步,现在已经相当落后了。

同样用于呈现互动式内容的 HTML5 和 Web Assembly 等开源技术,比 Flash 运行更快、占用计算资源较少、更加省电。再加上安全性问题,可以说 Flash 真的无甚优势了。

究其根本,Flash 是一款闭源的技术,由现在的拥有者 Adobe 独立维护,但又给 Adobe 赚不到什么钱,所以该公司对维护 Flash 更加不上心,也会出现在某些国家市场将授权卖给某些名声极差的代理商的情况。

当 Flash 出了问题导致漏洞的时候呢?浏览器厂商还要等着 Adobe 修复,实在扶不上墙……

这也是为什么以苹果、谷歌为代表的公司,在过去的十年里一直在表达对 Flash 的不满。

苹果决定在 iOS 中不支持 Flash,联合创始人乔布斯在2010年公开致信 Adobe,炮轰 Flash 各种问题。

2015年,YouTube 全面转向 HTML5,谷歌也发布了在移动设备上将 Flash 广告转成 HTML5 的技术。那一年,就连 Adobe 也顶不住压力,鼓励 Flash 开发者转向 HTML5。

2017年,Adobe 终于宣布了 Flash 的产品寿命结束计划。一些开发者层希望 Adobe 将 Flash 变成开源项目,以“保住互联网历史的重要一篇”,但这些努力也无疾而终。可能 Adobe 自己也不想再跟 Flash 有任何关系了。

Flash 的前世今生

1993年,连续创业者 Charlie Jackson 在上一家公司的竞业禁止条款结束之后,入股并加盟了关系亲密的前下属 Jonathan Gay 的新公司 FutureWave。

科技媒体 Ars Technica 报道,Gay 在 Jackson 的上一家公司 Silicon Beach Software 就已是核心程序员,而且当时还在上中学,开发了多款在苹果麦金塔操作系统上声誉颇佳的游戏和创作软件。

FutureWave 的核心产品名叫 SmartSketch,一款触控笔操作系统 PenPoint OS 上的矢量绘图程序,也是 Flash 的前身。

PenPoint OS 没什么太大起色,被后来的主人 AT&T 关停了。当时其它的触控笔领域公司的表现也都不太好,Wacom 华歌就是其中之一。

该公司本来要参加计算机图形方面顶级会议 SIGGFRAPH,因为成本考量放弃了参加,把展位让给了 FutureWave;但是在那次大会上,SmartSketch 的销量也非常惨淡。

不过, FutureWave 的开发脚步并没有停下。90年代中期,随着计算机网络技术进步,互联网变得越来越流行,FutureWave 在 SmartSketch 的基础上增加了逐帧绘图等功能,做出的内容可以在网页上播放,产品改名为 FutureSplash Animator,支持麦金塔和 Windows 系统。

当然,有了制图工具,做出的内容也需要播放,所以他们又用 Java 写了一个播放器,名叫 FutureSplash Player——Flash Player 的前身。

Jackson 在去年的一篇博客里透露,在1995年,FutureWave 通过关系找到了时任 Adobe CEO 的 John Warnock,希望 Adobe 能够买下这两款产品。但是很遗憾,他们赶工出来的产品太过于粗糙,播放简单的动画都卡的要命,被 Warnock 婉拒了。

FutureWave 只能自己发布 FutureSplash 系列产品。虽然没能取悦 Adobe 的老板,FutureWave 的这次转型还是非常成功的,也把这家当时已经徘徊在破产边缘的小作坊公司救了回来。先是微软看到了 FutureSplash 觉得很不错,后来迪士尼和福克斯等巨头公司都开始采用 FutureSplash 开发网页和内容服务。

在迪士尼的撮合下,Macromedia 于1996年收购 FutureWave。核心产品被重新命名为 Flash。作为一家创意软件公司的 Macromedia,在当时是 Adobe 的竞争对手,在网页设计领域也是 FutureWave 的前辈。

Flash 2.0 很快于1997年发布,在今后的几年里逐渐加入了音频同步、照片导入、位图矢量化、播放控制按钮、脚本和数据存储等重要功能,逐渐成为了一个相当强大(而且在当时还算比较小巧)的网页程序开发工具。

Flash Player 也迅速获得了用户的青睐。据当时报道,到了2005年,Flash Player 已经成为了全球安装量最高的网页内容播放器,超过了 Java、QuickTime、Real 和 WMP 等。

大量的网站采用 Flash 技术驱动网页、网游、视频和音频内容。据 Ars Technica 报道,在2005年左右,为了能够植入到那些知名的 Flash 小游戏里,广告商愿意支付开发者每款游戏五位甚至六位数的费用。

最知名的 Flash 小游戏的日访客人数能够达到数百万。很多今天仍受欢迎的游戏,比如 Kingdom Rush 等,最初都是 Flash 游戏或者基于 Flash 制作。

在如今已经成为全球最大在线视频网站的 YouTube 的背后,Flash 居功甚伟。而 YouTube 的全民化,让 Flash Player 成为了不可或缺的软件。

2005年,Adobe 以34亿美元的价格通过股票互换的方式收购 Macromedia,拿下了包括 Flash、Dreamweaver 等后者的核心产品,也让这家办公/创意软件公司跻身互联网行业龙头。Jackson 透露当时的 Adobe CEO Bruce Chizen 告诉他,在那笔收购当中,仅 Flash 就值30亿美元……

2008年,Adobe 发布了 Adobe Integrated Runtime,一款用于部分替代 Flash Player 的运行时引擎,也就是后来的 Adobe AIR。

它具有许多新颖和强大的功能,比如让 Flash 开发者获得访问用户文件系统的能力,再一次扩展了 Flash 技术的版图。到2014年,Adobe AIR 达成了全球10亿安装量和10万已开发独立应用的里程碑,然后连续两年获得了消费电子展 (CES) 最佳移动应用开发产品奖。

但在当时,移动互联网技术日新月异,行业已经出现了朝着 HTML5 等被视为更先进的开源方案迁移的趋势。Flash 的确很强大,但因为安全、性能等方面的缺陷,增长也已经显示出颓势。

十多年前,当移动互联网伴随着 iPhone 和 iOS 的问世,刚开始蓬勃发展的时候,Flash 的终局似乎就已注定。

史蒂夫·乔布斯一度对 Adobe 非常看好,苹果也是 Adobe 最早的客户之一。

乔布斯 1982年就曾经想要出资500万美元买下 Adobe,虽然被拒绝,但是在股东的帮助下还是出了5倍的溢价拿到了后者19%的股权和一系列关键技术的授权。

但是当苹果开发出具有跨时代地位的 iPhone 和 iOS 的时候,乔布斯已经不再欣赏 Adobe 当时核心技术之一的 Flash 了。

2010年,鉴于一些苹果批评者抨击乔布斯拒绝在 iPhone、iPod 和 iPad 上支持 Flash 的决定,他在官网上发表公开文章评论 Flash 和 HTML5 的崛起,指出 Flash 是一项百分之百闭源的技术,稳定性和安全性太差,不足以安装到苹果移动设备上。

就像 Epic Games、Basecamp 等那些在过去一年里跟苹果正面较量的开发者所相信的那样,当年的 Adobe 也认为苹果拒绝在移动平台支持 Flash 是在刻意屏蔽以 Flash 游戏和视频为代表的海量 Flash 内容,从而保护自己的势力范围。

Adobe 为这事也跟苹果打了官司,问题上升到了反垄断,引入了美国联邦贸易委员会,甚至 Adobe 最终还赢了官司。但是,Flash 沦为过时技术,退役的终局,或许在苹果决定不在移动平台支持它的时候,就已经写下了。

Adobe 在十年前发布的广告,遗憾很多苹果移动设备的用户并看不到,因为它是用 Flash 发布的……

2011年,Adobe 宣布将不再继续为移动平台版 Flash 的开发提供资源。2015年,Adobe 更改了 Flash 的名称,将创作部分产品的名字改为 Animate,还发布了官方博客,鼓励内容创作者采用“新的网页标准”——也比如 HTML5——来开发内容。

2017年7月25日,Adobe 终于官宣了 Flash 的产品寿命结束计划:2020年12月31日,终止 Flash Player 的开发支持工作;2021年1月12日,Flash Player 将不再支持播放 Flash 内容;同时,该公司“强烈建议”所有用户立即在系统中卸载 Flash Player。

同一天,谷歌宣布将在 Chrome 浏览器中逐渐淘汰对 Flash 的支持。这个过程和 Adobe 基本同步,持续了数年:一开始先是在用户浏览带有 Flash 内容的网页时询问是否要运行 Flash 支持;然后是默认屏蔽 Flash,用户需要经过一系列操作才能为网站开启白名单;最终于2020年底完全屏蔽 Flash 内容。

今天已经是2021年。我们终于可以和陪伴了20多年的 Flash 说再见了。

如何完全卸载 Flash?

Adobe 建议用户立即卸载 Flash Player。和 Adobe 的其他 CC 系列产品比较起来,卸载 Flash Player 并没那么复杂。

首先,如果你没有安装过独立的 Flash Player,只是在浏览器上使用的话,包括 Chrome、Edge、Firefox 等在内的主流浏览器已经开始屏蔽 Flash 内容。

如果你曾经手动为某些网站开启过 Flash,可以在浏览器的设置菜单里关闭。(以 Chrome 为例:设定→隐私和安全→网站设定→其他设定→Flash)

在 Windows 上,如果用户曾经安装过独立的 Flash Player,Adobe 建议用户首先关闭所有浏览器和可能使用 Flash 技术的游戏等软件。然后,用户可以在 Adobe 官网下载 Flash Player 卸载器,直接运行并按照提示操作即可。

然后用户需要确保删除所有 Flash Player 的相关文件夹和文件,然后重启电脑。这些文件的路径可能包括:

C:Windowssystem32MacromedFlash

C:WindowsSysWOW64MacromedFlash

%appdata%AdobeFlash Player

%appdata%MacromediaFlash Player

等。

在 macOS 上,用户需同样需要到 Adobe 官网下载对应操作系统版本的卸载器,关闭所有浏览器和可能使用 Flash 技术的软件,然后按照卸载器的提示操作即可。

同理,用户可能需要删除以下路径的文件夹和全部内容:

/Library/Preferences/Macromedia/Flash Player

/Library/Caches/Adobe/Flash Player
责编AJX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FlaSh
    +关注

    关注

    10

    文章

    1622

    浏览量

    147760
  • 互联网
    +关注

    关注

    54

    文章

    11108

    浏览量

    103019
  • 软件
    +关注

    关注

    69

    文章

    4781

    浏览量

    87164
收藏 人收藏

    评论

    相关推荐

    深入了解Java泛型——从前世今生到PECS原则

    本文主要介绍泛型诞生的前世今生,特性,以及著名PECS原则的由来。 在日常开发中,必不可少的会使用到泛型,这个过程中经常会出现类似“为什么这样会编译报错?”,“为什么这个列表无法添加
    的头像 发表于 11-21 11:45 74次阅读
    深入了解Java泛型——从<b class='flag-5'>前世</b><b class='flag-5'>今生</b>到PECS原则

    400Hz中频电源前世今生未来

    400Hz中频电源是一种能够产生频率为400Hz的交流电的装置,过功率电子器件对电网提供的工频交流电进行整流、滤波、逆变等一系列处理,最终输出稳定的400Hz交流电。400Hz中频电源广泛用于航空、军事等领域,具有输入输出电压稳定、频率响应快等特点,能高效节能,易于集成控制,应用于航空、船舶、铁路、医疗等领域。
    的头像 发表于 11-08 09:41 175次阅读

    带你揭秘:功率放大器的前世今生~

    关于功率放大器功率放大器,作为一种可放大交直流信号,在给定失真率条件下,能产生最大功率输出以驱动某一负载的实验室仪器,在MEMS测试、超声波测试、电磁场驱动、无线电能传输、院校电子实验测试等领域都有良好应用,那么你知道功放的发展史吗?今天Aigtek就给大家分享一下~功率放大器发展史功率放大器的发展史可以追溯至20世纪初,随着电子技术的不断进步,功率放大器也
    的头像 发表于 11-07 08:00 730次阅读
    带你揭秘:功率放大器的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>~

    NAND Flash和NOR Flash哪个更好

    在讨论NAND Flash和NOR Flash哪个更好时,我们需要从多个维度进行深入分析,包括它们的技术特性、应用场景、成本效益以及未来发展趋势等。
    的头像 发表于 07-29 16:59 1275次阅读

    NAND Flash与NOR Flash:坏块管理需求的差异解析

    NOR Flash和NAND Flash是两种不同类型的闪存技术,它们在存储单元的连接方式、耐用性、坏块管理等方面存在差异。
    的头像 发表于 07-10 14:25 1855次阅读
    NAND <b class='flag-5'>Flash</b>与NOR <b class='flag-5'>Flash</b>:坏块管理需求的差异解析

    亚马逊拟收购印度流媒体MX Player部分资产

    近日,亚马逊与印度知名视频流媒体服务MX Player达成了一项引人注目的收购协议。据悉,亚马逊将收购MX Player的部分资产,而此次交易的估值不到1亿美元,远低于市场对该公司的预期。
    的头像 发表于 06-07 15:56 501次阅读

    使用官方的UVC例程时,使用player.py在PC上测试无法显示图像是为什么?

    使用官方的UVC例程时,使用player.py在PC上测试无法显示图像。 IDF环境是esp-idf-v5.1.2
    发表于 06-06 06:10

    嵌入式系统的前世今生

    一、初始阶段(1960-1970)1960年代末:嵌入式系统的概念开始形成,最初用于专业的军事和航天应用,例如用于导弹控制的计算机系统。微处理器的诞生:1971年,英特尔推出了4004芯片,这是世界上第一个商用微处理器。它的出现标志着嵌入式系统发展的一个里程碑,使得更小型、成本更低的电子设备设计成为可能。二、发展阶段(1980年代)个人计算机(PC)的普及:
    的头像 发表于 04-12 08:11 1502次阅读
    嵌入式系统的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>

    FPGA中竞争与冒险的前世今生

    竞争冒险:在组合电路中,当逻辑门有两个互补输入信号同时向相反状态变化时,输出端可能产生过渡干扰脉冲的现象,称为竞争冒险。那么 FPGA 产生竞争冒险的原因是什么呢? 信号在 FPGA 器件内部通过连线和逻辑单元时,都有一定的延时。 延时的大小与连线的长短和逻辑单元的数目有关 同时还受器件的制造工艺、工作电压、温度等条件的影响 信号的高低电平转换也需要一定的过渡时间 。由于以上存在的因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化往往会出现一些不正确的尖峰信号,这些尖峰信号称为毛刺 。如果一个组合逻辑电路中有毛刺出现,就说明该电路存在冒险 。与分立元件不同,由于 PLD 内部不存在寄生电容电感,这些毛刺将被完整的保留并向下一级传递,因此毛刺现象在 PLD 、 FPGA 设计中尤为突出 。 毛刺的累加 将会影响整个设计的可靠性和精确性 。因此判断逻辑电路中是否存在冒险以及如何避免冒险是 FPGA 设计人员必须要考虑的问题。 接下来我们就要考虑如何消除冒险 ,消除冒险的方式有一下几种: 1、利用冗余项消除毛刺 函数式和真值表所描述的是静态逻辑,而竞争则是从一种 稳态到另一种稳态的过程。因此竞争是动态过程,它发生在输入变量变化时。此时,修改卡诺图,增加多余项,在卡诺图的两圆相切处增加一个圆,可以消除逻辑冒险。但该法对于计数器型产生的毛刺是无法消除的。 2、采用格雷码 我们可以通过改变设计,破坏毛刺产生的条件,来减少毛刺的发生。例如,在数字电路设计中,常常采用格雷码计数器取代普通的二进制计数器,这是因为格雷码计数器的输出每次只有一位跳变 消除了竞争冒险的发生条件,避免了毛刺的产生。 3、采样法 由于冒险出现在变量发生变化的时刻,如果待信号稳定之后加入取样脉冲,那么就只有在取样脉冲作用期间输出的信号才能有效。这样可以避免产生的毛刺影响输出波形。 一般说来,冒险出现在信号发生电平转换的时刻,也就是说在输出信号的建立时间内会发生冒险,而在输出信号 的保持时间内是不会有毛刺信号出现的。如果在输出信号的保持时间内对其进行采样,就可以消除毛刺信号的影响。 4、吸收法 增加输出滤波,在输出端接上小电容C可以滤除毛刺 。但输出波形的前后沿将变坏,在对波形要求较严格时,应再加整形电路,该方法不宜在中间级使用。 5、延迟办法 因为毛刺最终是由于延迟造成的,所以可以找出产生延迟的支路。对于相对延迟小的支路,加上毛刺宽度 的延迟可以消除毛刺。 还可以用高频时钟来驱动一移位寄存器,待延时信号作数据输入,按所需延时正确设置移位寄存器的级数 ,移位寄存器的输出即为延时后的信号。 当然最好的就是,在设计之初,就对竞争冒险进行规避,具体规避方法有: 1、在设计中每一个模块中只用一个时钟,避免使用多时钟设计,同时避免使用主时钟分频后的二次时钟作为时序器件的时钟输入, 因为时钟偏斜会比较大 。 2、设计译码逻辑电路时必须十分小心,因为译码器和比较器本身会产生尖峰,容易产生毛刺,把译码器或比较器的输出直接连到时钟输入端或异步清除端,会造成严重的后果。 3、在设计中 应该尽量避免隐含 RS 触发器的出现。一般要控制输出被直接反馈到输入端,采用反馈环路会出现隐含 RS 触发器,其对输入尖峰和假信号很敏感,输入端有任何变化都有可能使输出值立刻改变,此时易造成毛刺的产生,导致时序的严重混乱。 4、在设计电路时 要用寄存器和触发器设计电路,尽量不要用锁存器,因它对输入信号的毛刺太敏感。如果坚持用锁存器设计必须保证输入信号绝对没有毛刺,且满足保持时间。 5、在设计中充分利用资源 ,因为 大部分 FPGA 器件都为时钟、复位、预置等信号提供特殊的全局布线资源,要充分利用这些资源。 6、在设计中 不论是控制信号还是地址总线信号、数据总线信号,都要采用另外的寄存器,以使内部歪斜的数据变成同步数据。 7、在设计中 应该尽 量避免使用延迟线,因它对工艺过程的变化极为敏感,会大大降低电路的稳定性和可靠性,并将为测试带来麻烦。 8、在设计中 对所有模块的输入时钟、输入信号、输出信号都用D触发器或寄存器进行同步处理,即输出信号直接来自触发器或寄存器的输出端。这样可以消除尖峰和毛刺信号。
    发表于 02-21 16:26

    探索世界军用无人机的前世今生

    第一次世界大战进入尾声时,动力飞行还完全是一个新生的事物。十多年前,莱特兄弟刚在北卡罗来纳州的基蒂霍克(Kitty Hawk)的沙丘间完成了原始双翼飞机试飞。
    发表于 01-23 09:57 1560次阅读

    Rust实现的开源Flash Player模拟器

    2017 年 7 月,Adobe 宣布将在 2020 年底停止对 Flash 的支持。随着 Flash 被淘汰,互联网上大量关于 Flash 的优秀资源也将因此而埋没。
    的头像 发表于 01-18 09:55 820次阅读
    Rust实现的开源<b class='flag-5'>Flash</b> <b class='flag-5'>Player</b>模拟器

    机器人的前世今生

    机器人主要是用于代替人工作的,首先它是一个机器。对于传统的机器,被使用者设计制造出来后,它的工作步骤、路径都是确定的。机器的设计也是根据它所应用的工作而进行的。
    发表于 12-29 14:54 523次阅读
    机器人的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>

    二极管的前世今生

    二极管的前世今生
    的头像 发表于 12-14 18:35 1088次阅读
    二极管的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>

    常见的几种功率半导体器件

    半导体是我们生活中使用的电器里比较常用的一种器件,那么你对半导体有多少了解呢?今天我们就从最基础的半导体功率器件入手,全面了解半导体的“前世今生”。
    的头像 发表于 12-14 09:25 1148次阅读

    NAND Flash和NOR Flash的区别

    NAND Flash和NOR Flash是两种常见的闪存类型。
    的头像 发表于 11-30 13:53 2294次阅读
    NAND <b class='flag-5'>Flash</b>和NOR <b class='flag-5'>Flash</b>的区别