gpt4 book ai didi

iphone - 如何在 Android 和 iOS 之间进行代码共享

转载 作者:IT王子 更新时间:2023-10-28 23:52:16 24 4
gpt4 key购买 nike

我正在摆脱严格的 Android 开发并希望创建 iPhone 应用程序。我的理解是,我可以用 C/C++ 编写 iOS 应用程序的后端,也可以使用 NDK 在 Android 应用程序中包含 C/C++ 代码。然而,我的问题是如何?我用谷歌搜索了很多,但找不到任何清晰简洁的答案。在查看 NDK 的示例代码时,似乎所有函数名称等都是 Android(或至少是 Java)特定的,所以我不能使用这个 C/C++ 后端来开发 iPhone 前端?我很感激对这个问题的一些澄清,如果有一些代码可以帮助我吗? (甚至只是一个简单的 Hello World,它从 C/C++ 文件中读取字符串并将其显示在 iOS 和 Android 应用程序中)。

谢谢大家克里斯

最佳答案

请注意,我几乎只专注于“业务/实用程序/生产力”应用程序;严重依赖相当标准的 UI 元素并希望与他们的平台很好地集成的东西。这个答案反射(reflect)了这一点。请参阅 Mitch Lindgren 对 Shaggy Frog 的回答的评论,以获得对情况完全不同的游戏开发者的好评。

我相信@Shaggy Frog 在这里是不正确的。如果你有有效的、经过测试的 C++ 代码,那么没有理由不在 Android 和 iPhone 之间共享它,而且我从事的项目就是这样做的,而且它可能非常成功。然而,有些危险是应该避免的。

最关键的是,要注意“最小公分母”。自包含的算法代码,共享性非常好。管理线程、在网络上交谈或以其他方式与操作系统交互的复杂框架更具挑战性,但要以一种不会迫使你打破平台范式并为在所有平台上同样糟糕工作的 LCD 射击的方式来完成.特别是,我建议使用平台的框架编写您的网络代码。这通常需要一种“三明治”方法,其中顶层是特定于平台的,最底层是特定于平台的,而中间层是可移植的。如果精心设计,这是一件非常好的事情。

线程管理和计时器也应该使用平台的框架来完成。特别是,Java 大量使用线程,而 iOS 通常依靠其 runloop 来避免线程。当 iOS 确实使用线程时,强烈首选 GCD。同样,这里的解决方案是隔离真正可移植的算法,并让特定于平台的代码管理它的调用方式。

如果您有一个复杂的、现有的框架,该框架具有大量线程并且在其中散布着大量网络或 UI 代码,那么共享它可能会很困难,但我的建议仍然是寻找重构它的方法,而不是重写它。

作为一名 iOS 和 Mac 开发人员,广泛使用在 Linux、Windows 和 Android 上共享的跨平台代码,我可以说 Android 是迄今为止最令人讨厌的共享平台(Windows 曾经拥有这种区别,但安卓把它吹走了)。 Android 在大多数情况下共享代码是不明智的。但是代码复用的机会还是很多的,应该去追求。

关于iphone - 如何在 Android 和 iOS 之间进行代码共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3665386/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com