研究了一段时间HarmonyOS的体会

bingfeng
发布于 2020-10-24 11:41
浏览
0收藏

去年鸿蒙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页,有这样一段关于页面间跳转的描述研究了一段时间HarmonyOS的体会 -鸿蒙开发者社区

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

 

 

一点建议:


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

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

 


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

 


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

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

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

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

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

 

 

 

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

分类
1
收藏
回复
举报
2条回复
按时间正序
/
按时间倒序
新新人类
新新人类

好文章,有用!

 

回复
2020-10-24 11:50:08
索姆拉
索姆拉

我说下我的理解,不一定对。

  

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

轻量级穿戴设备只能使用蓝牙通讯,或许还有你说的WearEngine,目前一般主要是运动手表,比如最新上市的华为GT2 Pro,或许以后会涉及到眼镜之类的,轻量级开发因为内存的限制,只能使用JS UI,无法使用java。

 

智能穿戴设备的,应该蓝牙和wifi都能用,而且除了JS UI还能使用java开发。

TV和智能穿戴设备,目前看来好像就是屏幕尺寸和形状不一样。

 

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

在API参考的接口中,这些都列出来了,包括文件系统、网络等等

 

包括你最关心的fetch,地址我也贴在这

https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-apis-network-data-request-0000000000626077

 

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

我写过一个简单的,但是太简陋了。简单看看就行

https://zhuanlan.zhihu.com/p/245309523

https://zhuanlan.zhihu.com/p/247974662

https://zhuanlan.zhihu.com/p/248956027

还有官方的示例代码即将上线

https://developer.harmonyos.com/cn/home

如图

 

还有官方JS UI的代码示例库

https://gitee.com/openharmony/ace_lite_jsfwk/tree/master/examples/showcase/src/main

你下载下来自己就能运行。

 


最后,推荐你一个JS UI的教程,能解决很多困惑

https://www.bilibili.com/video/BV1hv411179b

回复
2020-10-24 12:14:13
回复
    相关推荐