前面写过几篇关于居家养老的文章,文中提及了鸿蒙系统的分布式总线对开发相关设备所带来的优势。作为工程师,即便退休了,也还是想亲身体验一下鸿蒙设备的开发过程,以便使我前面的建议能更加有说服力。

        于是便动手尝试,初步阅读资料后,因打算安装的 PC 资源有限,便考虑用一台运行 Win 系统的 PC 和一台运行 Linux 的 PC 共同构建开发环境,以满足 DevEco Device Tool 同时需要Win环境和Linux环境的要求。

        由于对 linux 不熟,且在安装 Linux 过程中时常会涉及到从外网下载,一路上踩坑不断,加之在两台机器上安装,Linux 许多操作命令无法直接从 Win 环境的的网页上粘贴,手工敲入太麻烦,最后以失败告终。

        出去玩了一圈,孩子回来又耽搁了一个月,最近天热不宜出门,且做了个小手术(胆囊摘除)需要在家休息,于是二次启动。

        这次准备充分一些,换了一台资源还行的笔记本电脑:华为 matebook X pro ,i7,16G内存,512G固态硬盘,重新安装了系统,因第一次安装 C 盘留小了,导致每次安装软件都小心翼翼。这次C盘分配了400G,D盘100G。

        启动前好好看了前面买的润和软件所出的《HarmonyOS IoT 设备开发实战》一书,并买了一块 Hi3861 模块作为测试硬件。

        由于前段时间外出游玩时,觉得豆包还蛮靠谱,于是这次将豆包作为主要助手,全程遇到问题均请它帮忙。再用其它 AI  作为辅助。

        同时仔细阅读了华为官方网站:https://device.harmonyos.com/cn/docs 上的文档。

        信心满满,结果还是踩坑不断。

        第一个问题是:参考了太多渠道的信息,自认为能有效整合,结果是拼接的四不像,反而走了弯路。

        第二个问题是:过于相信AI所给出的答案,结果发现它偶尔也会”胡说“,关键是有些误导让我走得弯路不小。

        顺带肯定一下:AI 用于帮助排除操作中产生的错误还是很有效的,尤其是我在敲入 Linux 那些命令时,常常打错,它可以很准确的指出错误,比如说少个空格、大小写错误等,大大提高了效率。

        不过哪些略微大一些的问题就不是每次都靠谱了。

        比如说:由于外网问题,如何用镜像的离线包代替在线安装?按它的提示操作,就掉坑了,它说的不全错,只是不全面,细节上差池也把我折腾得够呛。

        还有:问 AI 应该选择哪个版本的 ubuntu 更适合?哪个版本的 OpenHarmonyOS 符合我的需求,这些问题还是仔细消化官方资料吧,不能偷懒指望 AI 帮你检索确定,那很大程度上会踩坑。

        第三个问题是:HarmonyOS 涵盖范围过大,不像以往我接触的单片机开发,导致第一次接触有点无法适应。

        原来单片机那种动起来再说,边做边学边消化的方式,在鸿蒙设备开发环境构建时遇到点麻烦。

        因为它所涉及的是跨平台的开发,如果不看明白,有个比较清晰的全局观,上来就装个全套,硬件资源吃不消,安装过程也受不了。而单片机开发环境,比如ST的STM32,完整安装也内容有限。

        在安装过程中,走过的弯路有:

        1、Ubuntu系统不适配,接受第一次失败的教训(上次认为最新版一定能覆盖老版本的需求,结果 linux 不是那么回事),这次安装了比较保守的 18.04,结果后续安装 DevEco Device Tool 时遇到麻烦,仔细看官方文档,才发现 20.04 版才是最佳选择,删了重装。

        好在这次虚拟机安装的还行,在Win11下,virtualBox 还算稳定,我这样来回折腾,虚拟机并未出现异常。

        2、因为过于相信 AI 没仔细阅读官方文档,又自作聪明,在 AI 指导下,用离线包方式安装 OS 源码,以化解在线安装所遇到的网络问题。

        结果,不断遇到麻烦,不断在 AI 指导下尝试,结果弄成了四不像,虽说勉强能运行了,但尝试自己编写一个程序,又是出错不断。想想这才开始,与其后续麻烦不断,不如重启炉灶,反正现在的问题只是 OS 源代码之后的,DevEco Device Tool 在 Win 端和 Ubuntu 端都安装正常了。

        于是,重新仔细阅读官方文档,按其所说的方式操作,并结合教学视频(我以往没有耐心看),一步步做。AI 只作为操作过程中的错误化解用,不接受它的策略性指导了。

        结合我前面走过的弯路,这次对文档的理解容易多了。

        虽说用 repo 方式还是没能完成源代码的下载,因为按文档和视频的指导,下载的版本是Marster,我预留的空间根本不够。而按官方资源下载所给出的 repo 命令,版本信息对不上,无法完成 repo 的同步过程。

        由此发现一个问题:官方信息(gitee上的内容应该是官方维护吧)也存在瑕疵。

        这里顺带提醒一下,似乎安装鸿蒙设备开发环境,虚拟机端至少要留100G硬盘;如果想开发全系列的产品(支持轻量系统、小型系统和标准系统),估计要200G。

        这在我以往的经验中是没有想到的。目前我将虚拟机安装在D盘上,100G全给它了,结果还只敢选择了早期版本 V3.0.3-LTS,只支持轻量系统开发。

        但听了课程的讲解,我基本理解了源码的下载过程和原理,这一步虽然还是用离线包实现的,后续还按官方文档操作,顺利的完成了 OS 源代码的下载以及所需环境的安装。

        不过,不知道我前面来回折腾,是不是也将环境所需的一些软件安装好了,在 AI 的指导下,在 Ubuntu 中安装了不少软件。反正这次安装过程相对顺利。

        安装完成后,测试了 Hi3861 的编译和下载,默认的工程没有问题,但下载后运行效果和教学视频上呈现的不一样,估计是离线包中的示例程序问题,但模块有反应了。

        接着尝试了另一个示例:LED_Sample,这是单片机最常用的例子。

        结果出错,将出错日志交给 AI,它给出的答案虽未直接解决问题,但它提示了我,按此我比较了其它几个例子,发现了问题,BUILD.gn 写错了:

原始内容是:

static_library("led_example") {
    sources = [
        "led_example.c"
    ]

    include_dirs = [
        "//utils/native/lite/include",
        "//kernel/liteos_m/kal/cmsis",
        "//base/iot_hardware/peripheral/interfaces/kits",
    ]
}
 

正确内容应该是:

static_library("iothardware") {
    sources = [
        "led_example.c"
    ]

    include_dirs = [
        "//utils/native/lite/include",
        "//kernel/liteos_m/kal/cmsis",
        "//base/iot_hardware/peripheral/interfaces/kits",
    ]
}
 

        不知道是怎么测试通过的。由此可见,不能完全相信开源所提供的内容,需要自己理解消化。

        修改后编译、下载,一切正常,至此,可以说总是搭好了 OpenHarmony OS  设备的开发环境,可以尝试做些鸿蒙硬件的开发了。

        经历这次的安装过程,我的感受是:

        1、还是官方文档相对靠谱!

        2、 不能全迷信官方文档,需要用自己的知识和经验去理解。

        3、新手不要轻易去尝试网上、AI 等非官方渠道所给出的操作建议,除非你真正理解其原理,囫囵吞枣式的参照执行,往往会踩坑。

        4、建议官方提供一个相对可信的网络人口及路径,让第一次接触的人能方便的进入正确的官方信息网站,目前有点困难,很容易找错,而百度、AI通常不会给出正确的链接。

        5、华为的小艺应该在这方面做强化训练,成为鸿蒙开发的得力助手,目前的水平还不如豆包、文心等其它 AI 。

——————————————————

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐