求思路,给基于 C++的程序开发移动端应用

2016-03-21 10:00:05 +08:00
 midas

无移动端开发经验,擅长 Java/C

想为一个基于 C++软件开发移动端应用, iOS/Android 都考虑的情况下有什么好的思路

C++软件只是简单的接收 command line argument 进行操作后直接终端内输出

搜索了一下

Android 有 NDK 支持 C++的使用

iOS 只是不能使用 UIKit 来直接做 C++的交互

两个都支持使用已有 C++的程序

  1. 不知道有没有可以实现两个代码库共用的思路(部分共享, UI 开始分开的)
  2. 如果每天投入 8 小时边学边做大概要多久(这个问题可能有点让人不好回答,但考虑最简单的 UI 的话)

欢迎指出错误,各种意见,帮助和推荐资料

Thanks in advance

1788 次点击
所在节点    问与答
11 条回复
3dwelcome
2016-03-21 10:08:29 +08:00
就按照游戏开放的方案,用 opengl es 做界面,在桌面系统调试通过后,直接搬到手机。全平台都是 c++,代码通用,很爽的。
midas
2016-03-21 10:19:22 +08:00
@3dwelcome 感谢思路,开发过程是在 Visual Studio 上完成吗?界面设计方便也是 VS 上做吗?
3dwelcome
2016-03-21 10:32:38 +08:00
可能和你需求并不是完全匹配,游戏开发是完全用 vs 的,有现成的 opengles 模拟器,界面使用 gl es 的一些开源界面库搭建。

你如果只做单个应用 app 的话, C 辅助处理,写一下原生 UI 也未尝不好。找一些简单的开源项目边看边学就行了。
WildCat
2016-03-21 10:38:28 +08:00
QT 可以,但是几乎没人用
midas
2016-03-21 10:51:01 +08:00
@WildCat 感谢推荐

@3dwelcome 原生 UI 让人感觉更好,与操作系统看起来是一体。我的情况的话基本上后台处理都是交给 C++处理了,已经不是简单辅助了。
longear
2016-03-21 11:35:26 +08:00
http://news.cnblogs.com/n/209785/
我忘了是不是这篇, 是说业内知名应用的夸平台共享代码的事情。
另外游戏应用 Android 和 iOS 共享 C/C++代码很常见, 我也正在做这个。

先搭建两个开发环境, 一个是 Android 的,最好是 Linux, 因为要用到 NDK , NDK 交叉编译 在 Linux 环境下麻烦最少,当然 Windows 的也可以。另一个 iOS 开发环境只能用 Mac OSX 系统,黑的白的无所谓, 但最好是白的,因为省心,黑的除非找人给装,不然还要自己研究怎么装,这也要浪费一点精力。

至于每天 8 小时,要用多久,这个真的不好说,环境搭建好之后,可能用 2~4 周就能搞定,要看你的 UI 到底有多简单,足够简单的话,根本不用深入学 Android 和 IOS 的基础知识。

可以让 C++的程序输出到一个文本数组返回给调用端,然后就可以简单绘制成 UI 上的对象。如果不想对 C++程序有什么改动就参考这个改动重定向输出,然后在调用端解析文本。

http://stackoverflow.com/questions/23352592/redirecting-stdin-and-stdout-of-c-program-in-android
longear
2016-03-21 11:37:33 +08:00
界面都在各自的开发环境中设计,都有 UI 编辑器, 先搭建好开饭环境再说,走过来就了
midas
2016-03-21 12:55:06 +08:00
@longear 感谢回复。 开发环境我觉得还是小事,基本上要啥有啥。平时编程相关都用 OS X ,实体手机也都有。就怕开发起来经验不足做很多可能一步可以做到事情自己分解成了很多多余的步骤。我可能会做的也和你最后说的差不多,基本就是 stdin stdout 能满足。只是在 UI 显示反馈的时候稍微做下优化以致于不像直接在终端上交互一样,加强一下移动端的体验。

刚跑步时候在油管上看了一下 MS 给 Xarmin 做的一个小视频范例,不知道实用起来体验怎么样。
learnshare
2016-03-21 12:59:50 +08:00
Qt ?
yuriko
2016-03-21 14:41:08 +08:00
Xarmin 也好 Qt 也好,自己学着弄都会有坑,如果不复杂还不如去研究下原生。
游戏那套一般比如 cocos 这种,用全 C++配合 GL 实现完后整个装到两边的容器里,效果你也知道

还有种就是用 hydrid 类方案,用 web 的结构去开发,同第一种一样,有很多坑要踩

嘛如果有一种能兼顾的开发方案,还要那么多 iOS 、 Android 开发干嘛
midas
2016-03-23 00:24:20 +08:00
@yuriko 感谢回答。自己也知道不同的方法肯定是有 tradeoff 的。
@learnshare 感谢回答。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/265054

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX