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 的特点:可以用较低的成本实现较好性能的跨平台。
相关文章:

LG 选择 Flutter 来增强其智能电视操作系统 webOS
可以这个话题会让大多数人困惑,2024 年了为什么还会冒出 webOS 这种老古董?然后 LG 为什么选择 webOS ?现在为什么又选择 Flutter ? 其实早在 Google I/O 发布 Flutter 3.22 版本的时候,就提到了 LG 选择 Flutter 来增…...

[ACM独立出版] 2024年虚拟现实、图像和信号处理国际学术会议(VRISP 2024,8月2日-4)
2024年虚拟现实、图像和信号处理国际学术会议(VRISP 2024)将于2024年8月2-4日在中国厦门召开。 VRISP 2024将围绕“虚拟现实、图像和信号处理”的最新研究领域,为来自国内外高等院校、科学研究所、企事业单位的专家、教授、学者、工程师等提供…...

ASP.NET Core中创建中间件的几种方式
前言 今天我们一起来盘点一下在ASP.NET Core应用程序中添加和创建中间件常见的四种方式。 中间件介绍 ASP.NET Core中间件(Middleware)是用于处理HTTP请求和响应的组件,它们被安排在请求处理管道中,并按顺序执行。中间件的设计是为…...

Atcoder ABC351 A-E 题解
A: 打卡题 题目描述 一中队和二中队正在进行一场棒球比赛,一中队是第一棒。 目前,比赛已进行到第九局上半,第九局下半即将开始。 一中队在 第i局 (1 < i < 9) 上半场得到了 Ai 分,二中队在 第j局 (1 < j < 8) 下…...

【终极指南】从零开始征服机器学习:初学者的黄金路线图
踏入机器学习的世界,对许多初学者而言,无疑是一场既兴奋又略带忐忑的冒险。尤其对于那些非数学或计算机专业背景的同学,或是已经在职场打拼的朋友们,寻找一条适合自己的入门路径,显得尤为重要。鉴于此,本文…...

MongoDB自学笔记(三)
一、前文回顾 上一篇文章中我们学习了更新操作,以及讲解了部分的更新操作符,今天我们继续学习剩余的更新操作符。 二、更新操作符 1、$rename 语法:{ $rename: { < field1 >: < newName1 >, < field2 >: < newName2…...
编程中的智慧之设计模式三
深入探索设计模式:实际应用和优化策略 在前两篇文章中,我们详细探讨了创建型模式、结构型模式、行为模式和架构模式的基本概念及其在Java中的实现。在本文中,我们将进一步探讨如何在实际项目中应用和优化这些模式,尤其是如何在大…...

《YOLOv10改进实战专栏》专栏介绍 专栏目录
《YOLOv10改进实战专栏》介绍及目录 YOLOv10官方仓库地址 专栏地址:点击跳转 专栏导航如下: 🎀基础入门篇🎀 万字长文,小白新手怎么开始做YOLO实验,从零开始教!整体思路在这里,科研指…...

Python酷库之旅-第三方库Pandas(030)
目录 一、用法精讲 79、pandas.Series.dtype属性 79-1、语法 79-2、参数 79-3、功能 79-4、返回值 79-5、说明 79-6、用法 79-6-1、数据准备 79-6-2、代码示例 79-6-3、结果输出 80、pandas.Series.shape属性 80-1、语法 80-2、参数 80-3、功能 80-4、返回值 …...
神经网络中的激活函数举例,它们各自的特点,以及哪个激活函数效果更好,为什么
sigmoid: \(\sigma(x)1/(1e^{-x})\); 优:将数值压缩到 0 1,导数为 \(\sigma(x)(1-\sigma(x))\) 好算。劣:输出均值非0(0.5),梯度消失(Gradient vanishing)每次…...

【树莓派3B+】控制引脚输出高低电平
前言一、安装RPI.GPIO库二、编写简单的输出高低电平的程序三、运行程序总结 前言 首先检查一下自己的板子有没有带库 我这个是有的。 ok,正式进入步骤 一、安装RPI.GPIO库 如果还没有安装RPi.GPIO库,可以通过以下命令在树莓派上安装: p…...

【Redis7】高阶篇
1 Redis单线程 VS 多线程(入门篇) 1.1 面试题 redis到底是单线程还是多线程? IO多路复用听说过吗? redis为什么快? 1.2 Redis为什么选择单线程? 1.2.1 是什么 这种问法其实并不严谨,为啥这么说呢? Redis的版本…...

在学习使用LabVIEW的过程中,需要注意哪些问题?
在学习使用LabVIEW的过程中,需要注意以下问题: 1. 基础知识 图形化编程思维: LabVIEW采用图形化编程方式,与传统的文本编程语言有很大不同,需要适应这种新的编程思维方式。数据流概念: 理解LabVIEW的核心数…...

网络编程-TCP/IP
网络概述 网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。 每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务 网络体系结构…...
php在服务器上部署可视化运维工具详细列表
如果你的项目很小,可以用宝塔。但对于并发大的服务器管理,选择适合的工具非常重要。 目录 以下是一些免费且适合高并发管理的服务器管理工具推荐: 1Panel: Portainer: Webmin: Cockpit: …...
Linux中的文件夹作用
在Linux系统中,每个目录都有其特定的用途,下面我用大白话来解释一下各个主要目录的作用: / (根目录):这是Linux文件系统的起点,所有其他目录都是从这里延伸出去的。你可以把它想象成你家里的门厅,所有房间的…...
【C++】C++中的assign函数详解
目录 一.assign函数是什么 二.assign函数怎么用 一.assign函数是什么 在C中, assign 是 std::string 类的一个成员函数,用于给字符串对象赋值,可以替换字符串对象中的内容为另一个字符串或字符串的一部分。 std::string 的 assign 函…...

Hadoop3:MR程序的数据倾斜问题处理
一、数据倾斜 什么是数据倾斜? 学过Redis集群的都知道数据倾斜这个问题。 就是大量数据,分配不均匀的现象。 二、MR数据倾斜 1、怎么判断出现数据倾斜? 数据频率倾斜——某一个区域的数据量要远远大于其他区域。 数据大小倾斜——部分记…...
Mojo 编程语言简介
Mojo 是一种新兴的编程语言,旨在结合 Python 的易用性与 C 的高性能,特别是面向高性能计算、机器学习和系统编程等领域。Mojo 的设计目标是提供一种既具备高级语言灵活性,又能够高效运行的编程工具。 主要特性 高性能:通过高级编…...

【有效验证】解决SQLyog连接MYSQL的错误 1251 - Client does not support
目录 一、原因分析: 二、进入到mysql 三、查看当前加密方式 四、更改加密方式 五、查看是否成功 前言:使用一个开源软件使用sqlyog、navcat都报1251错误,网上都是提示升级客户端,还有一种就是修改mysql配置。本文就是修改配置…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...

vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...

均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...

Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...

windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...