Son*_*man 44 iphone android sharing
我正在摆脱严格的Android开发,并希望创建iPhone应用程序.我的理解是,我可以用C/C++编写iOS应用程序的后端代码,还可以使用NDK在Android应用程序中包含C/C++代码.我的问题是如何?我用Google搜索了一下,我找不到任何简洁明了的答案.在查看NDK的示例代码时,似乎所有函数名称等都是Android(或至少是Java)特定的,因此我无法使用此C/C++后端来开发iPhone前端?我很欣赏这个问题的一些澄清,如果可以提供一些代码来帮助我?(甚至只是一个简单的Hello World,它从C/C++文件中读取一个字符串并在iOS和Android应用程序中显示它).
谢谢你们克里斯
Rob*_*ier 69
请注意,我几乎专门从事"业务/实用/生产力"应用程序; 那些严重依赖于相当标准的UI元素并期望与他们的平台很好地集成的东西.这个答案反映了这一点 请参阅Mitch Lindgren对Shaggy Frog的回答,为游戏开发者提供良好的评论,他们的情况完全不同.
我相信@Shaggy Frog在这里不正确.如果你在C++中有经过验证的有效代码,那么就没有理由不在Android和iPhone之间共享它,而且我已经完成了那些做到这一点的项目,它可以非常成功.但是,应该避免危险.
最关键的是,要小心"最低共同点".自包含的算法代码非常好用.管理线程,在网络上交谈或以其他方式与操作系统交互的复杂框架更难以以一种不会迫使您打破平台范例并为在所有平台上同样严重工作的LCD进行拍摄的方式进行操作.特别是,我建议使用平台的框架编写网络代码.这通常需要"三明治"方法,其中顶层是特定于平台的,而最底层是特定于平台的,并且中间是便携式的.如果仔细设计,这是一件非常好的事情.
线程管理和计时器也应该使用平台的框架来完成.特别是,Java大量使用线程,而iOS通常依赖其runloop来避免线程.当iOS确实使用线程时,GCD是首选.同样,这里的解决方案是隔离真正的可移植算法,并让特定于平台的代码管理它的调用方式.
如果你有一个复杂的现有框架,它有很多线程,并且有很多网络或UI代码遍布它,那么分享它可能很困难,但我的建议仍然是寻找重构它而不是重写它的方法.
作为一名iOS和Mac开发人员,他在Linux,Windows和Android上共享跨平台代码,我可以说Android是迄今为止最容易与之共享的平台(Windows曾经有过这种区别,但Android却爆发了它离开).在大多数情况下,Android共享代码并不明智.但是仍然有许多代码重用的机会,应该追求它们.
虽然这种情绪是合理的(您遵循“不要重复自己”的政策),但只有当您能够以有效的方式共享该代码时,这才是务实的。在这种情况下,实际上不可能采用“一次编写”的跨平台开发方法,因为两个平台的代码需要用不同的语言编写(iPhone 上的 C/C++/Obj-C,Android 上的 Java)。
在这种情况下(用两种不同的语言)编写两个不同的代码库会更好。建议:不要像编写 C++ 代码一样编写 Java 代码,也不要像编写 Java 代码一样编写 C++ 代码。几年前,我在一家公司工作,他们有一个产品从 Java“移植”到 C++,他们没有像 C++ 那样编写 C++ 代码,这导致了各种各样的问题,更不用说很难了读书。
| 归档时间: | 
 | 
| 查看次数: | 20457 次 | 
| 最近记录: |