2014-06-19 156 views
0

我有一個複雜的NLP引擎,我希望在移動設備上作爲SDK供開發人員使用。該引擎目前是多種語言的混合體,但我們希望將其合理化爲單一語言和代碼庫。這個問題的答案會影響語言的選擇。如何交叉編譯移動SDK?

特別是,我希望iOS開發人員能夠使用Objective C(或者Swift)和Android開發人員調用引擎,以便能夠使用Java中的引擎。

我不想移植我的引擎併爲核心NLP算法維護兩個單獨的代碼庫。

儘管交叉編譯應用程序有很多選項,例如Xamarin,Apportable甚至Phonegap。但是我沒有看到這樣可以輕鬆交叉編譯SDK。

我可以採取什麼方法使我的核心引擎能夠從獨特的代碼庫交叉編譯,同時仍然提供良好的Java和Objective C綁定?

+1

這個引擎是用什麼寫的? C? C++?還有別的嗎? – CommonsWare

+0

Python,Java和C++的混合組合,但我們正在遷移到單一語言,對此問題的回答將影響語言的選擇。 – brice

回答

0

我不想端口我的發動機和維護兩個獨立的代碼庫爲核心的NLP算法

然後,你需要把它寫在C或C++,並確保您的代碼不會做任何事情特定於平臺的。然後,您可以根據需要爲它編寫包裝器,例如用於Android NDK的JNI包裝器,因此Android開發人員可以通過包裝器的Java API使用您的庫。

我不是一個iOS開發人員,所以我不知道你可能需要通過Objective-C(更不用說Swift)來製作一個C/C++庫,但我認爲有一些食譜可以做那。