你绝对可以在iOS和Android上使用C ++。 我已经为两者编写了自己的游戏引擎。

Xcode是iOS的常规IDE,本身支持“Objective-C ++”开发(编译器支持Objective-C和C ++ )。 您需要在Objective-C中编写一个瘦包装器来与操作系统进行交互,但如果您愿意,可以用C ++编写其他所有内容。 如果您下载Xcode命令行工具,您也可以从脚本构建。

Eclipse是Android的常用IDE,如果下载NDK,您可以利用JNI在Java和C ++之间进行交互。 与iOS非常相似,您至少需要Java包装器才能与操作系统进行交互。

但是,您不仅限于Eclipse和Xcode。 例如,您可以使用emacs和/或使用CMake来尝试合并项目设置。 Emacs是一个非常强大和灵活的IDE,但它有一个非常陡峭的学习曲线,并且不是很直接安装。 如果你在Mac上这样做我会推荐emacsformacosx并安装ECB和自动完成 。 CMake基本上是一个跨平台构建系统,允许您从一个源树构建许多不同的项目文件(Visual Studio,Xcode,Eclipse等)。 就像emacs一样,这是超级强大的,但有点陡峭的学习曲线。 如果你想立即进入,你可能会想要从Xcode和Eclipse开始。 如果你在PC上进行开发,你需要使用Mac VM或Hackintosh来使用Xcode和cygwin来使用NDK for android(Macbook Pro的用户可以立即获得乐趣,而且不会有任何麻烦)。

原生Android开发肯定要困难得多。 您不仅需要更多的设备分段才能应对,而且本机调试不是很直接。 您必须在设备上运行GDB服务器并与其连接以设置断点,并且许多人通过命令行执行此操作。 如果你想要一个基于GUI的IDE,我听说有些人在Tegra Tools for Eclipse上取得了成功。

我肯定会建议首先在iOS上进行开发,因为您可以从IDE获得更强大的工具。 您可以轻松跟踪内存泄漏,配置文件代码,设置断点;)等。一旦您在iOS上开发了一项function,您就可以使用.mk文件和Android本机开发的其他优点进行搏斗。

以下是iOS的核心对象和生命周期的一些信息:

核心对象

生命周期

对于Android:

生命周期

只要您熟悉操作系统并尊重应用程序的生命周期,您就可以自由地调用C ++逻辑。 您可以直接使用iOS执行此操作,但使用Android时,您必须通过JNI对呼叫进行编组。 如果封装特定于平台的平台,则可以在两个平台之间共享C ++逻辑。

我是C ++的大力倡导者,但使用它的选择取决于这些平台的情况。 C ++不是这些平台的流行选择,因此你找不到那么多的文档(你自己很多时候都是这样)。 如果你不熟悉C ++(你熟悉RAII , 设计模式 , STL吗?),复杂性可能会有所提高。

以下是一些可能有意义的情况:

如果您需要使用在C / C ++中编写的库

如果您想为您的应用或游戏构建自己的平台无关框架

如果您正在使用游戏等实时/性能关键应用程序

我不是说你必须在这些情况下使用C ++,因为许多人已经在Objective-C中开发了游戏。 我只是说,如果您需要充分利用硬件或者只是想要更便携的东西,可能需要考虑。

ios编译与android编译区别是什么,为iOS和Android编译C ++代码(XCode)。 这是真的吗?...相关推荐

  1. android 编译luajit,【最新最全】为 iOS 和 Android 的真机和模拟器编译 Luajit 库

    编译 Luajit 库,的确是一个挑战.因为官网的教程,在当前版本的 Xcode 和 NDK 环境中,已经不适用了.以前只是编译了适用于真机的 Luajit 库.最近在尝试编译模拟器 Luajit 库 ...

  2. 【Android 组件化】为什么能极大提高工程编译速度?

    为什么需要组件化 极大提高工程编译速度 业务模块解耦,有利于多人团队协作开发 什么是组件化 所谓的组件化就是把需求拆成一个一个的小模块,最后组装需要的模块组成一个app 模块化架构 创建一个 Proj ...

  3. 【视频文稿】车载Android应用开发与分析 - AOSP的下载与编译

    本期内容的视频地址:https://www.bilibili.com/video/BV1kR4y1v7BK/ Hello各位好,最近工作比较忙导致这期视频拖更了,而且由于博主新冠康复的这几个月里,嗓子 ...

  4. Android系统的命令行操作及C程序编译

    在Android系统执行C程序,需要使用Android系统的专用编译器NDK,下载NDK工具可以通过以下博文中给出的链接: https://blog.csdn.net/baidu_35904821/a ...

  5. 【Android开发】:在任意目录执行NDK编译

    2019独角兽企业重金招聘Python工程师标准>>> 文以简单的例子讲述如何在任意目录把自己写的C代码使用NDK提供的交叉编译该工具来编译成Android可使用的静态库/动态库. ...

  6. android 关闭jack_Android7.0 配置JACK支持多用户同时编译

    # Android7.0 配置JACK支持多用户同时编译 reference: 背景 需要在一个Android7平台上进行有关的工作,但是编译的时候发现有问题.记录一下.因为和同事共用一台服务器,因为 ...

  7. androidstudio调试android 源码 jni,在android studio下配置gradle用ndk-build和ndk-gbd编译调试JNI...

    因为要在旧版android在做一些工作.所以做用到了它.目标平台是:android api 10和armv6. 开发环境是:AS 版本2.3.2; SDK版配android 2.3.3(api10); ...

  8. 【Android Gradle】安卓应用构建流程 ( 资源文件编译 )

    文章目录 一.资源文件编译 二.AndroidManifest.xml 清单文件编译 一.资源文件编译 参考 [Android 安装包优化]资源混淆 ( AAPT2 资源编译工具 | resource ...

  9. android oat如何提取dex文件字节码,Android: 使用oatdump反编译oat文件

    网上经常看到有通过apktool将apk中的dex反编译成smali格式的文件,以便分析功能实现与破-解,确没怎么看到oat文件反通过oatdump反编译的,所以就写了一篇这样的文档.声明一下oat文 ...

  10. Android如果对APK进行加密,提高反编译难度(思路)

    提高反编译难度的几种方式: 对于软件安全来说,有攻就要有防才对.不然,Android整个产业链就会被这样的Crack给毁掉. 第一种办法:将核心代码用JNI写进so库中.由于so库的反编译和破解的难度 ...

最新文章

  1. 清除浮动的几种常见方法
  2. 【图像处理】【计算机视觉】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波...
  3. java 模拟http文件上传,HttpURLConnection上传多文件
  4. 深度学习总结:pytorch构建RNN和LSTM,对比原理图加深理解
  5. 执行游戏时出现0xc000007b错误的解决方法
  6. 大整数减法c语言_3.2 C语言运算符和表达式
  7. Linux常用命令—文件处理命令—链接命令
  8. (7)Node.js 全局函数
  9. 渗透测试工具——漏洞扫描工具
  10. 86版五笔-字根速记
  11. c#chart控件代码详解
  12. 阿里云 ECS 服务等级协议 SLA是什么?
  13. 手撸Mybatis源码-基础版
  14. 电脑版微信公众号文章加载不出来,空白的可能解决办法
  15. ChucK初步(9)
  16. arch模型的思路_ARCH模型课件.ppt
  17. python 根据坐标点计算方位角函数
  18. linux ip_tos,IP_TOS选项
  19. 能量时域空间物理_2.1时域数学建模,二阶系统阻尼比与品质因数存在这样奇妙的关系...
  20. 2022年湖南省高职单招(语文)考试冲刺试题及答案

热门文章

  1. 1.18 StringBuffer替换特殊字符
  2. you-get 一个下载视频的好工具
  3. 3.1.6 基本分页存储管理的基本概念
  4. 锁用不好,可能把自己锁住哦!(解决多线程的死锁问题)
  5. 10 分钟使用 Spring Boot + Vue + Antd + US3 搭建自己的图床
  6. 面试官:能说下 SpringBoot 启动原理吗?
  7. 你真的会停止线程吗?
  8. 微信公众号授权步骤详细步骤介绍和整合springboot开发(java版)
  9. 蓝桥杯练习系统习题-基础训练2
  10. 表单开发(一):获取文本框和密码框数据 用户登录网页