在项目开发过程中,有几个有意思的小知识点分享给大家:
1,如何在米尔原生的安卓系统中编译python第三方库?
本项目采用的是termux,可以在安卓系统中模拟linux环境。如果是纯python库,只需要使用pip安装即可。但是python很多高性能库使用的是rust编写的,比如pydantic, orjson之类的,而termux默认的是使用clang编译器,需要特殊设置。 本项目使用fastapi作为网络框架,它依赖了一堆rust写的库,在安装时需要需设置rust环境,运行:
pkg install rust
pkg install binutils
编译库的时候要花点时间,耐心等待。
2. 软件框架fastapi+celery+redis
在使用 FastAPI编写后端的过程中,数据采集任务可以使用 Celery 通过消息任务队列的方式进行异步实现,从而提升应用的整体性能。采集和显示是两个异步任务。采集任务采集到的结果放到redis中,页面请求数据去redis中读取,这样显示和采集解耦,提升了响应速度。
3. 性能升级
尽管我们通过软件框架其实已经可以保证了产品的性能,但是如果想要更高的性能,可以考虑使用golang或者C语言这些静态语言来实现,不过这样开发效率可能会稍微慢些。个人认为在国产芯崛起,硬件越来越便宜的情况下,开发速度至关重要,pyhon的生态注定它的开发效率实在是太逆天了,另外有个开源的工业网关thingsboard gateway就是用python实现,在绝大多数的应用场景下绰绰有余。
最后祝米尔和全志的板卡大卖,后续能提供更多物美价廉的开发板。