探索AI视频生成新纪元:文生视频Sora VS RunwayML、Pika及StableVideo——谁将引领未来

news2024/12/24 9:38:35

探索AI视频生成新纪元:文生视频Sora VS RunwayML、Pika及StableVideo——谁将引领未来

sora文生视频,探索AI视频生成新纪元

由于在AI生成视频的时长上成功突破到一分钟,再加上演示视频的高度逼真和高质量,Sora立刻引起了轰动。在Sora横空出世之前,Runway一直被视为AI生成视频的默认选择,尤其是自去年11月推出第二代模型以来,Runway还被称为“AI视频界的MidJourney”。第二代模型Gen-2不仅解决了第一代AI生成视频中每帧之间连贯性过低的问题,在从图像生成视频的过程中也能给出很好的结果。

Sora最震撼的技术突破之一在于其输出的视频时长。Runway能够生成4秒长的视频,用户可以将其最多延长至16秒,是AI生成视频在2023年所能达到的最长时长纪录。Stable Video也提供4秒的视频,Pika则提供3秒的视频。在这一方面,Sora以1分钟的时长向竞争对手们提出了挑战。本质上,Sora和Pika、Runway采用了相似的底层模型,即Diffusion扩散模型。不同之处在于,Sora把其中的实现逻辑进行了变化,将U-Net架构替换成了Transformer架构。

1.文生视频效果展示对比:

1.1 sora之前模型效果

  • StableVideo效果展示

可以看到效果一般能比较明显看出差别

1.2 主流视频生成模型对比[Sora VS RunwayML、Pika]

让机器生成视频,难点在于“逼真”。比如一个人在同一个视频里的长焦和短焦镜头里外观不会变化;随着镜头转动,站在山崖上的小狗应该跟山崖保持一致的移动;咬一口面包,面包就会少一块并出现牙印……这些逻辑对人来说似乎显而易见,但AI模型很难领悟到前一帧和后一帧画面之间的各种逻辑和关联。

首先要强调下生成式AI模型跟传统信息检索的区别。传统检索是按图索骥,从数据库固定位置调取信息,准确度高,但不具备举一反三的能力。而生成式AI模型不会去记住数据本身,而是从大量数据中去学习和掌握生成语言、图像或视频的某种方法,产生难以解释的“涌现”能力。

图源:https://twitter.com/samsheffer/status/1758205467682357732_

当然,随着 Sora 加入这场视频生成领域的战争,受到冲击最大的是同类竞品模型,比如 Runway、Pika、SDV、谷歌和 Meta。看到 Sora 的生成效果之后,很多人认为,Sora 对这些「前辈」来了一波降维打击。事实真的如此吗?有推特博主已经做了对比。

这位博主给 Sora、Pika、Runway、Stable Video 四个模型输入了相同的 prompt:

美丽、白雪皑皑的东京熙熙攘攘,镜头穿过熙熙攘攘的城市街道,跟随几个人享受美丽的雪天,在附近的摊位购物,绚丽的樱花花瓣随着雪花随风飘扬。

可以看到,相比于其他三个视频生成模型,Sora 在生成时长、连贯性等方面都有显著的优势。

图源:https://twitter.com/gabor/status/1758282791547232482_

这样的对比还有很多,比如输入相同的 prompt「一窝金毛幼犬在雪地里玩耍,它们的头从雪中探出来,被雪覆盖。」

图源:https://twitter.com/DailyUpdatesNet/status/1758646902751670355_

再比如输入相同的 prompt「几只巨大的毛茸茸的猛犸象踏着白雪皑皑的草地走来,长长的毛毛在风中轻轻飘动,远处覆盖着积雪的树木和雄伟的雪山,午后的阳光、缕缕云彩和远处高高的太阳营造出温暖的光芒,低相机视野令人惊叹地捕捉到了大型毛茸茸的哺乳动物与美丽的摄影,景深。」

虽然 Runway 和 Pika 表现都不错,但 Sora 的生成质量具有压倒性的优势。

图源:https://twitter.com/keitowebai/status/1758384152670577136_

还有人对比了 Pika 1.0(去年四月)与 Sora,感叹不到 1 年的时间,AI 生成视频已经发生了翻天覆地的变化。

原视频:https://twitter.com/QuintinAu/status/1758536835595124910_

与此同时,更多创作者也晒出了他们使用 Sora 生成的视频,进一步验证了 Sora 的超强视频生成能力。

比如输入 prompt「一座巨大的大教堂里全是猫。放眼望去,到处都是猫。一个男人走进大教堂,向坐在王座上的巨型猫王鞠躬。」

_

图源:https://twitter.com/billpeeb/status/1758650919430848991_

比如输入 prompt「一座幽灵般的鬼屋,有友好的杰克灯笼和鬼魂人物,欢迎捣蛋鬼来到入口,倾斜移位摄影。」

图源:https://twitter.com/billpeeb/status/1758658884582142310_

比如输入 prompt「一个由水制成的人行走着,参观了一个美术馆,里面有许多不同风格的美丽艺术品。」

图源:https://twitter.com/_tim_brooks/status/1758666264032280683_

比如输入 prompt「人们在海滩放松的真实视频,一条鲨鱼从水中冒了出来,让所有人大吃一惊。」

图源:https://twitter.com/_tim_brooks/status/1758655323576164830_

2.Sora-OpenAI技术报告

技术报告地址 https://openai.com/research/video-generation-models-as-world-simulators

OpenAI在技术报告里总结了一些以前模型常用的视频生成和建模方法,包括循环网络、生成式对抗网络、自回归Transformer和扩散模型。它们只能生成固定尺寸、时长较短的视频。

OpenAI 在技术报告中重点展示了:
(1)将所有类型的视觉数据转化为统一表示,从而能够大规模训练生成模型的方法;
(2)对 Sora 的能力和局限性进行定性评估。

最近一段时间,视频生成是 AI 领域的重要方向,先前的许多工作研究了视频数据的生成建模方向,包括循环网络、生成对抗网络、自回归 transformer 和扩散模型。这些工作通常关注一小类视觉数据、较短的视频或固定大小的视频。与之不同的是,OpenAI 的 Sora 是视觉数据的通用模型,它可以生成不同时长、长宽比和分辨率的视频和图像,而且最多可以输出长达一分钟的高清视频。

2.1 视觉数据转为 Patches

大型语言模型通过在互联网规模的数据上进行训练,获得了出色的通用能力中,OpenAI 从这一点汲取了灵感。LLM 得以确立新范式,部分得益于创新了 token 使用的方法。研究人员们巧妙地将文本的多种模态 —— 代码、数学和各种自然语言统一了起来。在这项工作中,OpenAI 考虑了生成视觉数据的模型如何继承这种方法的好处。大型语言模型有文本 token,而 Sora 有视觉 patches。此前的研究已经证明 patches 是视觉数据模型的有效表示。OpenAI 发现 patches 是训练生成各种类型视频和图像的模型的可扩展且有效的表示。

在更高层面上,OpenAI 首先将视频压缩到较低维的潜在空间,然后将表示分解为时空 patches,从而将视频转换为 patches。

  • (自回归)长视频生成

Sora的一个重大突破是能够生成非常长的视频。制作2秒视频和1分钟视频的区别是巨大的。在Sora中,这可能是通过允许自回归采样的联合帧预测来实现的,但一个主要挑战是如何解决误差积累并保持质量/一致性。

2.2 视频压缩网络

Sora实现了将Transformer和扩散模型结合的创新,首先将不同类型的视觉数据转换成统一的视觉数据表示(视觉patch),然后将原始视频压缩到一个低维潜在空间,并将视觉表示分解成时空patch(相当于Transformer token),让Sora在这个潜在空间里进行训练并生成视频。接着做加噪去噪,输入噪声patch后Sora通过预测原始“干净”patch来生成视频。OpenAI发现训练计算量越大,样本质量就会越高,特别是经过大规模训练后,Sora展现出模拟现实世界某些属性的“涌现”能力。这也是为啥OpenAI把视频生成模型称作“世界模拟器”,并总结说持续扩展视频模型是一条模拟物理和数字世界的希望之路。

训练了一个降低视觉数据维度的网络。该网络将原始视频作为输入,并输出在时间和空间上压缩的潜在表示。Sora 在这个压缩的潜在空间中接受训练,而后生成视频。OpenAI 还训练了相应的解码器模型,将生成的潜在表示映射回像素空间。

  • 时空潜在 patches

给定一个压缩的输入视频,OpenAI 提取一系列时空 patches,充当 Transformer 的 tokens。该方案也适用于图像,因为图像可视为单帧视频。OpenAI 基于 patches 的表示使 Sora 能够对不同分辨率、持续时间和长宽比的视频和图像进行训练。在推理时,OpenAI 可以通过在适当大小的网格中排列随机初始化的 patches 来控制生成视频的大小。

  • 用于视频生成的缩放 Transformer

Sora 是个扩散模型;给定输入噪声 patches(以及文本提示等调节信息),训练出的模型来预测原始的「干净」patches。重要的是,Sora 是一个扩散 Transformer。Transformer 在各个领域都表现出了卓越的缩放特性,包括语言建模、计算机视觉、和图像生成。

在这项工作中,OpenAI 发现扩散 Transformers 也可以有效地缩放为视频模型。下面,OpenAI 展示了训练过程中具有固定种子和输入的视频样本的比较。随着训练计算的增加,样本质量显着提高。

  • 可变的持续时间,分辨率,宽高比

过去的图像和视频生成方法通常需要调整大小、进行裁剪或者是将视频剪切到标准尺寸,例如 4 秒的视频分辨率为 256x256。相反,该研究发现在原始大小的数据上进行训练,可以提供以下好处:

首先是采样的灵活性:Sora 可以采样宽屏视频 1920x1080p,垂直视频 1920x1080p 以及两者之间的视频。这使 Sora 可以直接以其天然纵横比为不同设备创建内容。Sora 还允许在生成全分辨率的内容之前,以较小的尺寸快速创建内容原型 —— 所有内容都使用相同的模型。

其次是改进帧和内容组成:研究者通过实证发现,使用视频的原始长宽比进行训练可以提升内容组成和帧的质量。将 Sora 在与其他模型的比较中,后者将所有训练视频裁剪成正方形,这是训练生成模型时的常见做法。经过正方形裁剪训练的模型(左侧)生成的视频,其中的视频主题只是部分可见。相比之下,Sora 生成的视频(右侧)具有改进的帧内容。

2.3 语言理解

训练文本到视频生成系统需要大量带有相应文本字幕的视频。研究团队将 DALL ・ E 3 中的重字幕(re-captioning)技术应用于视频。

具体来说,研究团队首先训练一个高度描述性的字幕生成器模型,然后使用它为训练集中所有视频生成文本字幕。研究团队发现,对高度描述性视频字幕进行训练可以提高文本保真度以及视频的整体质量。

与 DALL ・ E 3 类似,研究团队还利用 GPT 将简短的用户 prompt 转换为较长的详细字幕,然后发送到视频模型。这使得 Sora 能够生成准确遵循用户 prompt 的高质量视频。

  • 以图像和视频作为提示

我们已经看到了文本到视频的诸多生成示例。实际上,Sora 还可以使用其他输入,如已有的图像或视频。这使 Sora 能够执行各种图像和视频编辑任务 — 创建完美的循环视频、静态图像动画、向前或向后延长视频时间等。

为 DALL-E 图像制作动画

只要输入图像和提示,Sora 就能生成视频。下面展示了根据 DALL-E 2 和 DALL-E 3 图像生成的视频示例:

狗戴着贝雷帽、穿着黑色高领毛衣

带有 Sora 的云图像

视频内容拓展

Sora 还能够在开头或结尾扩展视频内容。以下是 Sora 从一段生成的视频向后拓展出的三个新视频。新视频的开头各不相同,拥有相同的结尾。

不妨使用这种方法无限延长视频的内容,实现「视频制作永动机」。

视频到视频编辑

扩散模型激发了多种根据文本 prompt 编辑图像和视频的方法。OpenAI 的研究团队将其中一种方法 ——SDEdit 应用于 Sora,使得 Sora 能够在零样本(zero-shot)条件下改变输入视频的风格和环境。

输入视频如下:

输出结果:

连接视频还可以使用 Sora 在两个输入视频之间逐渐进行转场,从而在具有完全不同主题和场景构成的视频之间创建无缝过渡。

2.4 图像生成能力

Sora 还能生成图像。为此,OpenAI 将高斯噪声 patch 排列在空间网格中,时间范围为一帧。该模型可生成不同大小的图像,最高分辨率可达 2048x2048。

涌现模拟能力

OpenAI 发现,视频模型在经过大规模训练后,会表现出许多有趣的新能力。这些能力使 Sora 能够模拟物理世界中的人、动物和环境的某些方面。这些特性的出现没有任何明确的三维、物体等归纳偏差 — 它们纯粹是规模现象。

三维一致性。Sora 可以生成动态摄像机运动的视频。随着摄像机的移动和旋转,人物和场景元素在三维空间中的移动是一致的。

长序列连贯性和目标持久性。视频生成系统面临的一个重大挑战是在对长视频进行采样时保持时间一致性。OpenAI 发现,虽然 Sora 并不总是能有效地模拟短距离和长距离的依赖关系,但它在很多时候仍然能做到这一点。例如,即使人、动物和物体被遮挡或离开画面,Sora 模型也能保持它们的存在。同样,它还能在单个样本中生成同一角色的多个镜头,并在整个视频中保持其外观。

与世界互动。Sora 有时可以模拟以简单方式影响世界状态的动作。例如,画家可以在画布上留下新的笔触,这些笔触会随着时间的推移而持续,或者一个人可以吃汉堡并留下咬痕。

模拟数字世界。Sora 还能模拟人工进程,视频游戏就是一个例子。Sora 可以通过基本策略同时控制 Minecraft 中的玩家,同时高保真地呈现世界及其动态。只需在 Sora 的提示字幕中提及 「Minecraft」,就能零样本激发这些功能。

这些功能表明,视频模型的持续扩展是开发物理和数字世界以及其中的物体、动物和人的高能力模拟器的一条大有可为的道路。

2.5 未来可优化方向

作为一款模拟器,Sora 目前还存在许多局限性。例如,它不能准确模拟许多基本交互的物理现象,如玻璃碎裂。其他交互,如吃食物,并不总能产生正确的物体状态变化。官方主页列举了该模型的其他常见失效模式,例如长时间样本中出现的不一致性或物体的自发出现。

不过,Sora 目前所展现的能力证明了持续扩大视频模型的规模是一个充满希望的方向,这也将助力物理和数字世界及其中的物体、动物和人类能够有更加精确的模拟。

更多详细内容,请参阅 Sora 原始技术报告。

参考链接:https://openai.com/research/video-generation-models-as-world-simulators

3. Sora总结

OpenAI 的研究论文《Video generation models as world simulators》探讨了在视频数据上进行大规模训练生成模型的方法。这项研究特别关注于文本条件扩散模型,这些模型同时在视频和图像上进行训练,处理不同时长、分辨率和宽高比的数据。研究中提到的最大模型 Sora 能够生成长达一分钟的高保真视频。以下是论文的一些关键点:

  1. 统一的视觉数据表示:研究者们将所有类型的视觉数据转换为统一的表示,以便进行大规模的生成模型训练。Sora 使用视觉补丁(patches)作为其表示方式,类似于大型语言模型(LLM)中的文本标记。

  2. 视频压缩网络:研究者们训练了一个网络,将原始视频压缩到一个低维潜在空间,并将其表示分解为时空补丁。Sora 在这个压缩的潜在空间中进行训练,并生成视频。

  3. 扩散模型:Sora 是一个扩散模型,它通过预测原始“干净”的补丁来从输入的噪声补丁中生成视频。扩散模型在语言建模、计算机视觉和图像生成等领域已经显示出了显著的扩展性。

  4. 视频生成的可扩展性:Sora 能够生成不同分辨率、时长和宽高比的视频,包括全高清视频。这种灵活性使得 Sora 能够直接为不同设备生成内容,或者在生成全分辨率视频之前快速原型化内容。

  5. 语言理解:为了训练文本到视频生成系统,需要大量的视频和相应的文本标题。研究者们应用了在 DALL·E 3 中引入的重新描述技术,首先训练一个高度描述性的标题生成器,然后为训练集中的所有视频生成文本标题。

  6. 图像和视频编辑:Sora 不仅能够基于文本提示生成视频,还可以基于现有图像或视频进行提示。这使得 Sora 能够执行广泛的图像和视频编辑任务,如创建完美循环的视频、动画静态图像、向前或向后扩展视频等。

  7. 模拟能力:当视频模型在大规模训练时,它们展现出了一些有趣的新兴能力,使得 Sora 能够模拟物理世界中的某些方面,如动态相机运动、长期一致性和对象持久性等。

尽管 Sora 展示了作为模拟器的潜力,但它仍然存在许多局限性,例如在模拟基本物理交互(如玻璃破碎)时的准确性不足。研究者们认为,继续扩展视频模型是开发物理和数字世界模拟器的有前途的道路。
这篇论文提供了对 Sora 模型的深入分析,展示了其在视频生成领域的潜力和挑战。通过这种方式,OpenAI 正在探索如何利用 AI 来更好地理解和模拟我们周围的世界。

更多优质内容请关注公号:汀丶人工智能;会提供一些相关的资源和优质文章,免费获取阅读。

  • 参考链接:

stable-diffusion-videos:https://github.com/nateraw/stable-diffusion-videos

StableVideo:https://github.com/rese1f/StableVideo

sora官网:https://openai.com/sora

sora报告的链接:https://openai.com/research/video-generation-models-as-world-simulators

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

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

相关文章

vscode 开发代码片段插件

环境准备 node - 20v版本 ,推荐使用nvm进行版本控制全局安装 "yo" 是 Yeoman 工具的命令行工具, npm i yo -g全局安装 generator-code 是一个 Yeoman 脚手架 gernerator-code npm i gernerator-code -g全局安装 npm install -g vsce官方文档 …

代码随想录算法训练营第55天 | 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费

最佳买卖股票时机含冷冻期 股票题做到这地步,可以发现分析每一天的可能状态与状态之间的转换是解决问题的关键。这道题中每一天可以有4种有效状态: 持有股票不持有股票,当天之前就已经卖出了股票不持有股票,当天卖出股票冷冻期状…

数字化转型导师坚鹏:政府数字化转型之数字化新技术解析与应用

政府数字化转型之数字化新技术解析与应用 课程背景: 数字化背景下,很多政府存在以下问题: 不清楚新技术的发展现状? 不清楚新技术的重要应用? 不清楚新技术的成功案例? 课程特色: 有…

计算机视觉的应用23-OpenAI发布的文本生成视频大模型Sora的原理解密

大家好,我是微学AI,今天给大家介绍一下计算机视觉的应用23-OpenAI发布的文本生成视频大模型Sora的原理解密。本文概况性地将Sora模型生成视频主要分为三个步骤:视频压缩网络、空间时间潜在补丁提取以及视频生成的Transformer模型。 文章目录…

专修戴尔R730xd服务器闪电灯 心跳亮黄灯故障

2024年开年第二天接到一个用户反馈说他公司有一台DELL PowerEdge R730xd服务器春节前由于市电问题意外断电关机了,刚好碰上春节就没去开机了,今天工厂开工服务器通电发现开不了机,且机器过了一会后报了2个黄灯错误,如下图&#xf…

【数据结构】每天五分钟,快速入门数据结构(一)——数组

目录 一.初始化语法 二.特点 三.数组中的元素默认值 四.时间复杂度 五.Java中的ArrayList类 可变长度数组 1 使用 2 注意事项 3 实现原理 4 ArrayList源码 5 ArrayList方法 一.初始化语法 // 数组动态初始化(先定义数组,指定数组长度&#xf…

书生浦语大模型实战营-课程笔记(5)

LLM部署特点,内存开销大,TOKEN数量不确定 移动端竟然也可以部署LLM。之前以为只能在服务端部署,移动端作为客户端发起请求来调用大模型。 LMDeploy用于模型量化 模型量化:降低内存消耗 推理性能对比 量化主要作用:…

内存计算研究进展-技术架构

内存计算技术是一个宏观的概念,是将计算能力集成到内存中的技术统称。集成了内存计算技术的计算机系统不仅能直接在内存中执行部分计算,还能支持传统以CPU为核心的应用程序的执行。区别于内存计算,存算一体芯片将存储与计算相结合&#xff0c…

MySQL--SQL解析顺序

前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了。 本文将从MySQL总体架构—>查询执行流程—>语句执行顺序来探讨一下其中的知识。 一、MySQL架构总览&a…

算法模板 6.并查集

并查集 用于解决连通块问题。 判断集合个数也就是判断p[x] x 的个数 836. 合并集合 - AcWing题库 #include <bits/stdc.h> using namespace std; const int N 1e5 10; int p[N]; // 记录每个元素的father int n, m;int find(int x){ // 查询元素x的fatherif(p[x] …

GPIO控制和命名规则

Linux提供了GPIO子系统驱动框架&#xff0c;使用该驱动框架即可灵活地控制板子上的GPIO。 GPIO命名 泰山派开发板板载了一个40PIN 2.54间距的贴片排针&#xff0c;排针的引脚定义兼容经典40PIN接口。 在后续对GPIO进行操作前&#xff0c;我们需要先了解k3566的GPIO命名规则&a…

Windows 重启 explorer 的正确做法

目录 一、关于 Restart Manager 二、重启管理器实例 三、完整实现代码和测试 本文属于原创文章&#xff0c;转载请注明出处&#xff1a; https://blog.csdn.net/qq_59075481/article/details/136179191。 我们往往使用 TerminateProcess 并传入 PID 和特殊结束代码 1 或者…

rocketMQ-Dashboard安装与部署

1、下载最新版本rocketMQ-Dashboard 下载地址&#xff1a;https://github.com/apache/rocketmq-dashboard 2、下载后解压&#xff0c;并用idea打开 3、修改配置 ①、修改端口及rocketmq服务的ip&#xff1a;port ②、修改访问账号、密码 3、然后启动访问&#xff1a; 4、mav…

单片机01天_stm32f407zg_创建新工程

创建“寄存器版工程” 1、创建工程文件夹 创建工程文件夹“Project”&#xff0c;内部包含文件夹“CMSIS”&&“USER”。 CMSIS&#xff1a;Cortex系列内核接口驱动文件。 USER&#xff1a;存放用户编写的程序文件。 “USER”文件夹内包含“Inc”&&“Src”…

yolov5的Mosaic原理解析

众所周知&#xff0c;yolov5中使用了mosaic增强进行数据增强&#xff0c;效果就是将4张图片拼凑为1张图片。为了更好优化自定义任务&#xff0c;特对mosaic原理进行解析。 1、mosaic原理解析 mosaic增强的原理一张图就可以解释&#xff1a; 1.1 图的注释 首先高亮区域&am…

YOLOv8-Openvino和ONNXRuntime推理【CPU】

1 环境&#xff1a; CPU&#xff1a;i5-12500 2 安装Openvino和ONNXRuntime 2.1 Openvino简介 Openvino是由Intel开发的专门用于优化和部署人工智能推理的半开源的工具包&#xff0c;主要用于对深度推理做优化。 Openvino内部集成了Opencv、TensorFlow模块&#xff0c;除此…

ClickHouse 基础(一)

官网 以毫秒为单位查询数十亿行 ClickHouse是用于实时应用和分析的最快、资源效率最高的开源数据库。 安装ClickHouse 使用ClickHouse&#xff0c;你有三个选择: ClickHouse云:官方ClickHouse作为一项服务&#xff0c;-由ClickHouse的创建者构建&#xff0c;维护和支持快速安…

C语言中关于#include的一些小知识

写代码的过程中&#xff0c;因为手误&#xff0c;重复包含了头文件 可以看到没有报错 如果是你自己编写的头文件&#xff0c;那么如果没加唯一包含标识的话&#xff0c;那么编译器会编译报错的。如果是系统自带的头文件&#xff0c;由于其每个头文件都加了特殊标识&#xff0c…

【软考】系统集成项目管理工程师(十六)变更管理【1分】

一、 变更的概念 1、定义、原因、分类 2、变更流程 二、 变更的原则 1、变更管理原则、配置管理工具 2、变更管理流程 三、 变更的流程及角色职责 1、提出变更申请、变更影响分析 2、变更测试 1、有些变更很小&#xff0c;客户着急要&#xff0c;可以不用走变更程序直接修改…

Android widget基础指南

widget的概念最早是由一名叫Rose的苹果工程师提出&#xff0c;后来经过多方面机缘巧合的发展下&#xff0c;便有了今天Android平台上的小组件widget&#xff0c;一般APP开发可能应用场景较少&#xff0c;最常见的莫过于天气APP的widget。但对于从事IOT或车载方向的同学&#xf…