为了账号安全,请及时绑定邮箱和手机立即绑定

Kivy是如何做到跨平台兼容的?

Kivy是如何做到跨平台兼容的?

Smart猫小萌 2023-06-20 13:22:47
是什么让 Kivy 能够跨平台兼容?换句话说,同一个Kivy源代码如何在桌面、iOS、Android等多种硬件平台上生成应用程序?
查看完整描述

1 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

我想实现跨平台兼容性有两个关键的极端:

  1. 通过在每个平台上以不同的方式实现事物,以便 Kivy 在每个平台上运行不同的代码,但通过使输出看起来相同来向用户隐藏这种差异。

  2. 通过使用所有不同平台支持的外部 API,Kivy 自己的代码基本相同,平台自己负责使其工作。

Kivy 两者都有,但特别是所有绘图都使用第二种类型的 OpenGL ES 2:Kivy 的所有绘图逻辑在所有支持的平台上几乎相同。当然还有其他类型,例如,在计算像素密度等显示指标时,Kivy 在每个平台上使用不同的方法,但不会向用户公开任何细节。

当然,当从整体上考虑事情时,事情要微妙得多。例如,Kivy 使用 SDL2 作为创建窗口、设置其大小/pos 处理暂停/恢复等的库,因此 Kivy 的代码在这里属于第二种类型,因为它在每个平台上都以相同的方式调用 SDL2。然而,SDL2 本身并不是平台原生的,而是第一种类型,在不同的平台上以不同的方式实现其 API,但在每个平台上向 Kivy 公开相同的 API。


查看完整回答
反对 回复 2023-06-20
  • 1 回答
  • 0 关注
  • 279 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号