什么允许Kivy跨平台兼容?
换句话说,相同的Kivy源代码如何在多种硬件平台(如桌面、iOS和安卓)上生成应用程序?
发布于 2020-08-23 23:30:19
我认为实现跨平台兼容性有两个关键的极端:
通过在每个平台上以不同的方式实现
Kivy有这两个方面的一点,但特别是所有的绘图都使用了OpenGL ES 2,这是第二种类型:所有Kivy的绘图逻辑在所有受支持的平台上几乎是相同的。当然,还有其他类型,例如,在计算像素密度之类的显示度量时,Kivy在每个平台上使用不同的方法,但不向用户公开任何细节。
当然,当把事情作为一个整体来考虑时,事情会更加微妙。例如,Kivy使用SDL2作为创建窗口的库,设置窗口的大小/pos处理暂停/恢复等,因此Kivy的代码是第二种类型,因为它在每个平台上都以相同的方式调用SDL2。然而,SDL2本身并不是平台--它是第一类的,在不同的平台上实现它的API是不同的,但是在每个平台上向Kivy公开相同的API。
https://stackoverflow.com/questions/63551976
复制相似问题