当前位置: 首页 > 科技观察

使用Python开发鸿蒙应用--2021.01.07直播图文

时间:2023-03-13 11:42:34 科技观察

更多内容请访问:与华为官方共建的鸿蒙技术社区https://harmonyos.51cto.com/#zz写在前面:每年大年三十,手上的项目一定很匆忙。..而我缺少三头六臂七十二变等特殊技能,只能暂时消失在鸿蒙界。今天翻看社区的帖子,发现大家的进步都非同一般,各种案例层出不穷,一派欣欣向荣的景象!在这样的氛围下,我又产生了分享的欲望,希望自己的一点点积累,能够为鸿蒙宇宙贡献一份力量。现场主题回顾:考虑到很多同学可能是新手,这里先说一下交叉编译的概念!交叉编译是嵌入式开发中的一个基本概念。名字看着高端优雅,其实质是编译,就是将/C++代码编译成可执行程序,和HelloWorld几乎一模一样!初学C/C++语言时的程序编译。那么,你可能会问,区别在哪里?区别仅在于HelloWorld!在本地编译,可执行程序在本地运行;而交叉编译是:程序在本地编译,可执行程序在设备上运行(即机器不能直接运行交叉编译得到的二进制文件)。对于大型嵌入式企业,开发环境一般分为两部分:代码编辑环境和代码编译环境。产品代码位于代码服务器上,每个员工远程登录代码服务器后创建自己的代码分支,然后可以对代码进行编辑和编译。其中,代码编辑是在员工的工作PC上完成的;代码编译在服务器上完成。需要将编译好的二进制可执行程序复制到工作PC上,然后烧录到设备中。通过类推可以发现,目前的鸿蒙设备开发方式其实就是企业级嵌入式产品的开发方式,只是有所缩减!代码编辑和代码编译“在不同的机器上”,两台机器通过网络相连。交叉编译得到的二进制文件通过代码编辑器所在的环境烧写到设备中。那么,这有什么问题吗?传统的嵌入式开发方式对于程序老手来说没有问题,上手游刃有余。然而,这对初学者来说可能是一场噩梦。大家可以想一想,程序出错后如何定位问题?就目前鸿蒙设备开发的情况来看,只能打印日志。这个技巧是最常用的,但是也有很多问题。..当然,可能会有同学说:“JTag断点调试可以解决这个问题!”我想说理论上是这样的,但是几乎不可能支持鸿蒙系统的开发板(如:Hi3861开发板)使用JTag进行调试!简单点说:目前还没有办法使用JTag来调试鸿蒙设备。因此,必须做些别的事情,而Python是一个可行的选择。Python语言简单而强大,非常适合设备应用程序开发。是的,Python开发人员的数量是巨大的。如果鸿蒙应用开发能够支持Python语言,那么鸿蒙宇宙可以再添无数璀璨的新星!目标:除了C语言,为开发者提供另一种选择,可以使用Python语言为鸿蒙设备开发应用。因此,最迫切的需求是能够作为应用程序的一部分在设备上运行的Python语言解释器。如下图所示:那么现在的问题是:如何获取需要的Python语言解释器?这里可能有同学会问:为什么不直接移植MicroPython呢?相反,定制MicroPython?原因很简单,我的想法是让鸿蒙设备支持Python开发方式,而不是取代C语言开发方式,更不用说取代鸿蒙了!大家应该明白,MicroPython设计的初衷是直接运行在单片机上,用Python来控制硬件,所以MicroPython本身就已经具备了一些操作系统功能。如果直接移植到设备上(Hi3861开发板),就意味着鸿蒙换成了MicroPython,显然不符合预期!MicroPython的语言解释器是Python的重新实现,非常适合资源受限的嵌入式设备。因此,最好的办法就是裁剪MicroPython的语言解析器,然后将鸿蒙设备的系统API接口绑定到Python语言上(即:Python版本的同名系统API),这样就可以达到我的目的。显然,需要在设备端开发一个应用引擎。如果您需要使用Python开发设备应用,直接编译该应用引擎并在设备上运行即可。设备应用程序由Python脚本组成,编写完成后即可传输到设备中。至此,相信同学们都明白了,设备使用的Python脚本其实“不知道”是在鸿蒙系统上执行的。这些脚本的执行只需要Python解释器和相应的API接口。那么,请大家想一想,如果这个引擎运行在Windows上会怎样?显然会发生什么:我们可以在Windows上执行为鸿蒙设备编写的Python应用脚本。因此,上面提到的调试问题就可以轻松解决。使用纯Python语言在Windows上模拟鸿蒙设备的API接口(Python版),然后使用已有的Python开发环境调试设备应用脚本(如:断点调试),可以大大提高开发效率,避免代码错误.在整个过程中添加printf打印语句。Jython是使用Java语言对Python的重新实现,使用它可以使用Python在Java中进行编码。鸿蒙手机APP支持Java语言开发,所以理论上可以使用Python来完成手机APP中的部分代码编写!后续我会为大家提供相关案例。您可以点击以下链接观看直播。https://edu.51cto.com/course/26379.html课件资料可在文末附件中下载。希望大家多多关注我的分享!?版权归作者及鸿蒙技术社区所有。如需转载请注明出处,否则将追究法律责任。更多信息请访问:与华为官方鸿蒙科技共建社区https://harmonyos.51cto.com/#zz