V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
locoz
V2EX  ›  华为

[技术角度科普] 鸿蒙的“分布式”究竟是个啥情况?

  •  
  •   locoz · 2021 年 6 月 6 日 · 1371 次点击
    这是一个创建于 1781 天前的主题,其中的信息可能已经有所发展或是发生改变。

    文章作者:「夜幕团队 NightTeam 」- Loco

    本文首发于微信公众号「 NightTeam 」,如需转载请在微信端发消息告知。


    随着鸿蒙的发布,华为又在各个交流平台上引起了一波扯皮,但看起来直到现在仍然有挺多人对鸿蒙的“分布式”了解得并不多啊,扯皮都扯不到点上...

    所以...我来分享一下我了解到的东西以及我的理解吧,希望能让大家对鸿蒙的了解更清晰一些,做到既不要因为营销而看不到鸿蒙好的那一面,也不要因为鸿蒙好的那一面而无脑吹鸿蒙或觉得非华为不可、其他厂商和个人都是垃圾,用理性、客观的态度去看待这个(或者说是“这些”?)新生的事物。如果内容中有啥错漏,欢迎友善交流,杠精勿扰。

    PS:本来我一直是不想单独发一篇解析文之类的东西来参与这种话题的,容易惹上两边的二极管,搞得一身骚。但是今天在 [ HarmonyOS 的原子化理念是不是也导致应用开发的概念也需要做个转变?] ( https://www.v2ex.com/t/781535 ) 这想着写个评论,结果写着写着就几百字了...就干脆加点东西、润色一下单独拿出来发算了。

    华为在“分布式”这一块做了什么实事?

    首先,华为先制定了一套协议,把各种基础硬件(比如麦克风、音响、屏幕等)、基础软件(比如文件系统、数据库等)、基础功能(比如启动 APP 、移动鼠标指针位置、点击某个位置等)的操作都给在协议里标准化了。

    然后华为基于这个协议做了套设备互联库,会通过各种连接方式尝试寻找其他设备进行连接,并对调用者屏蔽连接细节,只暴露出可以与哪个设备进行什么操作。另外这套库还对一些特殊的操作又包了一层,比如对屏幕的操作可以是显示指定视频流(且可以由其他设备串流)、对音响的操作可以是播放指定音频流(与视频流一样)之类的。最后华为把这套库给塞进了系统层以方便 APP 调用,把整个这一套称之为“分布式”、“万物互联”。

    接着华为又对 APP 的形式做了调整,先是做了个可以让 APP 模块化运行的框架,称之为“原子化”;然后又做了个 UI 库,可以让 APP 在不同显示大小(不能说是屏幕大小)的情况下上自适应显示合适的 UI 。这个 UI 库的自适应和一般自适应的直接拉伸还不一样,这个是给显示大小分了级别然后专门做了对应的 UI,并按内容重要度来进行差异化显示,级别内的大小才是直接拉伸。最后华为也同样把这套库给塞进了系统层,把整个这一套称之为“一次开发多端部署”。

    这些东西能带来什么好处?

    对于 APP 来说,只要基于华为的这些东西做,就可以直接通过调用系统内置标准库的方式来实现各种互联功能,并且可以把 APP 的单个或多个功能拆成一个可以独立运行的模块,可以把每个模块通过各种形式单独使用(比如类似小程序、小卡片一样的各种启动和运行方式),也可以通过协议中定义的基础功能实现所谓的“流转”(也就是把这个模块包到传输另一个设备上运行)。而如果对端设备的性能不足以支持直接运行模块的话,也可以直接串流画面显示,但这对于 APP 和使用者来说是无感知的。

    对于硬件厂商来说,能更容易实现互联功能、能参与到一个更容易造噱头的生态里,而且啥设备都能接,小到食指大的小单片机、大到手机 /电脑 /显示器实际上都可以接入进去,只需要把自己这个设备能实现的功能暴露出来就行了,有标准化的就按标准化的来、没标准化的再自己定义一套通信协议去基于华为的设备互联库通信,成本低收益高。

    对于用户(尤其是不懂技术的普通用户)来说,由于华为的影响力会带动相关行业的企业和开发者都参与进去,所以整体软硬件生态肯定是被推着向更加能够互联互通且轻量化的方向发展的,一些技术实力没有那么强的企业和个人也能通过华为降低的门槛参与进去,所以那些以往很难见到、用到的功能和设备,以及各种轻量化的 APP 也自然会更快地变得越来越多。虽然事实上没有华为也会朝这个方向发展,但毕竟华为的影响力摆在那,加速发展是必然的事情,制定规则、引领行业发展这种事情本来是大厂的优势。

    所以这些东西到底新鲜吗?

    总体来说,其实这就是基于云原生里那些服务化、网格化之类的思路来设计的一整套东西,手机、物联网以及其他相关行业以往有部分类似的东西,但没有华为被逼无奈下做出来的东西这么彻底。所以虽然都不是什么新鲜东西,但华为做这事(单指互联这一块的东西)在技术方面也还是应该夸赞而不是骂的,毕竟这方面华为做的东西确实没毛病,做的事情也确实多,能实现的效果也确实很好,而且最关键的也确实是在利用自己的影响力做对大家都有利的事,不是挺好的吗?

    顺便说一下两个不懂技术的人经常有意无意混淆的点

    (省得每次有人抬杠都得重新打一遍)

    这一整套东西是很大的创新吗?

    严格来说并不是,华为只是把以前零散的这些东西整合了起来并且制定成了标准,实际是在利用自己的影响力提高所有人的方便性、统一化市场并且方便自己吹牛逼和赚钱而已。说白了,没有华为做也能实现,只是会因为没一个统一标准的生态导致实现麻烦点、功能零散点而已,区别主要还是在于有生态和无生态,而不是华为有没有做。

    所以...

    高情商:华为整合了市场

    低情商:缝合怪

    (狗头保命)

    没有华为的这些东西,就不能实现那些互联功能吗?性能真的会有明显差异吗?

    同样也并不是,互联功能本身只要有能让设备之间进行通信的手段就能做,而华为做的事情只是把复杂的事情简单化,让更多没有精力或能力开发相关功能的人和企业能做出这些功能而已。而性能的话,一个能直接在底层进行操作的库当然能比一般的个人开发者在应用层弄一套的强,但跟同样能魔改系统且有能力把自己魔改的系统拿给别人用的厂商们而言,其实差别并不会有多大。

    顺带一提,个人开发者实现的类似功能的魔改也基本不用想着普及给其他人用,没有 Root 权限、没有 Magisk/Xposed 之类的框架,很难拿到那么高的权限,所以市面上基本就是见不到的,这很正常。

    所以,不要以为只有华为才能搞,也不要想当然地以为华为的这套性能就一定比别人好,这种想法要不得...

    另外,实际上其他手机厂商在当下即使不用鸿蒙也没关系,它们可以只把设备互联的那一套库给塞进自己魔改的系统里,也可以同样接入同一套生态,就看它们愿不愿意了。这种做法肯定要比直接使用一个所谓“兼容 Android”的东西要更稳妥(毕竟普通用户分不清啥是啥,容易产生不必要的误会),而为了保证产品的竞争力,接入生态或者自己做一套同样的东西基本是必然的事情,在接入生态更省事的情况下其他厂商大概率会更优先选择这种方式。

    华为真正该被骂的点是什么?

    是各种营销手段、是套高大上的名词、是在手机版鸿蒙方面的吹嘘、是做 to C 产品时那种高傲的“我为你好”的设计思路、是 996 、是变相逼迫年龄稍大的员工离职...等等等等,这些与技术无关但非常令人反感的管理人员、运营人员搞出来的事情才是真正该被骂的。

    为华为工作的技术人员又没有做错什么,人家做出来的东西也确实没毛病,为什么要连带着技术人员做的东西一起骂呢?更何况还是在自己还不了解实际内容的情况下。

    总结

    还是那句话:既不要因为营销而看不到鸿蒙好的那一面,也不要因为鸿蒙好的那一面而无脑吹鸿蒙或觉得非华为不可,理性、客观地看待新生事物。什么该骂、什么该夸要分清,作为消费者却去跟饭圈一样把厂商当偶像,又或者虽然不了解但抓到点东西就要拿出来骂,好好的一个人变得跟个二极管一样多没意思?

    第 1 条附言  ·  2021 年 6 月 7 日
    补充一下,UI 库部分的这段描述存疑:“这个 UI 库的自适应和一般自适应的直接拉伸还不一样,这个是给显示大小分了级别然后专门做了对应的 UI,并按内容重要度来进行差异化显示,级别内的大小才是直接拉伸”。

    这段描述基于我之前看到过的一个华为官方的演示视频,印象中视频内没有媒体查询、使用模板之类的描述,视频中的代码也没有相关处理,直接就实现了同样的效果。而从目前的资料来看华为的说法是基于它们提供的模板来实现这种效果,而模板代码内就是使用的媒体查询 API,具体的实现效果与 UI 库没啥关系,全看模板代码里怎么写。

    由于还没找到之前的那个演示视频,所以目前也不清楚是之前那个视频刻意隐藏掉了这部分细节还是我看漏了,又或者是确实有但因为实际没那么好所以没放出来,需要找到那个视频进行确认才知道。

    上述目前的相关资料如下:
    模板代码: https://playground.harmonyos.com/#/cn/onlineDemo
    媒体查询文档: https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-components-common-mediaquery-0000000000625942
    46 条回复    2021-06-07 20:56:23 +08:00
    litmxs
        1
    litmxs  
       2021 年 6 月 6 日 via Android   ❤️ 9
    最恶心这种自诩公正客观的垃圾文章了,满篇瞎吹,再扯点无关紧要的缺点,完事再批判下别人都思想极端二极管。
    locoz
        2
    locoz  
    OP
       2021 年 6 月 6 日
    @litmxs #1 笑死,请指出哪里瞎吹?哪里无关紧要了?
    pupboss
        3
    pupboss  
       2021 年 6 月 6 日   ❤️ 2
    是的,同意你的观点,现在很多人看到华为就开始阴阳怪气

    照这些人的说法,ubuntu 不就是 debian 套个壳,debian 不就是 linux 套个壳

    基于 aosp 不寒碜,debian 基于 linux 有自己的 apt 管理器,ubuntu 又做了更多定制面向小白用户

    华为基于 aosp 实现一套互联协议也是有积极意义的
    locoz
        4
    locoz  
    OP
       2021 年 6 月 6 日
    @pupboss #3 是的,基于 AOSP 没啥问题,东西有意义就行了,管理和运营瞎吹牛逼应该骂他们而不是骂产品本身,完全是两码事。
    locoz
        5
    locoz  
    OP
       2021 年 6 月 6 日
    @Livid “华为”节点是“华为各种设备用户的讨论节点”,而这篇文章是技术科普文章,并非讨论华为设备,应属于“分享创造”吧?咋给移到这来了...
    Jirajine
        6
    Jirajine  
       2021 年 6 月 6 日
    说了半天啥都没有,不就是生态链么,小米、Apple 等各家都有,都想搞自己的后花园,还把自己包装成一副“开源开放”的样子。
    第二点就更扯了,重新发明了个 flutter,区别是 flutter 能在各种平台上运行,而哄蒙的“flutter”只能在 android 和哄蒙上运行。纯粹是政治任务,没有任何意义。
    dingawm
        7
    dingawm  
       2021 年 6 月 6 日   ❤️ 1
    写得还是比较客观得,其实我觉得看有些人一看到华为相关就脑神经抽搐还是挺有趣的。
    locoz
        8
    locoz  
    OP
       2021 年 6 月 6 日
    @Jirajine #6 严格来说是个功能更丰富一些的生态链,并且是可以被其他人融合的生态链,不完全是华为的后花园。鸿蒙这一套是即使华为后期开始做一些奇葩操作(比如好好的一个大家一起弄的 WIFI6 它给弄了个 WIFI6+出来,还各种营销说这个分支多牛逼),也影响不到主体部分( WIFI6 )带来的好处;而其他厂商的要么比较封闭、要么协议上定义得没那么细、要么不是完全开源的,这区别就很大了。更何况这个项目在工信部的开放原子基金会名下,某些程度上可以说华为是被监管着的,其实大可不用太担心。

    flutter 能不能做到那么模块化地运行我不清楚(华为的是可以单抽出来一个模块直接丢到另一个设备上运行并且共享数据,共享数据部分基于底层的“分布式”文件系统和数据库),貌似之前也没听说过有谁那么做了的,即使有也应该不是主流做法?而且华为那套是直接嵌在系统里,flutter 现在貌似还没被嵌到系统里吧?这不也是区别吗?再加上 flutter 风评不是挺不好的吗?如果华为能把自己这套做得体验比 flutter 好,就算它其他方面都一样或者不咋地,但这不也是一个存在的意义吗?总不能说别人造了个轮子,你用着不爽就不能再造一个轮子了吧?
    wipbssldo
        9
    wipbssldo  
       2021 年 6 月 6 日
    加油,“鸿蒙学”靠你了。

    PS:「技术角度」?我只能说是基于感受的流于表面的技术角度。
    比如你所说的
    「接着华为又对 APP 的形式做了调整,先是做了个可以让 APP 模块化运行的框架,称之为“原子化”;然后又做了个 UI 库,可以让 APP 在不同显示大小(不能说是屏幕大小)的情况下上自适应显示合适的 UI 。这个 UI 库的自适应和一般自适应的直接拉伸还不一样,这个是给显示大小分了级别然后专门做了对应的 UI,并按内容重要度来进行差异化显示,级别内的大小才是直接拉伸。最后华为也同样把这套库给塞进了系统层,把整个这一套称之为“一次开发多端部署”。」
    换成一句话:利用 HTML+CSS+JS 那一套写 UI,实现一次开发多端部署。这样是不是清晰多了。

    看这里: https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-js-overview-0000000000500376
    华为说鸿蒙两套 UI:Java UI + JS UI,Java UI 不就是 Android 那一套? JS UI 不就是 Web 那一套?。很新奇吗?。
    所以「华为又对 APP 的形式做了调整,先是做了个可以让 APP 模块化运行的框架,称之为“原子化”」这套框架有多少原创性?
    locoz
        10
    locoz  
    OP
       2021 年 6 月 6 日
    @dingawm #7 😂两个极端都挺有意思,像知乎相关话题下经常会有一些奇葩言论,我现在都当乐子看了。
    locoz
        11
    locoz  
    OP
       2021 年 6 月 6 日
    @wipbssldo #9 并不是单纯的“利用 HTML+CSS+JS 那一套写 UI”,建议你先去了解一下,鸿蒙在应用开发这方面是有两套东西的...这个所谓的“一次开发多端部署”最典型的例子就是一个有列表页的应用可以在手表上直接只展示主体的列表部分,我记得之前看到华为的哪个视频里有演示,你可以找一下。

    Java UI 目前来看是对 Android 那一套的封装,但是封装时实现了一些别的东西不是事实吗? Android 原生 UI 有给不同设备专门定制好 UI,然后可以通过自适应的方式直接切换上去吗?貌似没有吧?

    模块化运行部分与前面回复 Jirajine 的#8 第二段同理,不再赘述。
    Jirajine
        12
    Jirajine  
       2021 年 6 月 6 日
    @locoz #8 是否功能更丰富、协议更完善我就不说了,你可以同时看看别家的对比一下 https://iot.mi.com/ https://developer.apple.com/homekit/
    但是开源开放则纯粹是包装营销了,按揭开源,你只能来我的平台构建生态,类似以前的 dotnet 宣称的开放,uwp 跨我自家的平台也叫跨平台。这不是什么监管之类的问题,什么时候能和 home assistant 这种真正的开源开放的平台互联互通,而不是要求所有设备都跑哄蒙再自称开源开放吧。

    第二个说它是 flutter 主要是指它在 android 平台上的实现方式和 flutter 完全一样,flutter 可以在各个平台运行,而哄蒙的”flutter"只能在哄蒙的个平台运行。flutter 打包生成 apk,而哄蒙手机本身就基于 aosp,还故意套一个 hap,里面再包个 apk,实际运行的时候由里面的 apk 作为入口加载。这样做除了阻止其他 android 系统运行“哄蒙”应用以外,也就是为了营销弱化“android 套壳”了。他要是真的开源开放,何必造轮子,直接给 flutter 实现一个哄蒙的后端就可以了,就算非得造轮子,故意阻止其他 android 系统运行也毫无开源开放的诚意可言。

    记得之前华为抱怨被 google 用 gms 打压,把自己塑造成一副反垄断的样子,结果说的好听,也没见他提代码完善 aosp 中被 google 阉割(把功能移到私有的 gms 里)的部分,或者支持 microG 这样的项目。最后搞出个 hms 来,完全就不是反垄断,而是希望垄断的变成自己罢了。
    locoz
        13
    locoz  
    OP
       2021 年 6 月 6 日
    @Jirajine #12 小米和苹果的我看过,你不用给我发,我在文中也说了“手机、物联网以及其他相关行业以往有部分类似的东西,但没有华为被逼无奈下做出来的东西这么彻底”。华为这套的优势在于定得更细、更下层了一些,并且不单单针对智能家居,这是事实。

    至于按揭开源和能不能脱离华为的平台构建生态完全是两码事,只要华为这套设备互联库是开源的,这个平台就可以被扩展到任何一个厂商,无非就是看厂商愿不愿意弄而已,我在文中的“没有华为的这些东西,就不能实现那些互联功能吗?性能真的会有明显差异吗?”这部分里也有写到这个问题。而和 hass 的互通...做个 hass 插件把华为这套接进去不就互通了吗?这有啥问题?为啥你一个做技术的还会以为这种库会跟系统耦合?

    “它在 android 平台上的实现方式和 flutter 完全一样”
    是一样,但 flutter 的自适应我目前看到的只有拉伸,而华为这套是专门定制了对应的 UI 的,文中也提到了“是给显示大小分了级别然后专门做了对应的 UI,并按内容重要度来进行差异化显示,级别内的大小才是直接拉伸”。

    “而哄蒙手机本身就基于 aosp,还故意套一个 hap,里面再包个 apk,实际运行的时候由里面的 apk 作为入口加载”
    这是另一码事,跟 flutter 与华为的 UI 库有啥关系?

    “他要是真的开源开放,何必造轮子,直接给 flutter 实现一个哄蒙的后端就可以了”
    开源开放跟自己造轮子而不用别人的东西有啥关系...你用一个别人的框架可以实现你想要的大部分功能,但你想实现的一些其他功能如果要做的话就要对框架进行大改,那你是选择自己造一个还是改了框架试图并入主线?再说了,华为本来就喜欢啥都自己搞一份,做出这事有啥奇怪的...

    “就算非得造轮子,故意阻止其他 android 系统运行也毫无开源开放的诚意可言”
    APP 不能直接在其他 Android 系统上运行跟 UI 库是不是自己造的有啥关系?而且华为加的那些库是嵌进系统里的,其他 Android 系统没有这些库,如果用了相关功能的话本来也就没法直接运行啊?另外你也并不能排除后面华为或第三方的人给“鸿蒙应用”加个带上依赖的库编译成 APK 的选项这种可能性,虽然这对华为想搞的生态肯定会是个重大的打击,华为自己基本不太可能这么做。

    关于 GMS 和 HMS 的问题,这就跟手机版鸿蒙套不套壳一样,完全就是两码事,混淆进来说干啥呢?
    Jirajine
        14
    Jirajine  
       2021 年 6 月 6 日
    @locoz #13 我没看出来哪里“被逼无奈”了,这和制裁又没关系,被谁逼的,总不能是被小米逼的吧?既然不是 home assistant 这种真正开源开放的平台,和其他各厂商的后花园“生态链”完全就是同类竞品,没有任何区别。按揭开源就是为了让别的厂商来给他构建生态。

    flutter 和哄蒙的 ui 库在 android 平台上使用同样的方式实现,他自己的系统就是基于 aosp,所以才能在他自己的系统上运行。而为了防止其他 aosp 系统运行才专门搞一个 hap 的打包格式。其他库不说,单一个 helloworld 肯定所有 aosp 系统都有能力跑起来。

    >给显示大小分了级别然后专门做了对应的 UI

    你肯定不是前端,这不就是喊了多少年的响应式布局么。无论 web 、android 、ios 还是 flutter,各平台都有相应的方案。而哄蒙这个看描述是完全照搬的 android https://developer.android.com/training/multiscreen/screensizes 其他平台 MediaQuery 之类的本质上都是一回事。

    然后哄蒙在这上面又集成了数据通信,造了个“模块化”的噱头,本质上不就是多端共享同一套 UI 库么。

    总而言之,无论是造生态、造轮子、阻止其他系统运行、GMS 炒作,包装营销成“开源开放”的样子,自己从来就没想开源开放过。这家公司天生就抵触开放,对个人开发者极其不友好,应用商店都不让上架。下个 ide 跑个 demo 都要实名认证,系统镜像必须用云端机器调试,藏着捏着。
    locoz
        15
    locoz  
    OP
       2021 年 6 月 6 日
    @Jirajine #14
    “被逼无奈”当然跟制裁有关系啊,芯片不能跟上时代了、海外市场 GMS 没了,总得弄点特色来打差异化吧?要不然还怎么赚钱?

    “既然不是 home assistant 这种真正开源开放的平台”
    请定义什么叫“真正开源开放”,现在鸿蒙的设备互联库是已经开源了的,一个跟系统没啥关系且开源的东西你管它叫“同类竞品”、“没有任何区别”?至于“按揭开源就是为了让别的厂商来给他构建生态”,华为自己产品线还是比较齐全的,即使往大了做不了也可以保持自己的一亩三分地做得风生水起,再加上不管开源还是闭源都不影响让别的厂商来构建生态,你这话等同于废话...

    “flutter 和哄蒙的 ui 库在 android 平台上使用同样的方式实现,他自己的系统就是基于 aosp,所以才能在他自己的系统上运行”、“其他库不说,单一个 helloworld 肯定所有 aosp 系统都有能力跑起来”
    啥玩意?使用同样的方式实现等于换到其他 Android 系统上也能运行?你对一些系统 API 做了封装然后打包了个库,然后基于自己这个库写了个程序,这个程序里完全没有导入最初始的系统 API 库,而是完全依赖你自己的那个库来进行的功能实现,现在你说你在其他电脑上可以不装你自己的这个库直接运行这个程序?你觉得可能吗?


    “你肯定不是前端,这不就是喊了多少年的响应式布局么”
    我前面已经反复强调过华为的那套是啥样了,不再赘述。而你所说的响应式布局说白了就是一套 UI 依靠拉伸和换位的方式来在不同显示大小的情况下显示,这只是华为那一套东西的最后一步...

    “然后哄蒙在这上面又集成了数据通信,造了个“模块化”的噱头,本质上不就是多端共享同一套 UI 库么。”
    UI 库跟功能模块化有啥关系???一个是内置依赖库的事情,一个是微服务的事情,两个完全就不是一码事...

    “无论是造生态、造轮子、阻止其他系统运行、GMS 炒作,包装营销成“开源开放”的样子,自己从来就没想开源开放过。这家公司天生就抵触开放,对个人开发者极其不友好,应用商店都不让上架。”
    华为想不想开源开放那是它自己的事,现在的情况是它不开源开放它就得放弃这块市场。另外,你不能把不同部门的人干的事情混淆到一起,应用商店不让上架是审核部门的问题、抵触开放是部分部门的问题,跟鸿蒙这一块的有啥关系?事实上像华为云开源的东西还挺多的,并没有关起门来自己玩。

    至于“下个 ide 跑个 demo 都要实名认证,系统镜像必须用云端机器调试”,这当然很傻逼,而且很明显优势管理层的人傻逼,该骂。但这跟它有没有实际的东西有啥关系呢?
    Jirajine
        16
    Jirajine  
       2021 年 6 月 6 日
    @locoz #15 海外被制裁和国内物联网竞争有啥关系,难道被制裁之前就“不想弄点特色打败竞争对手”?

    flutter 和哄蒙都是使用 android 系统提供的框架实现的,启动入口 activity,监听各种事件,然后自绘 UI 。这就相当于你基于 webgl 开发了个 UI 框架,但是打出来的包把 html/js 藏到私有格式里面,只能用自家魔改的浏览器运行。实际上使用 webgl 开发的 UI 库完全可以在任何标准浏览器里运行。既没有人力物力脱离浏览器开发一个界面库,又想装作不是魔改浏览器套壳的样子。
    响应式布局完全就是“给不同设备(屏幕尺寸)专门定制好 UI,然后可以通过自适应的方式直接切换上去”,这是完全一样的东西。只不过一般网页开发的时候大家比较懒,顶多拉伸换位一下,实际上完全可以为每种屏幕尺寸的设备单独写一套布局。

    哄蒙造个噱头单抽出来一个模块直接丢到另一个设备上运行并且共享数据,看起来好像很唬人,实际上共享数据各家都一样,只不过哄蒙把它和 UI 库集成到一起了再加上多端共享同一套 UI 库。

    我说的一直都是一个中心:华为从来都不想开源开放,它只是在营销包装成开源开放的样子。你非要说“都是部分部门的问题”,这也太典了。他们的行为逻辑都是一样的,就是怎么封闭怎么来。它一直都想成为下一个 Apple 。
    locoz
        17
    locoz  
    OP
       2021 年 6 月 6 日
    @Jirajine #16
    你为啥这么喜欢只看一半呢?

    “芯片不能跟上时代了”这半句你是看不见吗?

    flutter 是直接把依赖库一起打包没错,但这关华为这套啥事?我在前面也已经讲过了:“而且华为加的那些库是嵌进系统里的,其他 Android 系统没有这些库,如果用了相关功能的话本来也就没法直接运行啊?另外你也并不能排除后面华为或第三方的人给“鸿蒙应用”加个带上依赖的库编译成 APK 的选项这种可能性,虽然这对华为想搞的生态肯定会是个重大的打击,华为自己基本不太可能这么做。”,这么长一段话你也看不见吗?

    “只不过一般网页开发的时候大家比较懒,顶多拉伸换位一下,实际上完全可以为每种屏幕尺寸的设备单独写一套布局。”
    我都说这么清楚了你还没明白吗?华为这套是华为直接把这个你偷懒没做的事情帮你做好了,你完全可以不用去做,一样能实现比较好的效果。

    “实际上共享数据各家都一样”
    实际上共享数据在其他地方还真没那么好的方案,鸿蒙这套是可以直接基于分布式文件系统和分布式数据库做到共享数据的,按华为的说法是开发者可以不需要关心数据具体怎么取,只需要像正常为单个设备开发时一样操作就行了。如果你要说各家都一样,那你可以举个例子出来看看是怎么个一样,据我所知之前还真没哪个知名企业或应用在客户端上搞分布式文件系统和分布式数据库,并通过这种方式来多端共享数据的,甚至可以说连这种多端共享数据的情况都很少。

    “只不过哄蒙把它和 UI 库集成到一起了”
    是分开的,并没有集成到一起。

    “华为从来都不想开源开放,它只是在营销包装成开源开放的样子”
    所以这关技术啥事呢?关已经开源出来的东西啥事呢?

    “你非要说“都是部分部门的问题”,这也太典了”、“他们的行为逻辑都是一样的,就是怎么封闭怎么来”
    事实如此,我前面也给你举了华为云的例子。同理,小米一些比较恶俗的营销同样是运营部门的问题、苹果高价低配也同样是管理层的问题,混淆到一起说整个公司都那样实在是太扯了。

    “它一直都想成为下一个 Apple ”
    谁说不是了呢?华为本来就是一直在学苹果,包括手机端禁止解 BL 锁之类的也都是在学苹果搞封闭,但这跟它现在放出来的东西有啥关系?
    keygen88
        18
    keygen88  
       2021 年 6 月 6 日
    在 V2 上不喷 HW 不能张显自己的"高级",哈哈哈。。。。。
    locoz
        19
    locoz  
    OP
       2021 年 6 月 6 日
    @keygen88 #18 二极管哪都有,并不是只有 V2 这样...另外,这种没有限制范围的说法实际上并不好,因为这代表着完全不能喷,但有些事情确实是该喷的。
    Jirajine
        20
    Jirajine  
       2021 年 6 月 6 日
    @locoz #17 物联网芯片不是早就”独立自主“了么,市面上基本都是国产的啊,这也能被限制,难道以前都在吹牛逼?

    为啥 flutter 能在多个平台上运行对生态是利好,而哄蒙应用能在其他系统上运行反而是”重大打击“?你这不也默认就是要搞封闭么。

    ”直接把这个你偷懒没做的事情帮你做好了“那你直说就是,这就是响应式组件啊,你去找找各种组件库,支持响应式的组件都可以在不同尺寸下自动调整布局,但这种灵活性很差,组件不满足需要还是要自己写。UI 这块真没什么新鲜事,包装个噱头就拿出来吹。

    数据互通共享标准就是各大”生态链“的核心,多端同步互通都是老掉牙的东西了,这也能造一堆概念,乍一听还以为是 ipfs 和 dht 呢。

    明明整个公司从上到下都是一套行事逻辑,苹果“高价低配”本来就是公司的核心理念和商业模式,怎么就成了“管理层的问题”,“上面领导本意是好的,都是底下人执行出了问题”,是不是别的问题还要 “底下人也没办法,都是上面要求的”,实在太典了。
    locoz
        21
    locoz  
    OP
       2021 年 6 月 6 日
    @Jirajine #20
    华为想做的本来就不是一个只针对物联网的东西,单有物联网芯片有啥用?更何况华为被制裁受损失最大的是手机、平板这些设备的市场,关物联网设备啥事?手机、平板这些设备没新芯片、没 5G 了,还没“系统”这种特色的话,非粉丝的用户凭什么买呢?
    还有啊,你为啥跟华为的营销一样,这么喜欢混淆多个事情到一起说?一边骂华为一边自己学华为?

    “为啥 flutter 能在多个平台上运行对生态是利好,而哄蒙应用能在其他系统上运行反而是”重大打击“?”
    这种废话问题你是怎么想得出来的? flutter 就是个单纯的框架而已,而华为的 UI 库、设备互联库虽然可以单拿出来,但本质上它们都算是鸿蒙的一部分,这么大的区别你不会不明白吧?如果所谓的“鸿蒙应用”能在 [初期] 就没有任何障碍地在其它系统上运行,那鸿蒙的意义何在?这还不叫重大打击吗?

    “那你直说就是,这就是响应式组件啊,你去找找各种组件库,支持响应式的组件都可以在不同尺寸下自动调整布局”
    我已经反复强调过很多遍了,华为这套东西里替开发者做的不是那种简单的调整布局,而是直接就是一个新的样式,这两种做法是完全不同的效果。前面我也说了:“这个所谓的“一次开发多端部署”最典型的例子就是一个有列表页的应用可以在手表上直接只展示主体的列表部分,我记得之前看到华为的哪个视频里有演示”,你可以自己找一下。

    “数据互通共享标准就是各大”生态链“的核心,多端同步互通都是老掉牙的东西了”
    请举例,别打嘴炮。

    “明明整个公司从上到下都是一套行事逻辑”
    前面已经给你反复举例过了,不再赘述。

    “苹果“高价低配”本来就是公司的核心理念和商业模式”
    是吗?像苹果的电脑在视频创作领域可并不是高价低配的,相反还很划算,你管这叫核心理念和商业模式?提醒你一下,我前面说的高价低配指天价内存、天价数据线、天价轮子之类的东西,这种是典型的管理层拍脑袋定价弄出来的事情,底下的人有点脑子都不会定出这种价,这定价摆明了就是不想卖。
    locoz
        22
    locoz  
    OP
       2021 年 6 月 6 日
    @Jirajine #20 看你扯这些看得有点累了,如果你压根就不想好好交流,只会像前面这样要么只看一半、要么混淆多个事情到一起说,那不聊也罢,直接互 block 不香吗?
    Jirajine
        23
    Jirajine  
       2021 年 6 月 6 日
    @locoz #21 哄蒙就是物联网系统啊,上面说的不一直都是哄蒙的物联网生态链么,关手机啥事呢,手机上就是个魔改 android 。制裁也是制裁手机、gms 这些,哪里影响到物联网了呢?它想要“弄点特色打败竞争对手”与是否被制裁没有关联。况且也没弄出来啥特色,“非粉丝的用户凭什么买呢?”,很显然,凭营销啊。

    用的人越多生态就越好,用户在其他手机上安装哄蒙应用与安装哄蒙系统的硬件交互,就危害生态了?米家 App 开发 iOS 版是否危害了米家生态?除非你这里的生态实际上指的是壁垒,开源开放不会危害生态,只会危害壁垒。

    “新的样式”和“调整布局”就是一回事,你用 media query 为不同的尺寸指定不同的样式,做成什么样完全取决于你自己。你可以写一个列表组件,让它在宽屏横排、窄屏竖排,小屏就只展示主体部分。

    什么是“生态链”?就是用同样的标准接口交互,你按它的规范传输,你就接入了它的生态链。

    苹果所有的产品都是这种理念啊,你要是在乎性价比那苹果的所有东西都是“高价低配”,你就不是它的目标客户。你要真把这些玩意降价了,它的目标客户反而不愿意买呢。明明都是同一套逻辑,只是你自己觉得部分能接受部分不能接受,“公司是好的问题出在管理层”这我都无话可说了,管理层难道不代表公司吗?
    sugarkeek
        24
    sugarkeek  
       2021 年 6 月 6 日
    请问你说的华为分布式观点有出处吗?
    locoz
        25
    locoz  
    OP
       2021 年 6 月 6 日
    @Jirajine #23
    谁跟你说“鸿蒙就是物联网系统”了?鸿蒙的前身 liteos 才是物联网系统,现在的鸿蒙只能算是个品牌名。

    “上面说的不一直都是哄蒙的物联网生态链么,关手机啥事呢”、“制裁也是制裁手机、gms 这些,哪里影响到物联网了呢?”
    还搁这绕圈子呢?前面都说了“华为想做的本来就不是一个只针对物联网的东西”,而“手机、平板这些设备没新芯片、没 5G 了”,请问没手机玩啥?如果不搞个“系统”特色,华为手机卖不出去单卖物联网产品能赚几个钱?

    “用的人越多生态就越好”的前提是鸿蒙已经成气候、有能力直接吞并别人的用户,现在鸿蒙连个手机操作系统都需要以 AOSP 为主体才能正常用,这时候如果华为自己把所谓的“鸿蒙应用”弄成一个可以直接在其他 Android 系统上运行的状态,别人还凭什么要用所谓的鸿蒙系统?米家 APP 开发 iOS 版跟这有啥关系?米家本来就是个纯物联网设备管理系统(或者说是工具),跟操作系统完全是两码事,你咋又开始故意混淆了?

    笑死我了,“新的样式”和“调整布局”就是一回事这种结论都说得出来,PC 版微信和手机版微信的 UI 区别是“新的样式”,所以你对手机版微信“调整布局”能做出和 PC 版微信一样的界面?注意这个“调整布局”可不能动按钮哦。还是前面说的,网上有相关视频,自己去看,别睁着眼睛说瞎话。

    “什么是“生态链”?就是用同样的标准接口交互,你按它的规范传输,你就接入了它的生态链。”
    还在说废话,你自己看看你这句话跟前面说的“数据互通共享标准就是各大”生态链“的核心,多端同步互通都是老掉牙的东西了”这一句有啥区别?鸿蒙的情况我已经告诉你了是基于分布式文件系统和分布式数据库实现,你倒是举几个同样这么做的例子出来看看?谈到细节就开始扯概念,你这和华为极端粉们谈到技术就开始扯政治有啥区别?

    “苹果所有的产品都是这种理念啊,你要是在乎性价比那苹果的所有东西都是“高价低配””
    恰恰相反,像前面举的视频创作领域的例子,苹果就是性价比之选,尤其是在 M1 芯片出来之后更是性价比爆表。

    “你要真把这些玩意降价了,它的目标客户反而不愿意买呢”
    还是以视频创作领域为例,降价了只会卖得更多...

    "明明都是同一套逻辑,只是你自己觉得部分能接受部分不能接受"
    我自始至终说的不都是 [一个企业里的部分人干出了奇葩事情不代表整个企业都这样] 吗?是你在扯 [一个企业里的人干出了奇葩事情就代表整个企业从上到下都这样] ,这完全是两种不同的逻辑。

    “管理层难道不代表公司吗?”
    一个管理层的人或者一个事业群的管理层能代表整个公司吗?

    ---

    我累了,你这要么只看一半、要么混淆多个事情到一起说、要么顾左右而言他的样子跟华为的恶俗营销和华为的极端粉没什么两样,身为做技术的却连一些非技术人员都不如,我就不陪你继续浪费时间了,送你个 block,慢走不送。
    locoz
        26
    locoz  
    OP
       2021 年 6 月 6 日
    @sugarkeek #24 是基于华为官方发布的的文档、视频、代码,以及华为官方人员和接触过华为官方人员的人的言论,结合一些以往做过、见过的同类功能的实现原理综合而成的理解,所以你要说出处的话,前面说的都是出处。
    GrayXu
        27
    GrayXu  
       2021 年 6 月 7 日   ❤️ 1
    我觉得你说的挺客观的吧……我觉得有人愿意在 system level 做一些新 feature 还是挺好的,主要还是终端侧的营销太恶心人。
    likai
        28
    likai  
       2021 年 6 月 7 日
    @locoz 别的就不评论了.作为一个前端 ,最近也正在边看文档边用 JS 搞鸿蒙 OS APP..UI 这个感觉你的理解偏差很大.
    如果你实在理解不了别人说的意思.建议百度一下 bootstrap 这个前端框架
    用电脑和手机打开同一个 bootstrap 页面看看
    响应式布局在不同环境是拉伸还是换位还是重新排列,不同框架有不同的默认处理方式,
    如果不喜欢默认处理方式,自己用媒体查询重写样式就好了.
    鸿蒙 JS UI 的媒体查询文档
    https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-components-common-mediaquery-0000000000625942
    这种响应式布局媒体查询 HTML5 出来时就有的概念真没什么高大上,也不是什么新概念.
    就像 android 根据不同的屏幕分辨率加载不同尺寸的图标,这很神奇么?
    同一个 class 同一个 ID,在不同媒体下重写样式实现不同背景.不同颜色,不同字体,不同大小.不同布局或者在某个尺寸下不显示不是最基本的么?

    https://www.w3.org/html/ig/zh/wiki/CSS3%E5%AA%92%E4%BD%93%E6%9F%A5%E8%AF%A2
    locoz
        29
    locoz  
    OP
       2021 年 6 月 7 日
    @likai #28 bootstrap 、vue 之类的前端框架我又不是没用过,加上我本来就是做爬虫的,见过的网站和显示大小不同的情况可能比你们做前端的还多,用不着给我科普...所谓的响应式布局是个啥情况我很清楚。

    你说的这个跟我前面说的完全是两个不同的东西,我前面说的是之前华为的一个视频里演示过的,不同显示大小分级的情况下完全就是不同的 UI,不是一般的那种拉伸、换位,而且这个不同的 UI 是预设的。

    我从来没说过什么神奇不神奇,只是从目前看到过的情况来说以往的响应式布局和华为那个确实不一样,人家把多端共用一个 UI 的门槛拉得更低了是事实。不要下意识否认,先去了解一下。
    wvwking
        30
    wvwking  
       2021 年 6 月 7 日
    251 所謂的分佈式 == 吹牛逼
    locoz
        31
    locoz  
    OP
       2021 年 6 月 7 日
    @wvwking #30 “分布式”当然是吹牛逼,所以我打了双引号,但底下的技术实现还是有实际的东西的。
    likai
        32
    likai  
       2021 年 6 月 7 日
    @locoz
    不同分级不同 UI 不就是基于媒体查询重写样式?
    预置媒体查询默认样式每个响应式 UI 框架都有.
    鸿蒙的 UI 框架有一默认预置样式不也在情理之中?
    <div>
    <div class="container">
    <text class="title">Hello World</text>
    </div>
    </div>
    /* xxx.css */
    .container {
    width: 300px;
    height: 600px;
    background-color: #008000;
    }
    @media (width >= 900) {
    .container {
    width: 500px;
    height: 500px;
    background-color: #fa8072;
    }
    }
    @media (width <= 500) {
    .container {
    width: 300px;
    height: 300px;
    background-color: #008b8b;
    }
    }
    既然你是作爬虫的.
    你觉得有什么布局是在这个里面改不了的?
    不同分辨率完全不同的布局能不能改这 css 样式实现?
    wvwking
        33
    wvwking  
       2021 年 6 月 7 日
    @locoz iOS 玩剩下的東西, AirPlay + AirDrop + handoff
    locoz
        34
    locoz  
    OP
       2021 年 6 月 7 日
    @likai #28 刚刚查了半天想找之前那个视频没找到,然后我又找别的资料确认了一下,按现在华为的说法实现这种效果的东西叫模板,从代码上来看指向的就是你说的媒体查询,这就确实跟 UI 库没啥关系了。如果之前演示的那个东西就是这个模板的话,那它和其他 UI 框架确实没啥区别...就不知道是之前华为那个视频刻意隐藏掉了这部分细节还是我看漏了,又或者是确实有但因为实际没那么好所以没放出来,印象中之前是确实没这方面的描述,视频中的代码也没有相关处理,直接就实现了同样的效果。
    locoz
        35
    locoz  
    OP
       2021 年 6 月 7 日
    @likai #32 css 想怎么实现就怎么实现没问题啊,但这个到底是普通的模板还是直接 UI 库里实现的还是存疑吧,之前那个视频我再找一找,看看到底啥情况。
    locoz
        36
    locoz  
    OP
       2021 年 6 月 7 日
    @wvwking #33 一个相当于是协议和 SDK,一个是功能,混在一起对比有啥意思...iOS 有这些功能但没法让开发者也轻松地实现类似功能啊。
    wvwking
        37
    wvwking  
       2021 年 6 月 7 日
    @locoz 作為系統提供的功能, 開發者本身也不需要再次實現啊. 再者說, AirPlay server 的功能有一堆電視和盒子去做了第三方實現.
    likai
        38
    likai  
       2021 年 6 月 7 日
    @locoz
    华为 JS ui 库其实没啥说头.和各种小程序实现方法应该类似(瞎猜),,
    但如果华为能把 java ui 搞得和 JS ui 一样支持跨设备组件,哪确实值得讨论一下.
    locoz
        39
    locoz  
    OP
       2021 年 6 月 7 日
    @wvwking #37 跟系统提供的功能没啥关系,系统提供的都是一些比较通用的功能,而华为这套是实现功能用的协议啊...

    举个简单的例子,假设你弄了一个所谓的无线扩展坞,插个存储设备上去就能像 NAS 一样提供文件服务,然后你需要能在手机端直接读取上面的文件,在 iOS 上系统有提供这种功能吗?没有吧?

    而具体实现起来的话,你是不是得专门写一个或者找一个基于 WIFI 之类的通信+设备发现的库?但是华为这套直接弄了个分布式文件系统,连接部分也被极其简化了,你是不是就可以直接在手机端去跟读本地文件一样读就完事了?省了一大堆麻烦事,这就是它的价值啊。
    locoz
        40
    locoz  
    OP
       2021 年 6 月 7 日
    @likai #38 😂慢慢看吧,反正鸿蒙这套东西现在也还没成气候,手机版鸿蒙都还得以 AOSP 为主体才算能用,UI 库这块就更不可能是重点了,毕竟之前挖的“随时可用”的坑都还没填完呢。
    wvwking
        41
    wvwking  
       2021 年 6 月 7 日
    @locoz iOS 上直接用 smb 協議唄
    locoz
        42
    locoz  
    OP
       2021 年 6 月 7 日
    @wvwking #41 那再具体一点,假设你的需求导致不能直接用系统里那个添加 smb 协议服务器查看文件的功能,而是需要专门弄个 APP 来做,那不就是我前面说的得专门写一个或者找一个操作 smb 协议的库吗?而如果有像把本地文件和(多)远端的文件一起显示的需求的话,就不管是不是专门弄个 APP 做都得自己基于协议来实现了不是吗?在这种复杂情况下,鸿蒙这种在基础设施上直接实现好的就会很省事了,越复杂的效果越是这样。
    learningman
        43
    learningman  
       2021 年 6 月 7 日 via Android
    你不说我也知道。
    那请问,华为做的营销,然后被煽动的普通人把我们这些人骂上天的时候,请问楼主在哪里?楼主是在客观吗?
    locoz
        44
    locoz  
    OP
       2021 年 6 月 7 日
    @learningman #43 在给普通人科普还被抬杠,只不过是在知乎评论区你看不到而已。
    learningman
        45
    learningman  
       2021 年 6 月 7 日 via Android
    @locoz 那完事了,那你就不反感华为的营销?你现在跟我讲华为的技术人员也无辜,我好像也没有看到有那个是特别针对写代码的人的说法啊。
    况且,那个负责批量把安卓换成鸿蒙的哥们,真的不知道自己在做什么吗?技术是无辜的,但是人不一定。
    locoz
        46
    locoz  
    OP
       2021 年 6 月 7 日
    @learningman #45
    “那你就不反感华为的营销?”
    我在文中“华为真正该被骂的点是什么?”这部分里已经说过了,不再赘述。

    “好像也没有看到有那个是特别针对写代码的人的说法啊”
    多了去了...极端华为黑里说华为没能力、做不出之类话的人一堆一堆的,你自己主动忽略了而已。

    “那个负责批量把安卓换成鸿蒙的哥们,真的不知道自己在做什么吗?技术是无辜的,但是人不一定。”
    鸿蒙这个项目(品牌)下并不是只有拿 AOSP 为主体的部分,那个批量替换的哥们在这方面不无辜,但其他做着实事却被连带着骂的人很无辜。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3317 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 62ms · UTC 00:36 · PVG 08:36 · LAX 17:36 · JFK 20:36
    ♥ Do have faith in what you're doing.