#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文 原创 精华

发布于 2021-1-14 15:19
浏览
6收藏

直播回放:

https://edu.51cto.com/course/26379.html

 

写在前面:

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

 

直播主题回顾:

#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区

考虑到很多同学可能是新手,这里首先要谈谈交叉编译的概念!

交叉编译是嵌入开发中的基础概念,名字看起来高端大气上档次,但其本质还是编译,也就是把C/C++代码编译成可执行程序,和我们初学C/C++语言时的 Hello World! 程序编译几乎完全相同。

 

那么,你可能会问,不同之处在哪里?

 

不同之处仅仅是,Hello World! 在本机编译,可执行程序在本机运行;而交叉编译则是:程序在本机编译,而可执行程序在设备运行(即:本机无法直接运行交叉编译得到的二进制文件)。

#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区对于大型嵌入式企业,开发环境一般分为两个部分:代码编辑环境和代码编译环境。产品代码位于代码服务器上,每个员工远程登录代码服务器之后创建自己的代码分支,之后就可以进行代码编辑和编译了。其中,代码编辑是在员工的工作PC上完成;而代码编译则是在服务器上完成。编译得到的二进制可执行程序,需要拷贝到工作PC上之后烧写到设备中。

#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区

大家通过类比可以发现,其实目前的鸿蒙设备开发方式就是企业级嵌入式产品的开发方式,只不过进行了缩减而已!代码编辑和代码编译在“不同的机器上”,两台机器通过网络互联,交叉编译得到的二进制文件通过代码编辑所在的环境烧写到设备。

 

那么,这有什么问题吗?

 

传统的嵌入式开发方式对于程序老手来说,没有任何问题,用起来游刃有余。但是,对于新手来说就可能是个噩梦了。

 

大家可以想想,程序出问题后如何定位?

 

就目前鸿蒙设备开发的情况来说,只有打印日志这一招可用。

这一招最常用,可问题也不少。。。

 

#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区

当然,有同学可能会说:“接个JTag断点调试就可以解决这个问题了!”

我想说,理论上确实如此,但是目前支持鸿蒙系统的开发板(如:Hi3861开发板)几乎不可能使用JTag进行调试!说得更简单一点:目前还没法用JTag对鸿蒙设备进行调试。所以,得另想办法,而Python是一个可行的选择。

 

Python语言简单而又不失强大,用于设备应用开发是再合适不过了。并且的,Python开发者数量巨大,如果鸿蒙应用开发能够支持Python语言,那么鸿蒙宇宙又可以增加无数闪耀的新星!

#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区目标:除C语言之外,给开发者提供另一种选择,可以使用Python语言开发鸿蒙设备应用程序。所以,最迫切需要的是一个Python语言解释器,并且能够作为应用的一部分运行于设备上。如下图所示:

#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区那么现在的问题就是:如何获得需要的Python语言解释器?

#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区在这里有同学可能会问:为什么不直接移植MicroPython?而是对MicroPython做剪裁?

原因很简单,我的想法是让鸿蒙设备支持Python开发方式,而不是取代C语言开发方式,更不是取代鸿蒙!大家要明白MicroPython设计的初衷是直接运行于微控器,使用Python控制硬件,所以MicroPython本身已经具备了一些操作系统的特质,如果直接移植到设备(Hi3861开发板),那么也就意味着用MicroPython替代了鸿蒙,这显然与期望不符!

#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区MicroPython的语言解释器是对Python的一个重新实现,非常适合资源受限的嵌入式设备。因此,最好的做法就是剪裁MicroPython的语言解析器,之后将鸿蒙设备的系统API接口绑定到Python语言(即:Python版同名系统API),这样就可以达到我的目的了。

#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区

很显然,在设备端需要开发一个应用引擎。如果需要使用Python开发设备应用程序,直接编译这个应用引擎并运行于设备之上。

而设备应用程序由Python脚本构成,编写好之后传入设备中即可。

 

讲到这里相信各位同学也明白了,设备应用的Python脚本其实根本“不知道”自己执行在鸿蒙系统上,这些脚本的执行仅仅需要Python解释器和相应API接口。那么,请大家思考一下,如果这个引擎运行于Windows之上会发生什么?

#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区

会发生的事情显然就是:我们可以在Windows上执行为鸿蒙设备而编写的Python应用脚本。

 

于是,前面所说的调试问题就可以迎刃而解了。

 

在Windows上使用纯Python语言模拟实现鸿蒙设备的API接口(Python版),然后使用现有的Python开发环境调试设备应用脚本(如:断点调试),这样就可以大大提高开发效率,避免代码中满篇的添加 printf 打印语句。

#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区#2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文-开源基础软件社区

Jython是使用Java语言对Python的一个重新实现,借助它就可以在Java中使用Python进行编码。

而鸿蒙手机APP支持使用Java语言进行开发,所以理论上可以在手机APP中使用Python完成部分代码的编写!相关案例我会在后续为大家提供出来。

 

课件资料可在文末附件中下载。

 

希望大家能多多关注我的分享!

 

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
使用Python开发鸿蒙设备.pdf 1.39M 248次下载
已于2021-9-21 23:37:37修改
11
收藏 6
回复
举报
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源 去关联
    相关推荐