HarmonyOS技术社区 · 2020年10月26日

研究了一段时间HarmonyOS的体会

去年鸿蒙1.0发布时,纯当听听而已,毕竟国产操作系统,跟国足是很像的。

今年鸿蒙2.0发布,上手体验了一把写hello world,在轻量级智能穿戴上成功跑起来

不算下载开发工具及相关SDK的时间,从打开DevEco Studio,新建项目,到成功运行,前后也就10分钟左右。

给我的感觉是:我要好好谋划,弄一个鸿蒙应用出来。

于是接下来仔细研究了鸿蒙2.0的开发方式:

1、通过Java开发。

综合感受:这种方式重新封装一遍Android的Api

论坛看到有一个帖子,有人问“无需改动现有Android代码或者只需要改动很少,是否可以接入鸿蒙”,

有版主说了句:“需要重写,但是难度不大”

很尴尬的回复,对于使用Java开发鸿蒙,如果不能做到低成本接入,那么使用Java作为鸿蒙首选,意义不大。

反正使用Android Studio开发的App,鸿蒙同样也能支持,后续必定也会继续支持。

2、通过JS开发。

这是我比较喜欢的方式,小程序,网站等都需要的js,在这个开发横流的时代,速度决定一切。

虽然我不专门做JS前端开发,不过对于这种快速上线应用的方式还算略知一二。

拿微信小程序来说,全民皆用的微信,在其中运行了众多小程序

从这个角度来看,微信其实已经早就是一个操作系统了,只是没有手机和穿戴设备而已。

3、通过C++开发。

这个还没有试,主要还是太懒,虽然懂点C++,但精力有限,不想为了开发一个App,耗费太多的学习成本。

不知能否兼容MFC?或者是拓展使用C#开发鸿蒙应用后,支持UWP?

初试鸿蒙后,有个疑问,为什么写个鸿蒙UI这么费劲,完全按照Java的方式去做吧又不行,像小程序网页一样用

华为的hml方式吧,支持的组件又太少。

为了加强对鸿蒙的理解,我想了个试水项目,做一个在智能手表上每日可以自动更新图片的应用。一是练手:熟悉基础组件和网络请求;二是熟悉消息处理:是否可以通过后台主动给智能手表推送消息。

首先遇到的问题,轻量级智能穿戴不支持网络接口调用,不支持网络调用,不支持网络调用。

当然论坛版主也有回复这个问题,可以通过华为的WearEngine服务,让轻量级穿戴设备与手机里的App通信,通过App的网络调用传递数据。

所以关键得先有App才可以实现轻量级穿戴设备的网络调用,但是,WearEngine服务暂时还没有开放

所以,得出结论:目前轻量级智能穿戴设备,只能开发单机版应用,单机版应用,单机版应用……

眼见轻量级智能穿戴设备无果,那就转到智能穿戴设备和TV进行开发吧

赶紧确定任务——学会如何发起网络请求,这个网络应用开发的基础操作。

文档中提示需要使用fetch,然而这个模块又没有自动打包进去

有版主回复,需要手动下载fetch.js文件,拷贝至sdk中,但运行仍然失败,提示错误,大致意思是没有网络请求授权

至今,也不知道在哪里配置这个授权……还是学艺不精,我准备暂时放弃了。

期待官方放一个通过js发起网络请求的示例,我是个憨憨,真搞不定了

暂时放弃网络请求功能,那就试试别的组件吧,先用image展示一个图片,图片放在common中,静态图片成功显示

改成带https的网络图片地址,加载不出来

改成带http的网络图片地址,还是加载不出来

难道图片域名不支持?需要像小程序一样,配置访问的安全域名?图片的格式有问题?图片的大小有问题?

………………

至于直接给智能穿戴设备推送通知,在没有App的情况下,貌似也还不支持(没有看到相关文档)

所以至今,这个自己设计用来练手的项目,一点没有推进,朋友问,你研究鸿蒙2.0开发研究如何呢?我只能回答,还在hello world。

想说的是:

1、希望鸿蒙能出一个更好的开发文档。特别是技术开发需要涉及到的基础,我希望在鸿蒙中开发更多好玩的应用,但无从下手。

比如:

(1)智能穿戴设备、轻量级穿戴设备,TV开发的区别?

(2) 使用js开发,引入的@system.*到底都有哪些?

(3)各种做应用开发的基础组件如何使用,使用的示例代码。

2、希望鸿蒙发布的文档尽量不要出错。

比如:《HarmonyOS开发文档(一)》 P206页,有这样一段关于页面间跳转的描述

图片.png

实际上根本就没有push的操作,更是没有对参数传递进行说明,正确的页面路由应该使用replace。错误的文档,有一种被调戏的感觉。

一点建议:

感觉如果鸿蒙使用js作为首选开发语言,做好华为前端UI的HML组件

简化DevEco Studio的项目文件配置管理,只使用css,hml,js的MVVM的方式去开发,应该会让更多开发者加入进来

Java,C++,C#等高级语言,该写后台写后台,该写接口写接口,鸿蒙专注前端的应用开发及服务框架就好。

鸿蒙没必要死磕底层操作系统,操作系统的本质也就是一个软件程序

做一个能够方便开发者开发应用,能够支撑好这些应用的华为鸿蒙程序,就足够了。

做windows系统的比尔盖茨都已经退休了,Linux也已经坐实开源操作系统,移动端Android和IOS二分天下

鸿蒙离不开Android,所以暂时也没必要去磕

在自家的硬件生态中,弄一个软件平台方便众多开发者为硬件开发应用,就是最牛的国产操作系统。

说完了,一点心得,跟大家分享下,期待鸿蒙更好。


想了解更多内容,请访问:
51CTO和华为官方战略合作共建的鸿蒙技术社区
https://harmonyos.51cto.com?jssq

推荐阅读
关注数
2947
内容数
446
华为鸿蒙相关技术,活动及资讯,欢迎关注及加入创作
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息