魅族支持鸿蒙吗,魅族用上鸿蒙,小厂商抱团作战的起点?

魅族宣布Lipro智能家居产品将接入鸿蒙生态,成为华为鸿蒙发布会前首个宣布合作的第三方品牌。此举对双方均有利,魅族借此强化IoT布局,华为则扩大了鸿蒙系统的影响力。鸿蒙系统在智能家居领域的分布式架构和微内核设计,有助于提升设备间的兼容性和互联互动。华为正积极吸引合作伙伴,推动鸿蒙系统跨越市场份额的“生死线”,成为中国首个头部操作系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文|雷科技

不久前华为宣布,将会在6月2日举行发布会发布鸿蒙手机,除此之外一大波和鸿蒙系统有关的硬件也会正式登场。对中国消费者、广大科技爱好者来说,“鸿蒙”始终是一个神秘却又充满吸引力的词汇,尤其是华为遭到限制、手机业务面临难题的今天,鸿蒙似乎已经变成了华为破局的关键。

但另一方面,自2019年官宣至今,鸿蒙系统始终“犹抱琵琶半遮面”,直到今年年初才开始有一些动作。大家对鸿蒙的期待和鸿蒙本身的神秘形成反差,这个被我们寄予厚望的、有机会和安卓、iOS一争高下的国产系统,真的能令我们满意吗?在6月2日的发布会上,华为将会告诉我们答案。

然而令我们没有想到的是,在华为鸿蒙发布会之前,竟有一家厂商提前宣布,他们旗下的产品也会与鸿蒙产生“化学反应”,而且这款产品要比华为自家的鸿蒙设备来得更早。5月28日,魅族突然官宣,已面世一段时间的Lipro智能家居产品将接入鸿蒙生态,更多信息将于5月31日揭晓。

这段时间以来,魅族常以“蹭热度”的形象出现在我们的视线之中,炒起了“魅族18和iPhone一样安全”、“在魅族官网卖iPhone”等热点,但最终并没有给魅族带来多少正面反馈,销量上也不见有太大起色。但一码归一码,本次魅族宣布智能家居接入鸿蒙依然是个行业内的头条级别大新闻。

无论是对魅族还是对华为来说,这次的合作完全称得上是“双赢”。

魅族:及时上岸,抱紧大腿

值得注意的是,魅族和鸿蒙达成的合作目前仅限于Lipro健康照明系列灯具,范围再广一点也只能划到Lipro品牌下的智能家居生态,而非魅族的智能手机要用上鸿蒙系统。至于为什么魅族会选择在智能IoT领域和华为合作使用鸿蒙,理由也相当简单。

首先,鸿蒙系统虽然适用于各式各样的智能设备,但显然在智能手机领域仍未能达到安卓的高度。就算是华为自家的智能手机,也只会逐步过渡至鸿蒙系统,而现阶段活跃的大多数华为手机依然会搭载安卓系统。

不久前,华为放出了手机鸿蒙系统的测试版,从小部分媒体的上手体验来看,现阶段的鸿蒙手机版已经可以做到了媲美EMUI的体验,无论是动画还是功能已经有了很高的完成度。

但问题在于,鸿蒙系统现阶段在手机上也不过是勉强追平安卓而已,相对成熟稳定的安卓系统,其实没有太明显的优势。对华为来说切换至鸿蒙系统一来是自身战略的需要,二来是应付大国封锁的需求,而现在魅族并没有这样的需求,所以继续沿用熟悉、稳定的安卓系统,显然是更好的选择。

再说,对魅族来说Flyme就如生命一样重要,如果魅族手机不用安卓底层的Flyme而用鸿蒙,那才是天方夜谭。相反,在IoT领域,鸿蒙的分布式架构、微内核设计等要素,却能带来更好的兼容能力,更符合IoT设备多端互联互动的需求。

和智能手机里安卓、iOS处于绝对统治地位不同,在IoT生态中目前尚处于“大混战”状态,基本上每一个品牌都有自己的连接协议,对于小体量的厂商来说协议的选择除了看重协议本身的优势外,也需要关注协议背后的阵营是否有足够的实力,可以形成影响力。

如果从这一点出发,那华为的鸿蒙系统的确颇有优势。除了鸿蒙系统和HiLink协议的能力外,更有华为品牌和生态联盟背后的庞大流量支持,这对于魅族这种小体量厂商一来可以解决协议技术问题,二来又能获得华为HiLink生态联盟的产品支持,丰富IoT产品矩阵,弥补IoT产品数量不多的短板。

值得一提的是,魅族本来就有部分产品加入到华为的HiLink生态中成为其中一员,本次宣布智能家居产品接入由其进化而来的HarmonyOS Connect生态,甚至是直接使用IoT版本鸿蒙系统,相信也是合作深化的表现。

但话说回来,魅族会采用鸿蒙,还是因为自身声量问题。像小米、OPPO这些厂商应该就不太可能考虑加入到鸿蒙的生态中,毕竟他们有自己的渠道、有足够的产品和足够的资金去建立自己的生态,现阶段的鸿蒙系统对他们来说并没有太多吸引力。

华为:呼朋引伴,积存实力

对华为来说,鸿蒙系统能够达到什么样的高度无法由华为自己决定,最终还是要看有多少伙伴愿意加入到鸿蒙阵营中,让鸿蒙系统成功跨越16%市场份额的“生死线”。

对大厂来说使用直接竞争对手的系统显然是不现实的,但对小厂来说却可以借华为的生态实力让自己的体量短板被补足,所以,吸纳魅族这样有互联网声望但体量大不如前的厂商就成了可行的办法。

魅族在智能手机领域的份额已经低于1%,但智能家居领域的表现也没有好多少,甚至说还不如智能手机。魅族有自己的智能IoT产品,但由于数量不多远称不上是一个生态,但要让魅族在短时间内追上头部厂商推出多个产品建立生态,自然是不现实的。

处境和魅族差不多的厂商还有很多,而且在智能手机厂商之外,其他的科技厂商也能借助鸿蒙的能力快速拥有完整的智能生态,让产品的综合体验快速达到“完全体”。从数据来看,此前华为的HiLink生态已经累积了超过5000万用户,连接设备数量超过10亿台,至少在国内绝对是影响力数一数二的智能生态阵营。

而通过和魅族等厂商的合作,鸿蒙系统的设备数量也能进一步提升,而且也能借助魅族、美的等品牌累积下来的粉丝口碑达到提升鸿蒙系统口碑的目的,让大家更容易接受鸿蒙系统。

长远来看,如果魅族可以通过和华为的合作让IoT业务得到显著发展,那对华为来说自然也是一个很好的宣传材料,来吸引更多的中小体量企业加入到华为的鸿蒙生态中,一同建设并壮大鸿蒙生态。

但随着时间的发展,或者说随着鸿蒙生态的壮大,华为可能会进一步淡出硬件制造的范畴,专心地成为生态的管理者,成为如谷歌那样的角色。

这对华为来说未必不是一个更好的选择,正如华为在造车领域的决策一样,当一个供应商和生态的服务者能够让华为的品牌覆盖更多的消费者,覆盖更多的合作伙伴,相比起硬件制造也有着更低的风险。

无论如何,华为鸿蒙系统已经进入到了快速发展的阶段,在各方面推动下,鸿蒙真的很有机会成为谷歌、iOS之外第三大操作系统,也是属于中国人的第一个头部系统。

``` <!DOCTYPE html> <html> <head> <title></title> </head> <style> * { padding: 0; margin: 0; } html, body { height: 100%; padding: 0; margin: 0; background: #000; } canvas { position: absolute; width: 100%; height: 100%; } .aa { position: fixed; left: 50%; bottom: 10px; color: #ccc; } </style> <body> <canvas id="pinkboard"></canvas> <script> /* * Settings */ var settings = { particles: { length: 500, // maximum amount of particles duration: 2, // particle duration in sec velocity: 100, // particle velocity in pixels/sec effect: -0.75, // play with this for a nice effect size: 30 // particle size in pixels } }; /* * RequestAnimationFrame polyfill by Erik M?ller */ (function () { var b = 0; var c = ["ms", "moz", "webkit", "o"]; for (var a = 0; a < c.length && !window.requestAnimationFrame; ++a) { window.requestAnimationFrame = window[c[a] + "RequestAnimationFrame"]; window.cancelAnimationFrame = window[c[a] + "CancelAnimationFrame"] || window[c[a] + "CancelRequestAnimationFrame"]; } if (!window.requestAnimationFrame) { window.requestAnimationFrame = function (h, e) { var d = new Date().getTime(); var f = Math.max(0, 16 - (d - b)); var g = window.setTimeout(function () { h(d + f); }, f); b = d + f; return g; }; } if (!window.cancelAnimationFrame) { window.cancelAnimationFrame = function (d) { clearTimeout(d); }; } })(); /* * Point class */ var Point = (function () { function Point(x, y) { this.x = typeof x !== "undefined" ? x : 0; this.y = typeof y !== "undefined" ? y : 0; } Point.prototype.clone = function () { return new Point(this.x, this.y); }; Point.prototype.length = function (length) { if (typeof length == "undefined") return Math.sqrt(this.x * this.x + this.y * this.y); this.normalize(); this.x *= length; this.y *= length; return this; }; Point.prototype.normalize = function () { var length = this.length(); this.x /= length; this.y /= length; return this; }; return Point; })(); /* * Particle class */ var Particle = (function () { function Particle() { this.position = new Point(); this.velocity = new Point(); this.acceleration = new Point(); this.age = 0; } Particle.prototype.initialize = function (x, y, dx, dy) { this.position.x = x; this.position.y = y; this.velocity.x = dx; this.velocity.y = dy; this.acceleration.x = dx * settings.particles.effect; this.acceleration.y = dy * settings.particles.effect; this.age = 0; }; Particle.prototype.update = function (deltaTime) { this.position.x += this.velocity.x * deltaTime; this.position.y += this.velocity.y * deltaTime; this.velocity.x += this.acceleration.x * deltaTime; this.velocity.y += this.acceleration.y * deltaTime; this.age += deltaTime; }; Particle.prototype.draw = function (context, image) { function ease(t) { return --t * t * t + 1; } var size = image.width * ease(this.age / settings.particles.duration); context.globalAlpha = 1 - this.age / settings.particles.duration; context.drawImage( image, this.position.x - size / 2, this.position.y - size / 2, size, size ); }; return Particle; })(); /* * ParticlePool class */ var ParticlePool = (function () { var particles, firstActive = 0, firstFree = 0, duration = settings.particles.duration; function ParticlePool(length) { // create and populate particle pool particles = new Array(length); for (var i = 0; i < particles.length; i++) particles[i] = new Particle(); } ParticlePool.prototype.add = function (x, y, dx, dy) { particles[firstFree].initialize(x, y, dx, dy); // handle circular queue firstFree++; if (firstFree == particles.length) firstFree = 0; if (firstActive == firstFree) firstActive++; if (firstActive == particles.length) firstActive = 0; }; ParticlePool.prototype.update = function (deltaTime) { var i; // update active particles if (firstActive < firstFree) { for (i = firstActive; i < firstFree; i++) particles[i].update(deltaTime); } if (firstFree < firstActive) { for (i = firstActive; i < particles.length; i++) particles[i].update(deltaTime); for (i = 0; i < firstFree; i++) particles[i].update(deltaTime); } // remove inactive particles while ( particles[firstActive].age >= duration && firstActive != firstFree ) { firstActive++; if (firstActive == particles.length) firstActive = 0; } }; ParticlePool.prototype.draw = function (context, image) { // draw active particles if (firstActive < firstFree) { for (i = firstActive; i < firstFree; i++) particles[i].draw(context, image); } if (firstFree < firstActive) { for (i = firstActive; i < particles.length; i++) particles[i].draw(context, image); for (i = 0; i < firstFree; i++) particles[i].draw(context, image); } }; return ParticlePool; })(); /* * Putting it all together */ (function (canvas) { var context = canvas.getContext("2d"), particles = new ParticlePool(settings.particles.length), particleRate = settings.particles.length / settings.particles.duration, // particles/sec time; // get point on heart with -PI <= t <= PI function pointOnHeart(t) { return new Point( 160 * Math.pow(Math.sin(t), 3), 130 * Math.cos(t) - 50 * Math.cos(2 * t) - 20 * Math.cos(3 * t) - 10 * Math.cos(4 * t) + 25 ); } // creating the particle image using a dummy canvas var image = (function () { var canvas = document.createElement("canvas"), context = canvas.getContext("2d"); canvas.width = settings.particles.size; canvas.height = settings.particles.size; // helper function to create the path function to(t) { var point = pointOnHeart(t); point.x = settings.particles.size / 2 + (point.x * settings.particles.size) / 350; point.y = settings.particles.size / 2 - (point.y * settings.particles.size) / 350; return point; } // create the path context.beginPath(); var t = -Math.PI; var point = to(t); context.moveTo(point.x, point.y); while (t < Math.PI) { t += 0.01; // baby steps! point = to(t); context.lineTo(point.x, point.y); } context.closePath(); // create the fill context.fillStyle = "#ea80b0"; context.fill(); // create the image var image = new Image(); image.src = canvas.toDataURL(); return image; })(); // render that thing! function render() { // next animation frame requestAnimationFrame(render); // update time var newTime = new Date().getTime() / 1000, deltaTime = newTime - (time || newTime); time = newTime; // clear canvas context.clearRect(0, 0, canvas.width, canvas.height); // create new particles var amount = particleRate * deltaTime; for (var i = 0; i < amount; i++) { var pos = pointOnHeart(Math.PI - 2 * Math.PI * Math.random()); var dir = pos.clone().length(settings.particles.velocity); particles.add( canvas.width / 2 + pos.x, canvas.height / 2 - pos.y, dir.x, -dir.y ); } // update and draw particles particles.update(deltaTime); particles.draw(context, image); } // handle (re-)sizing of the canvas function onResize() { canvas.width = canvas.clientWidth; canvas.height = canvas.clientHeight; } window.onresize = onResize; // delay rendering bootstrap setTimeout(function () { onResize(); render(); }, 10); })(document.getElementById("pinkboard")); </script> </body> </html> ``` ![示例图片](https://devbit-static.oss-cn-beijing.aliyuncs.com/devbit-static/img/heart.png)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值