LG 选择 Flutter 来增强其智能电视操作系统 webOS

可以这个话题会让大多数人困惑,2024 年了为什么还会冒出 webOS 这种老古董?然后 LG 为什么选择 webOS ?现在为什么又选择 Flutter ?

其实早在 Google I/O 发布 Flutter 3.22 版本的时候,就提到了 LG 选择 Flutter 来增强其智能电视操作系统 webOS,并预计在 2025 年发布。

而在 2024/7/15 的时候,LG 官方也正式官宣:“New and Successful Experiment of webOS with Flutter for Better Performance and Playful Experience” 。

https://webostv.developer.lge.com/news/2024-07-15-new-and-successful-experiment-of-webos-with-flutter

那么什么是 webOS ?它为什么又是一个 TV 的 OS

WebOS 顾名思义是 Web 操作系统的缩写,是 LG 独家拥有的基于 Linux 的操作系统,主要集成到他们的智能电视系统中,所以它是属于基于 Linux 内核的多任务智能电视操作系统

但是其实它并不是 LG 发起,WebOS 最初由 Palm 于 2009 年作为移动操作系统推出,最初在多款 Palm 和 HP 智能手机中投入使用,但是众所周知,它凉了,于是 2013 年,LG 从 HP 收购了 webOS,导致 HP 决定将 webOS 开源

后续,在 LG 的主导下,WebOS 经过进一步修改,转变为智能电视操作系统,于是 WebOS TV 就诞生了,此后 LG 的 TV 基本路线定为 webOS ,在应用层面,WebOS TV 以基于 Web 的技术为基础。

作为 2024 年仅剩在 TV 领域还能“孤身”抗衡 Android TV 的产品,其存在的地位主要还是依托于 LG 本身的市场占有,WitDisplay消息,LG 2023 年在全球 OLED 电视市场以 53% 的占有率排名第一,LG 电子已经连续 11 年在 OLED 电视市场排名第一,而在全球 TV 的本身占有率上, LG 也占据了一席之地:

注意,这里的第一仅是 OLED 市场。

例如在 webOS 上, LG 的 Magic Remote 可以让你感觉就像在 Mac 或 PC 上使用鼠标一样使用遥控,这算是 LG TV 的特色之一,当然,也是由于 webOS ,目前 OS 也缺乏对侧载应用的支持。

其实 LG 在 2021 年就开始重新准备调整 TV 的内置软件,主要是希望改善应用启动和运行时的性能,在原本的场景下,webOS 下的大多数 App 都是使用 React 开发,LG 的开发团队对于 React 的开发效率十分满意,但是在在启动时间、内存消耗和响应能力的进一步优化出现了阻碍。

尽管在经过大量复杂的优化后,产品达到了足够好的性能基准,但 LG 开始寻求另外可以实现目的且成本更低的技术。

而此时,一位工程师建议用 Flutter 重写 LG 上的日语电子节目指南 (EPG),而完成后的第一个 Flutter 原型轻松超越了之前 LG 团队的目标基准,无需任何优化

在使用 Flutter 重写的版本,启动速度比原始应用快两倍,运行时内存消耗更少,使用起来更灵敏,而目前这款 Flutter 应用目前已安装在日销售的 2024 台 webOS 电视中。

随着日语 EPG 重写成功, LG 决定使用 Flutter 重写更多应用,包括用户在使用 LG 电视时与之交互的主要软件。

所以 LG 最终决定在 2025 年推出的全球电视中全面引入 Flutter 应用,并在 2026 年推出更多 Flutter 应用,由 Flutter 驱动的 webOS 版本也将通过 webOS Re:New 程序在之前的型号上运行。

总的来说,这将使 Flutter 进入全球消费者家庭中数千万台 LG 电视。

此外, LG 希望发布工具来帮助所有 Flutter 开发人员参与到 LG 电视开发里,例如:通过 Flutter 将高性能休闲游戏直接带入 LG 电视,例如采用 Flutter 的 GameToolkit 或者 Flame 开发游戏,如果以后支持 Impeller ,也许还会有 3D 支持。

如果对于这个感兴趣的,可以看看 LG 目前还在举办一场的黑客马拉松(一等奖 10 万美元):https://weboshackathon.lge.com/,https://webostv.developer.lge.com/develop/flutter/how-to-build-flutter-app-for-webos,目前需要使用 Flutter webOS CLI 和 Plugins 去构建 webOS TV 得 App,不过目前只有与 LG Electronics 签署了保密协议的开发人员才能下载 Flutter webOS SDK(CLI、插件、指南等)。

总的来说,LG 是 Flutter 在 TV 领域的一次新的尝试,并且它是在脱离了 Android 平台的场景下实现的支持,虽然 webOS 并不是什么流行的系统,但是这也体现出了 Flutter 的特点:可以用较低的成本实现较好性能的跨平台。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/47298.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tinymce富文本支持word内容同时粘贴文字图片上传 vue2

效果图 先放文件 文件自取tinymce: tinymce富文本简单配置及word内容粘贴图片上传 封装tinymce 文件自取&#xff1a;tinymce: tinymce富文本简单配置及word内容粘贴图片上传 页面引用组件 <TinymceSimplify refTinymceSimplify v-model"knowledgeBlockItem.content…

【leetcode】 字符串相乘(大数相乘、相加)

记录一下大数相乘相加方法&#xff1a; 给定两个以字符串形式表示的非负整数 num1 和 num2&#xff0c;返回 num1 和 num2 的乘积&#xff0c;它们的乘积也表示为字符串形式。 注意&#xff1a;不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 示例 1: 输入: nu…

vue3前端开发-执行npm run dev提示报错怎么解决

vue3前端开发-执行npm run dev提示报错怎么解决&#xff01;今天在本地安装初始化了一个vue3的案例demo。但是当我执行npm run dev想启动它时报错了说&#xff0c;找不到dev。让我检查package.json文件是否包含dev。如下图所示&#xff1a; 实际上&#xff0c;不必惊慌&#xf…

iOS ------ tagged Pointer 内存对齐

一&#xff0c;tagged Pointer 为了节省内存和提高执行效率&#xff0c;苹果在64bit程序中引入了Tagged Pointer计数&#xff0c;用于优化NSNumber, NSDate, NSString等小对象的存储。一个指针或地址区域&#xff0c;除了放对象地址之外&#xff0c;也可以放其他额外的信息&am…

240717.LeetCode——2974.最小数字游戏

题目描述 你有一个下标从 0 开始、长度为 偶数 的整数数组 nums &#xff0c;同时还有一个空数组 arr 。Alice 和 Bob 决定玩一个游戏&#xff0c;游戏中每一轮 Alice 和 Bob 都会各自执行一次操作。游戏规则如下&#xff1a; 每一轮&#xff0c;Alice 先从 nums 中移除一个 …

转移C盘中的conda环境(包括.condarc文件修改,environment.txt文件修改,conda报错)

conda环境一般是默认安装到C盘的&#xff0c;若建立多个虚拟环境&#xff0c;时间长了&#xff0c;容易让本不富裕的C盘更加雪上加霜&#xff0c;下面给出将conda环境从C盘转移到D盘的方法。 目录 电脑软硬件转移方法查看当前conda目录转移操作第一步&#xff1a;.condarc文件修…

Apache Flink 入门

零、概述 Apache Flink 是一个高性能的开源分布式流处理框架&#xff0c;专注于实时数据流的处理。 它设计用于处理无界和有界数据流&#xff0c;在内存级速度下提供高效的有状态计算。 Flink 凭借其独特的Checkpoint机制和Exactly-Once语义&#xff0c;确保数据处理的准确性…

只用 CSS 能玩出什么花样?

在前端开发领域&#xff0c;CSS 不仅仅是一种样式语言&#xff0c;它更像是一位多才多艺的艺术家&#xff0c;能够创造出令人惊叹的视觉效果。本文将带你探索 CSS 的无限可能&#xff0c;从基本形状到动态动画&#xff0c;从几何艺术到仿生设计&#xff0c;只用 CSS 就能玩出令…

Vscode中Github copilot插件无法使用(出现感叹号)解决方案

1、击扩展或ctrl shift x ​​​​​​​ 2、搜索查询或翻找到Github compilot 3、点击插件并再左侧点击登录github 点击Sign up for a ... 4、跳转至github登录页&#xff0c;输入令牌完成登陆后返回VScode 5、插件可以正常使用

微服务实战系列之玩转Docker(三)

前言 镜像&#xff08;Image&#xff09;作为Docker的“水源”&#xff0c;取之于它&#xff0c;用之于它。这对于立志成为运维管理的撒手锏——Docker而言&#xff0c;重要性不言而喻。 我们在虚拟机时代&#xff08;当然现在依然ing…&#xff09;&#xff0c;如何快速完成…

成为CMake砖家(5): VSCode CMake Tools 插件基本使用

大家好&#xff0c;我是白鱼。 之前提到过&#xff0c;白鱼的主力 编辑器/IDE 是 VSCode&#xff0c; 也提到过使用 CMake Language Support 搭配 dotnet 执行 CMakeLists.txt 语法高亮。 对于阅读 CMakeLists.txt 脚本&#xff0c; 这足够了。 而在 C/C 开发过程中&#xff…

NXP i.MX8系列平台开发讲解 - 3.19 Linux TTY子系统(二)

专栏文章目录传送门&#xff1a;返回专栏目录 Hi, 我是你们的老朋友&#xff0c;主要专注于嵌入式软件开发&#xff0c;有兴趣不要忘记点击关注【码思途远】 目录 1. Linux 串口驱动 1.1 Uart 驱动注册流程 1.2 uart 操作函数 1.3 line discipline 2. Linux tty应用层使用…

FPGA 实现DDR4的读写

1 硬件设计 FPGA 端&#xff1a; DDR4: 2 验证方案 3 仿真验证 4 DDR4 下板验证

《昇思25天学习打卡营第25天|第10天》

今天是打卡的第十天&#xff0c;今天开始学应用实践中的LLM原理和实践&#xff0c;今天学的是基于MindSpore实现BERT对话情绪识别。最先了解的是BERT模型的简介&#xff08;来自变换器的双向编码器表征量&#xff08;Bidirectional Encoder Representations from Transformers&…

NodeJS技巧:在循环中管理异步函数的执行次数

背景介绍 在现代Web开发中&#xff0c;NodeJS因其高效的异步处理能力而备受青睐。尤其在数据抓取、网络爬虫等应用场景中&#xff0c;NodeJS的非阻塞I/O特性使其成为不二之选。然而&#xff0c;在实际编程过程中&#xff0c;我们经常会遇到一个棘手的问题——如何在循环中控制…

各地跨境电子商务示范区工具变量DID数据(2010-2022年)

数据来源&#xff1a;参考李震等&#xff08;2023&#xff09;的做法&#xff0c;从官方网站上搜集整理了我国跨境电子商务示范区名单与上市公司进行匹配制作。时间跨度&#xff1a;2010-2022年数据范围&#xff1a;上市企业包含指标&#xff1a; stock year 证券简称 In…

个性化画册制作方法,快来看看

画册&#xff0c;不仅仅是一本书&#xff0c;它是记忆的宝库&#xff0c;是时光的缩影。随着技术的进步&#xff0c;个性化画册的制作已经不再是一件困难的事情。今天&#xff0c;就让我来为大家揭开个性化画册制作的神秘面纱&#xff0c;带你一起创造独一无二的回忆。 第一步&…

数据库内核研发学习之路(三)创建postgres内置函数

本章之前已经讲明白了我们的postgres如何进行编译安装&#xff0c;这是很重要的一步&#xff0c;接下来就是学会对postgres进行小的改动&#xff0c;然后保证依然能够顺利编译安装运行&#xff01; 本章续讲内容如何创建一个内置函数。 1、内置函数和用户自定义函数的区别 熟…

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【查询密钥别名集(ArkTS)】

查询密钥别名集(ArkTS) HUKS提供了接口供应用查询密钥别名集。 开发步骤 初始化密钥属性集。用于查询指定密钥别名集TAG&#xff0c;TAG仅支持HUKS_TAG_AUTH_STORAGE_LEVEL。调用接口[listAliases]&#xff0c;查密钥别名集。 HarmonyOS与OpenHarmony鸿蒙文档籽料&#xff1…

入门小结:JavaScript小白语法

一、变量 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> &…