是否可以为 iOS 编写应用程序并将 object-c 代码移动到 Android 中?

Posted

技术标签:

【中文标题】是否可以为 iOS 编写应用程序并将 object-c 代码移动到 Android 中?【英文标题】:Is is possible to write app for iOS and move object-c code into Android? 【发布时间】:2014-03-29 06:51:24 【问题描述】:

今天我与 PM 交谈。他说解决“iosandroid 上的同一个应用程序”问题的最好方法是为 iOS 编写 object-c 代码,然后在 Android 应用程序中使用 相同的代码 (https://developer.android.com/tools/sdk/ndk/index.html)。这种方法(在他看来)会给我们带来 DRY 效果(只需维护一个代码)。

我惊呆了,几乎没有对它说什么。但是后来想了想,发现了一些问题:

    C++ != 对象-C。可以在Android中将o-c代码添加为c++代码吗? (假设#1 是可能的)我如何进行布局、活动等。在 C++ for Android 中? 还有什么时候我们应该/不应该使用Android NDK?

【问题讨论】:

这是不可能的,但你可以使用 Phonegap 或 Titan 类语言来开发可以跨平台运行的移动应用程序。 我认为他将 c 与 obj-c 混淆了。您可能需要为此研究跨平台解决方案。有许多免费和商业产品可以实现这一目标。 1.) 永远不要相信 PM,他们不知道 :P :)(开个玩笑)2.) 这种情况可能是他做的,结帐:***.com/questions/14477768/…。 喜欢项目经理尝试使用开发人员说话,却弄错了。 ;) 【参考方案1】:

简短的回答是不,这是不可能的。不过http://www.apportable.com

声称使您能够为 Android 编译 iOS 应用程序 - 从而使您能够使用 iPhone 应用程序中的所有代码。

但它不适用于每个框架,但它确实与 Android SDK 挂钩,因此您仍然可以访问这些组件。值得一看,玩一玩。我只是半心半意,你必须从一开始就构建 iOS 应用程序,并计划使用http://www.apportable.com,就像我说它目前不支持所有 ios sdks,你需要解决这个问题.

但这应该回答你的问题。

自 2016 年起,应用便携不再是一种选择 more info,看来 Google 扼杀了梦想。

【讨论】:

Apportable 已经倒闭了。 已更新,我什至没有想到这个问题在 2019 年仍然会引起人们的兴趣 ;) 谢谢——这是给某些人的。 :) 作为 Apportable 的替代品,您现在还可以将GNUstep Android toolchain 用于类似目的(另请参阅下面我的单独答案)。 我看到了,但 TBH 到那时你可能会更好地使用 ReactNative 或其他东西。 是的,除非你有一个使用 Objective C 的大型现有代码库。【参考方案2】:

Objective C 代码不能使用 NDK 编译。但是请查看http://www.apportable.com/,它是一个允许您在 Objective-C 中为 Android 编写代码的库。这可能就是你老板所说的。

【讨论】:

这个支持游戏以外的东西吗?即:普通应用程序通过 HTTP (REST) 连接到服务器?【参考方案3】:

    C++

    您不能直接共享使用 ios 系统框架(UIKit、CFNetwork,...)的代码。

如果您想为整个应用编写一次代码,您可以在 apportable.com 上试一试,就像其他人指出的那样。

【讨论】:

是的,建立在 Android SDK (#1) 之上的 Apportable id 并实现了一堆 iOS 系统框架(#2)【参考方案4】:

您可以使用GNUstep Android toolchain 在Android 应用程序中使用基于Foundation 和CoreFoundation 的模型代码,然后编写一个新的UI 层,在此之上通过本机NDK 调用与Objective C 模型交互(例如在Android 中)工作室)。

【讨论】:

以上是关于是否可以为 iOS 编写应用程序并将 object-c 代码移动到 Android 中?的主要内容,如果未能解决你的问题,请参考以下文章

持久登录 iOS Objective-C

客户端 (iOS) 上的核心数据缓存来自服务器策略的数据

是否有适用于 iOS 的 RESTful YouTube API?

iOS:开源 VoIP/SIP Objective-C 代码 [关闭]

是否可以使用 Python 为 iOS 和 Android 编写跨平台应用程序?

使用 Objective C 编写更模块化和可测试的 iOS 应用程序的建议