每年的过年前夕,手中的项目一定会告急,而自己又缺乏三头六臂七十二变等特技,所以只能在鸿蒙社区先消失一阵子了。
今天再看社区的帖子,发现大家的进步可不一般,各种案例示例层出不穷,一片欣欣向荣的景象!
在这样的氛围下,我又来了分享的欲望,希望自己的一点积累能为鸿蒙宇宙添砖加瓦。



考虑到很多同学可能是新手,这里首先要谈谈交叉编译的概念!
交叉编译是嵌入开发中的基础概念,名字看起来高端大气上档次,但其本质还是编译,也就是把 C/C++ 代码编译成可执行程序,和我们初学 C/C++ 语言时的 Hello World!程序编译几乎完全相同。
那么,你可能会问,不同之处在哪里?
对于大型嵌入式企业,开发环境一般分为两个部分:
代码编辑环境
代码编译环境
产品代码位于代码服务器上,每个员工远程登录代码服务器之后创建自己的代码分支,之后就可以进行代码编辑和编译了。


大家通过类比可以发现,其实目前的鸿蒙设备开发方式就是企业级嵌入式产品的开发方式,只不过进行了缩减而已!
代码编辑和代码编译在“不同的机器上”,两台机器通过网络互联,交叉编译得到的二进制文件通过代码编辑所在的环境烧写到设备。
那么,这有什么问题吗?
传统的嵌入式开发方式对于程序老手来说,没有任何问题,用起来游刃有余。但是,对于新手来说就可能是个噩梦了。
大家可以想想,程序出问题后如何定位?


当然,有同学可能会说:“接个 JTag 断点调试就可以解决这个问题了!”
我想说,理论上确实如此,但是目前支持鸿蒙系统的开发板(如:Hi3861 开发板)几乎不可能使用 JTag 进行调试!
说得更简单一点:目前还没法用 JTag 对鸿蒙设备进行调试。所以,得另想办法,而 Python 是一个可行的选择。
目标:除 C 语言之外,给开发者提供另一种选择,可以使用 Python 语言开发鸿蒙设备应用程序。
所以,最迫切需要的是一个 Python 语言解释器,并且能够作为应用的一部分运行于设备上。
那么现在的问题就是:如何获得需要的 Python 语言解释器?

在这里有同学可能会问:为什么不直接移植 MicroPython?而是对 MicroPython 做剪裁?
原因很简单,我的想法是让鸿蒙设备支持 Python 开发方式,而不是取代 C 语言开发方式,更不是取代鸿蒙!
MicroPython 的语言解释器是对 Python 的一个重新实现,非常适合资源受限的嵌入式设备。



很显然,在设备端需要开发一个应用引擎。如果需要使用 Python 开发设备应用程序,直接编译运行这个应用引擎并运行于设备之上。
而设备应用程序由 Python 脚本构成,编写好之后直接传入设备中即可。
讲到这里相信各位同学也明白了,设备应用的 Python 脚本其实根本“不知道”自己执行在鸿蒙系统上,这些脚本的执行仅仅需要 Python 解释器和相应 API 接口。

会发生的事情显然就是:我们可以在 Windows 上执行为鸿蒙设备而编写的 Python 应用脚本。
于是,前面所说的调试问题就可以迎刃而解了。
在 Windows 上使用纯 Python 语言模拟实现鸿蒙设备的 API 接口(Python 版),然后使用现有的 Python 开发环境调试设备应用脚本(如:断点调试)。






Jython 是使用 Java 语言对 Python 的一个重新实现,借助它就可以在 Java 中使用 Python 进行编码。
而鸿蒙手机 APP 支持使用 Java 语言进行开发,所以理论上可以在手机 APP 中使用 Python 完成部分代码的编写!相关案例我会在后续为大家提供出来。
https://edu.51cto.com/course/26379.html
课件资料可点“阅读原文”在附件中下载。希望大家能多多关注我的分享!

点“阅读原文”下载课件资料








