2012-06-07 50 views

回答

1

用C或C++編寫。您可以通過Objective C++的魔術將它鏈接到Objective C/Cocoa,以及通過NDK和JNI連接到Android上的Java。這就是我在我的項目中所做的。在這兩種情況下,編譯器都是GCC,RTL不相同,但足夠相似。

避免接口中的多毛數據結構,堅持原語和原始數組。當然,你可能需要抽象掉一些平臺。

你可能想用-fshort-wchar編譯你的代碼。發生這種情況的原因是short是Cocoa和JNI中的本地字符格式。儘管如此,您將失去RTL的寬字符串功能,但它們對於Cocoa字符串和Java字符串無用。或者你可以在庫/平臺邊界上使用UTF-8。每次通話都需要轉換費用,yadda yadda。

注意:如果您只是想重新使用一些次要的輔助函數,那麼將它們寫兩次或複製/粘貼然後調整語法會更容易。調試NDK代碼是非常棘手的。如果共享位構成項目的25-30%或更多,只有這樣才行。就我而言,它更像是60%的共享。

編輯:如果你這樣做,一些進一步移植到其他移動平臺將是一個快照和一些 - 不是很多。具體做法是:

  • 三星bada - 卡扣(也C++與GCC,耶)
  • 移動QT(Meego的,等) - 卡扣(同上)
  • 的Windows Mobile 6.5和下 - 相對容易(編譯器GCC和MSVC之間的差異可能的方式獲得)
  • 的Windows 8平板電腦(又名WinRT中,地鐵) - 同上
  • 黑莓PlayBook - 可能在理論上,從來沒有試過
  • 老同學黑莓 - 是不可能的,這一切都Java
  • Windows Phone 7 - 不可能,全是C#/ VB.NET
1

如果要爲iOS和Android創建應用程序,並且希望重新使用應用程序的業務邏輯(而不是UI),請查看Xamarin

您可以使用開發C#並創建Android和/或iOS應用程序。

從Xamarin網站:

節省時間通過共享iOS和Android的 之間的數據結構和非UI代碼。

希望它有幫助。

+0

哇看起來不錯!不知道除了來自PCSoft的Windev之外,還有跨平臺的IDE ......這可能會在未來感興趣..非常感謝! –

+0

@ BenLefebvre不客氣。 Upvote,如果你想。乾杯。 –

+1

我會如果我可以:D仍然太新,upVote將回來後upVote它雖然:) –