V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
midas
V2EX  ›  问与答

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

  •  
  •   midas · 2016-03-21 10:00:05 +08:00 · 1863 次点击
    这是一个创建于 3164 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    搜索了一下

    Android 有 NDK 支持 C++的使用

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

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

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

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

    Thanks in advance

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

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

    @3dwelcome 原生 UI 让人感觉更好,与操作系统看起来是一体。我的情况的话基本上后台处理都是交给 C++处理了,已经不是简单辅助了。
    longear
        6
    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
        7
    longear  
       2016-03-21 11:37:33 +08:00
    界面都在各自的开发环境中设计,都有 UI 编辑器, 先搭建好开饭环境再说,走过来就了
    midas
        8
    midas  
    OP
       2016-03-21 12:55:06 +08:00
    @longear 感谢回复。 开发环境我觉得还是小事,基本上要啥有啥。平时编程相关都用 OS X ,实体手机也都有。就怕开发起来经验不足做很多可能一步可以做到事情自己分解成了很多多余的步骤。我可能会做的也和你最后说的差不多,基本就是 stdin stdout 能满足。只是在 UI 显示反馈的时候稍微做下优化以致于不像直接在终端上交互一样,加强一下移动端的体验。

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

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

    嘛如果有一种能兼顾的开发方案,还要那么多 iOS 、 Android 开发干嘛
    midas
        11
    midas  
    OP
       2016-03-23 00:24:20 +08:00
    @yuriko 感谢回答。自己也知道不同的方法肯定是有 tradeoff 的。
    @learnshare 感谢回答。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1717 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:50 · PVG 00:50 · LAX 08:50 · JFK 11:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.