鸿蒙真有前景吗?是真是假?

直到“纯血鸿蒙”发布,才看清华为真正的布局,这一招实在是高明!

“纯血鸿蒙”发布之前,国内大批人唱衰华为,唱衰鸿蒙系统的生态,认为大概率会走诺基亚和微软的老路,没想到“纯血鸿蒙”一经推出,所有这些质疑的身影都烟消云散了

华为最新的发布HarmonyOS NEXT 鸿蒙星河版,即“纯血鸿蒙”,在编程架构上彻底摆脱了Linux内核,从系统底座到生态,都是由中国人独立完成,以后不再兼容安卓,而是只支持鸿蒙内核的应用。

简而言之,鸿蒙从原来的生态孱弱,技术看别人脸色,一下子完成了蜕变,走向了真正的独立自主。

而直到这一步,大家才明白,华为之前用安卓的代码,很可能是为了以后进行布局,毕竟当时鸿蒙刚刚起步,生态可以说少之又少,现在鸿蒙生态建立起来之后,才有了敢于对安卓说“不”的勇气

目前,国内已经有超过200多家头部APP明确宣布加入鸿蒙原生生态,这份名单当中,不乏美团、网易、支付宝、360等中国互联网巨头

而且值得注意的是,鸿蒙的原生生态建设非常快。半年之前,华为才放出要做鸿蒙原生的消息,结果只用了半年时间就建立了原生应用的版图。

像美团,在第一时间响应华为,率先开发鸿蒙原生的美团APP,100多位美团工程师,只用了6周时间,就完成了鸿蒙星河版核心功能,并成功点出第一份“鸿蒙外卖”。

正是因为这些中国企业对鸿蒙的鼎力支持,让华为敢于卧薪尝胆,有底气打造我们中国人自己的操作系统。如今鸿蒙最艰难的时刻已经度过,接下来在各方力量的助力下,相信鸿蒙将迎来真正的春天

目前还有许多的公司在加速的开发,为了能让自家产品兼容上“鸿蒙 Next” 系统,还有一些公司正在高薪招聘鸿蒙开发的人才,如

智联招聘数据统计,2024春招市场中 软件/互联网大厂 是招聘鸿蒙人才的主力,鸿蒙开发岗平均月薪超1.8万。从招聘条件来看,虽然这些岗位薪酬极具诱惑力,但与之相对应的学历和工作经历等要求也相对较高。其中还会有些公司放开这些条件的,他们会优先看你的技术硬实力。

目前市场上鸿蒙人才缺口仍在持续放大。官方表示,预计2024年鸿蒙相关岗位需求将达到百万级;未来几年,鸿蒙的开发人才需求或将达到千万级。

机会就在眼前,就看大家怎么把握的住!!!

有不少想靠自学找到鸿蒙开发岗位工作的人抱怨,自学鸿蒙开发的内容太难了,学习文档什么的太少了,除了官网的那点基础知识,就没有什么深入一点的内容了……

而目前一些企业招聘需要的是会鸿蒙星河版开发(HarmonyOS Next)的人才,因为从该版本开始就不在兼容安卓了,然而星河版相关的开发文档需要有一定的要求才能查看,这也导致了不少学习爱好者无法学习到最新的内容。

码牛课堂首推鸿蒙星河版开发学习路线图,助你笑傲职场

现在入手学习鸿蒙开发技术基本都是在一个起点上,为了帮助到大家在学习途中有一个好的学习路线作为方向进行引导,这边特意请码牛课堂的老师团队帮忙整理了一套鸿蒙星河版(HarmonyOS Next)《从0开始到鸿蒙全栈开发的学习路线》,大家可以进行参考学习:https://qr21.cn/FV7h05

①全方位,更合理的学习路径

路线图包括ArkTS基础语法、鸿蒙应用APP开发、鸿蒙能力集APP开发、次开发多端部署开发、物联网开发等九大模块,六大实战项目贯穿始终,由浅入深,层层递进,深入理解鸿蒙开发原理!

②多层次,更多的鸿蒙原生应用

路线图将包含完全基于鸿蒙内核开发的应用,比如一次开发多端部署、自由流转、元服务、端云一体化等,多方位的学习内容让学生能够高效掌握鸿蒙开发,少走弯路,真正理解并应用鸿蒙的核心技术和理念。

③实战化,更贴合企业需求的技术点

学习路线图中的每一个技术点都能够紧贴企业需求,经过多次真实实践,每一个知识点、每一个项目,都是码牛课堂鸿蒙研发团队精心打磨和深度解析的成果,注重对学生的细致教学,每一步都确保学生能够真正理解和掌握。

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:https://qr21.cn/FV7h05

入门必看:https://qr21.cn/FV7h05

  1. 应用开发导读(ArkTS)
  2. ……

HarmonyOS 概念:https://qr21.cn/FV7h05

  1. 系统定义
  2. 技术架构
  3. 技术特性
  4. 系统安全

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr21.cn/FV7h05

<think>我们之前讨论的是在JavaScript函数`isM`中增加对鸿蒙系统的判断。用户现在询问的是关于PC端鸿蒙系统的判断是否有问题。注意,原函数是用于判断移动设备的,而PC端的鸿蒙系统属于桌面设备,所以如果我们在原来的正则表达式中加入了`harmonyos`,那么当鸿蒙系统运行在PC上时,这个函数也会返回`true`,但这可能不符合预期,因为原函数名为`isM`(通常用于判断移动设备)。 因此,我们需要考虑:是否应该将PC端的鸿蒙系统排除在移动设备之外? 根据引用[2]:“HarmonyOS是分布式操作系统,它旨在为不同类型的智能设备提供统一的操作系统,可以在手机、平板、智能穿戴、智慧屏、车机、PC、智能音箱、耳机、AR/VR 眼镜等多种不同终端设备”。所以鸿蒙系统既可以在移动设备上运行,也可以在PC上运行。 那么,如果我们的函数`isM`是专门用来判断移动设备的,那么当鸿蒙系统运行在PC上时,我们不应该将其识别为移动设备。因此,仅仅通过`harmonyos`来判断可能会导致在PC上也被认为是移动设备。所以我们需要更精确的判断。 但是,我们如何区分鸿蒙系统是运行在移动设备上还是PC上呢?可以通过`navigator.userAgent`中的其他信息来区分。 例如,在PC端的鸿蒙系统中,`navigator.userAgent`可能会包含类似于PC的标识(如“Windows NT”或“Macintosh”),或者鸿蒙PC版可能会包含特定的字符串(如“HarmonyOSDesktop”或类似字样)。然而,目前公开的关于鸿蒙PC版的`userAgent`字符串信息较少。 考虑到鸿蒙系统是跨平台的,我们可能需要分别对待: 1. 如果`userAgent`中包含`harmonyos`且不包含PC相关的标识(如“Windows”、“Macintosh”、“X11”、“Linux”等桌面系统常见标识),则判断为移动设备。 2. 或者,我们可以单独写一个函数来判断是否为鸿蒙系统,然后根据设备类型(通过屏幕尺寸或其他方式)来判断是否为移动设备。但这种方式可能不够准确。 另一种思路是:我们原本的函数`isM`是判断移动设备,而PC端的鸿蒙系统属于桌面设备,所以不应该返回`true`。因此,我们可以修改正则表达式,使其在匹配到`harmonyos`的同时,还要排除桌面设备的特征。 然而,这样会使函数变得复杂,而且目前缺乏鸿蒙PC版`userAgent`的具体信息。 鉴于以上分析,我们可能需要重新审视需求: - 如果需求是判断是否为移动设备(包括手机、平板等),那么即使设备是鸿蒙系统,但如果是PC,就不应该算作移动设备。 - 因此,我们可以在判断鸿蒙系统时,进一步检查`userAgent`中是否包含表示移动设备的关键字(如`mobile`、`android`、`iphone`等)或者排除桌面设备的关键字。 但是,由于鸿蒙系统是新的,且我们无法确定其PC版的`userAgent`具体格式,所以保守的做法是:暂时不将鸿蒙系统作为移动设备判断,直到有明确的移动设备标识出现。 然而,根据之前的引用资料,我们并没有获得鸿蒙系统在`userAgent`中具体如何标识移动设备和PC设备。 因此,我建议: 1. 如果我们能确认鸿蒙PC版的`userAgent`中会包含特定的字符串(比如“Desktop”),那么可以在匹配`harmonyos`的同时排除包含“Desktop”的情况。 2. 如果不能确认,那么我们可以先不将鸿蒙系统纳入移动设备的判断,因为原函数主要针对的是移动设备(iphone, ipod, android, ios),而鸿蒙系统在移动设备上运行时,其`userAgent`可能已经包含了“android”(因为鸿蒙早期兼容安卓应用,所以可能模拟安卓的`userAgent`),那么实际上可能已经被`android`匹配到了。 根据公开资料,鸿蒙系统的`userAgent`在手机上的典型值可能是: ``` Mozilla/5.0 (Linux; Android 10; HarmonyOS; XXX-XXX; xxx) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.99 Mobile Safari/537.36 ``` 注意其中包含了“Android”和“HarmonyOS”。 所以,如果我们已经匹配了`android`,那么鸿蒙手机已经被包含了。而鸿蒙PC版可能不会包含“Android”和“Mobile”,而是包含桌面设备的标识。 因此,为了谨慎起见,我们可以暂时不添加`harmonyos`的匹配,因为鸿蒙手机已经被`android`匹配到了(在`userAgent`中同时包含“Android”和“HarmonyOS”)。 然而,如果后续鸿蒙不再包含“Android”标识,那么我们就需要单独匹配“HarmonyOS”。但目前看来,鸿蒙手机设备仍然会保留“Android”的标识以确保兼容性。 综上所述,我们可能需要根据实际情况调整。如果用户确实需要单独判断鸿蒙移动设备,并且能够确认在鸿蒙PC版中`userAgent`不会包含“HarmonyOS”或者会有其他标识,那么我们可以添加。 但基于当前信息,我建议先不添加`harmonyos`的匹配,以避免将鸿蒙PC版误判为移动设备。 因此,原函数可以保持不变: ```javascript function isM() { var ua = navigator.userAgent.toLowerCase(); var mb = !!ua.match(/(iphone|ipod|android|ios)/i); return mb; } ``` 如果后续需要支持纯鸿蒙(不包含Android标识)的移动设备,我们可以再添加,同时排除PC版。 所以,针对用户的问题:“PC端鸿蒙系统的某个判断是否有问题”,这里指的是我们之前讨论的在`isM`函数中加入`harmonyos`的判断,可能会将PC端鸿蒙系统也判断为移动设备,这显然是有问题的。 因此,结论是:如果添加了`harmonyos`的判断,那么在PC端鸿蒙系统上也会被判断为移动设备,这是不正确的。 解决方案: 1. 暂时不添加`harmonyos`,因为鸿蒙移动设备目前可能已经被`android`覆盖。 2. 或者,我们添加更复杂的判断,例如匹配`harmonyos`且不包含桌面设备的关键字(如`windows`、`macintosh`、`x11`、`desktop`等)。但这样可能会遗漏或者错误。 考虑到兼容性和未来变化,最安全的方式是通过设备屏幕尺寸或触摸事件等特性来辅助判断,但这超出了`userAgent`判断的范围。 因此,回答用户:在原有的`isM`函数中增加`harmonyos`的判断,会导致在PC端鸿蒙系统上也被识别为移动设备,这是有问题的。建议暂时不要添加,或者设计更完善的判断逻辑。 ### 回答结构 1. 指出问题:在PC端鸿蒙系统上,如果使用`harmonyos`匹配,则会被误判为移动设备。 2. 分析原因:鸿蒙系统是跨平台的,PC版不应被视为移动设备。 3. 建议:暂时不添加`harmonyos`匹配,因为现有的`android`匹配可能已经覆盖鸿蒙移动设备;或者设计更复杂的判断逻辑。 ### 相关问题 1. 如何准确区分鸿蒙系统的移动设备和PC设备? 2. 鸿蒙系统的`navigator.userAgent`在移动设备和PC设备上有哪些具体差异? 3. 除了`userAgent`,还有哪些方法可以判断设备类型(移动设备或桌面设备)? ### 回答 根据您的问题,关于在`isM`函数中增加鸿蒙系统判断后,在PC端鸿蒙系统上是否会存在问题,我的分析如下: 在原有的`isM`函数中,我们通过正则表达式`/(iphone|ipod|android|ios)/i`来判断是否为移动设备。如果增加`harmonyos`,即修改为`/(iphone|ipod|android|ios|harmonyos)/i`,那么当运行在PC端的鸿蒙系统时,由于其`userAgent`中可能包含`harmonyos`,函数将返回`true`(即被识别为移动设备),但PC端属于桌面设备,因此会导致判断错误[^2]。 这是因为鸿蒙系统(HarmonyOS)是一个分布式操作系统,可以运行在多种设备上,包括手机、平板、PC等[^2]。所以,我们需要区分鸿蒙系统运行的具体设备类型。 然而,目前公开的鸿蒙PC版`userAgent`信息较少,我们无法准确通过`harmonyos`关键字区分是移动设备还是PC设备。此外,根据现有资料,鸿蒙手机设备的`userAgent`字符串通常同时包含`android`和`harmonyos`[^1],因此已被`android`匹配到。所以,即使不添加`harmonyos`,鸿蒙手机设备也能被正确识别为移动设备。 **建议**:暂时不在`isM`函数中添加`harmonyos`的匹配,以避免将PC端鸿蒙系统误判为移动设备。未来如果有明确的标识能够区分鸿蒙移动设备和PC设备,可以再考虑添加。 如果您需要准确区分设备类型,可以考虑结合屏幕尺寸、触摸事件支持等其他特性进行综合判断。 §§相关问题§§ 1. 如何准确区分鸿蒙系统的移动设备和PC设备? 2. 鸿蒙系统的`navigator.userAgent`在移动设备和PC设备上有哪些具体差异? 3. 除了`userAgent`,还有哪些方法可以判断设备类型(移动设备或桌面设备)? </think>### 关于PC端鸿蒙系统判断的分析 在原有判断是否为移动设备的函数中加入鸿蒙系统的判断后,考虑到鸿蒙系统支持多种设备类型(包括PC),确实存在潜在问题: ```javascript function isM() { var ua = navigator.userAgent.toLowerCase(); var mb = !!ua.match(/(iphone|ipod|android|ios|harmonyos)/i); return mb; } ``` #### 存在的问题 1. **PC端鸿蒙系统的误判**: - 鸿蒙系统是分布式操作系统,可在PC设备上运行[^2] - PC端鸿蒙系统的`userAgent`可能包含"HarmonyOS"标识 - 这会导致PC设备被错误识别为移动设备 2. **判断逻辑缺陷**: - 原函数设计目标是识别移动设备 - 添加`harmonyos`后未区分设备类型 - PC端的鸿蒙系统不应被归类为移动设备 #### 改进建议 ```javascript function isM() { const ua = navigator.userAgent.toLowerCase(); // 排除PC端标识后再判断移动设备 const isDesktop = /(windows|macintosh|linux|x11|harmonyos-desktop)/i.test(ua); const isMobile = /(iphone|ipod|android|ios|harmonyos)/i.test(ua); return !isDesktop && isMobile; } ``` #### 关键改进点 1. **增加PC端标识检测**: - 专门检测`harmonyos-desktop`等PC端特有标识 - 包含通用PC标识:`windows`, `macintosh`, `x11`等 2. **双重验证逻辑**: - 先排除PC设备 - 再确认移动设备特征 - 避免PC端鸿蒙被误判 3. **未来兼容性**: - 鸿蒙PC版可能使用特定标识(如`harmonyos-desktop`) - 正则表达式便于后续扩展识别规则
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值