簡體   English   中英

Kivy 如何實現跨平台兼容?

[英]How does Kivy achieve cross-platform compatibility?

是什么讓 Kivy 跨平台兼容?

換句話說,同一個 Kivy 源代碼如何在桌面、iOS 和 Android 等多種硬件平台上生成應用程序?

我認為實現跨平台兼容性有兩個關鍵的極端:

  1. 通過在每個平台上以不同的方式實現事物,以便 Kivy 在每個平台上運行不同的代碼,但通過使輸出看起來相同來向用戶隱藏這種差異。
  2. 通過使用所有不同平台支持的外部 API,Kivy 自己的代碼基本相同,平台本身負責使其工作。

Kivy 有一點兩者,但特別是所有繪圖都使用 OpenGL ES 2,這是第二種類型:Kivy 的所有繪圖邏輯在所有支持的平台上都幾乎相同。 當然還有其他類型,例如,在計算像素密度等顯示指標時,Kivy 在每個平台上使用不同的方法,但不會向用戶公開任何細節。

當然,將事情作為一個整體考慮時,事情要微妙得多。 例如,Kivy 使用 SDL2 作為庫來創建窗口,設置其大小/位置處理暫停/恢復等,因此 Kivy 的代碼在這里屬於第二種類型,因為它在每個平台上以相同的方式調用 SDL2。 然而,SDL2 本身並不是平台原生的,而是第一種類型,在不同平台上以不同方式實現其 API,但在每個平台上向 Kivy 公開相同的 API。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM