1 回答

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個贊
我想實(shí)現(xiàn)跨平臺兼容性有兩個關(guān)鍵的極端:
通過在每個平臺上以不同的方式實(shí)現(xiàn)事物,以便 Kivy 在每個平臺上運(yùn)行不同的代碼,但通過使輸出看起來相同來向用戶隱藏這種差異。
通過使用所有不同平臺支持的外部 API,Kivy 自己的代碼基本相同,平臺自己負(fù)責(zé)使其工作。
Kivy 兩者都有,但特別是所有繪圖都使用第二種類型的 OpenGL ES 2:Kivy 的所有繪圖邏輯在所有支持的平臺上幾乎相同。當(dāng)然還有其他類型,例如,在計(jì)算像素密度等顯示指標(biāo)時,Kivy 在每個平臺上使用不同的方法,但不會向用戶公開任何細(xì)節(jié)。
當(dāng)然,當(dāng)從整體上考慮事情時,事情要微妙得多。例如,Kivy 使用 SDL2 作為創(chuàng)建窗口、設(shè)置其大小/pos 處理暫停/恢復(fù)等的庫,因此 Kivy 的代碼在這里屬于第二種類型,因?yàn)樗诿總€平臺上都以相同的方式調(diào)用 SDL2。然而,SDL2 本身并不是平臺原生的,而是第一種類型,在不同的平臺上以不同的方式實(shí)現(xiàn)其 API,但在每個平臺上向 Kivy 公開相同的 API。
添加回答
舉報(bào)