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配置。本文就是修改配置…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
SQL Server 触发器调用存储过程实现发送 HTTP 请求
文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...
Vue 实例的数据对象详解
Vue 实例的数据对象详解 在 Vue 中,数据对象是响应式系统的核心,也是组件状态的载体。理解数据对象的原理和使用方式是成为 Vue 专家的关键一步。我将从多个维度深入剖析 Vue 实例的数据对象。 一、数据对象的定义方式 1. Options API 中的定义 在 Options API 中,使用 …...