2011-12-25 29 views
5

我發現了一個相關答案在這裏:How do cross-platform mobile app development frameworks work?跨平臺移動C++ SDK如何在通常情況下工作?

,但我想更多關於C++的跨平臺軟件開發工具包的工作(例如電暈,果醬,EdgeLib等)。它們提供了爲iOS和Android導出二進制文件的能力,同時允許開發人員使用C++代碼。我的假設列在下面,但如果我錯誤的地方請糾正它:

  1. 用戶用C++編寫代碼。
  2. SDK具有一個界面層,其中包含用戶代碼中調用的C++函數,用於請求移動操作系統特定的功能。該接口層是根據在特定移動操作系統中實現該SDK函數調用所需的代碼構建的(使用Java編寫,適用於Android,適用於iOS的Obj-C)。
  3. 部分我最困惑的是因爲我沒有太多的移動開發經驗點:iOS和Android都有C++交叉編譯器,可以編譯用戶應用程序中用C++編寫的通用邏輯代碼嗎?

回答

5

MoSync是基於跨平臺的移動工具包中的C++的一個例子 - 這一個通過使用開放源碼的GCC編譯器來編譯應用的C++代碼成組件樣形式開始。 MoSync的一個自定義工具(稱爲'PipeTool')然後將該彙編格式與其預編譯的庫結合成各種目標格式,包括Java字節碼(用於Android)或Objective-C源代碼(用於iOS)。關於這個過程的更多細節here

使用本機IDE(適用於iOS的Xcode和適用於Android的Android SDK的Eclipse IDE),可以在目標平臺(Android或iOS)上進行最終編譯。因此,要創建一個iOS應用程序,您仍然需要成爲Apple iOS開發人員計劃的成員(每年99美元),而Eclipse IDE和Android SDK則是免費的。

Corona SDK的示例並不完全相關,因爲Corona使用雲中的自定義構建服務器構建爲本地二進制格式 - 這裏沒有完整記錄爲其封閉源代碼工具包。您每年向Corona支付訂購費用以構建應用程序。我不確定你提到的其他人(Marmalade,EdgeLib等),但會認爲他們與MoSync類似。

4

查看codenameone.com - 他們使用Java,但最終編譯爲C++ for iOS和Java for Android。

不同之處在於它們的環境包含所有圖形,並且它們自己創建控件,因此只需一個代碼庫即可獲得實際的本機應用程序。