本机代码在Android / iPhone应用程序开发中的影响

时间:2011-12-21 08:31:01

标签: android iphone c++ ios native-code

我想为iOS创建一个适用于Android的应用

现在,我必须在我的应用程序中使用大量本机C ++代码 所以我想知道:

  • 是否存在使用本机代码的性能问题?
  • 是否可以使用本机代码完全控制(移动电话的)资源?
  • 在Android或iOS中使用本机代码有任何限制或缺点吗?
  • 您能否在Android / iOS应用开发中推荐使用本机代码?或者可能是气馁?

4 个答案:

答案 0 :(得分:3)

我没有任何IOS开发。经验所以我只想谈谈Android。

Android NDK用于使用本机代码。

NDK承诺对资源进行多次控制,而不是完全控制。建议不要纯粹使用本机代码来实现您的应用。 “一般来说,如果它对您的应用程序至关重要,那么您应该只使用本机代码,而不仅仅是因为您更喜欢用C / C ++编程。”详细信息#When以本地代码开发。

答案 1 :(得分:3)

对本机UI控件和事件的完全访问通常涉及在iOS上使用Objective C和在Android上使用Dalvik的Java。计算内核,Model对象内部,Open GL渲染等都可以在C / C ++中完成。在Mac OS X和iOS上,Objective C ++ 本机代码,因此将以本机代码的速度运行(假设您的代码本身并不慢)。在Android上,通过NDK接口调用可能会有很小的开销。

iOS安全沙箱不允许从库存操作系统设备上的任何应用程序完全访问所有资源的控制权。

答案 2 :(得分:1)

您可以在iOS上使用 c c ++ 代码以及 objective-c (如果 c ++ 您需要将源文件从* .m重命名为* .mm)。但苹果不推荐它。不要回避关于android。

修改

另外,我记得:我的朋友在android中的 c 中使用了thirdprty库。所以,你也可以在那里使用

答案 3 :(得分:1)

对于iOS:使用Objective-C ++是完全没问题的 - 我的游戏代码是用C ++编写的,因此大多数UI(与C ++模型对象对话)都是在Objective-C ++中。 C ++与Objective-C一样原生,两者都可以被认为是编译为机器指令的C语言。