我想为 Android和iOS 创建一个应用程序。
现在,我必须在我的应用程序中使用大量本机 C++ 代码。
所以我想知道:
- 使用本机代码是否存在任何性能问题?
- 是否可以使用本机代码完全控制(手机的)资源?
- 在 Android 或 iOS 中使用本机代码是否有任何限制或缺点?
- 你能推荐在 Android/iOS 应用程序开发中大量使用本机代码吗?或者可能是气馁?
我想为 Android和iOS 创建一个应用程序。
现在,我必须在我的应用程序中使用大量本机 C++ 代码。
所以我想知道:
我没有任何IOS开发。经验,所以我只想谈谈Android。
Android NDK用于使用本机代码。
NDK 承诺对资源进行若干而非完全的控制。不建议纯粹使用本机代码来实现您的应用程序。“一般来说,您应该只在对您的应用程序必不可少的情况下使用本机代码,而不仅仅是因为您更喜欢使用 C/C++ 编程。” #When to Develop in Native Code 中的详细信息。
对本机 UI 控件和事件的完全访问通常涉及在 iOS 上使用 Objective C 和在 Android 上使用 Java 用于 Dalvik。计算内核、模型对象内部、Open GL 渲染等都可以在 C/C++ 中完成。在 Mac OS X 和 iOS 上,Objective C++是本机代码,因此运行速度与本机代码一样快(假设您的代码本身并不慢)。在 Android 上,通过 NDK 接口调用可能会有一点开销。
iOS 安全沙箱不允许完全访问来自库存操作系统设备上任何应用程序的所有资源的控制权。
您可以在 iOS 上使用c或c++代码以及Objective-c (如果是c++,您需要将源文件从 *.m 重命名为 *.mm)。但苹果不推荐它。不要担心android。
另外,我只记得:我的朋友在 android的c中使用了 thirdprty 库。所以,你也可以在那里使用它
对于 iOS:使用 Objective-C++ 完全没问题——我的游戏代码是用 C++ 编写的,所以大部分 UI(与 C++ 模型对象对话)都是用 Objective-C++ 编写的。C++ 和 Objective-C 一样原生,两者都可以被认为是编译成机器指令的 C 方言。