用于使用c ++的移动应用程序的平台抽象层(PLA)

时间:2014-01-15 11:30:34

标签: c++ layer abstraction platform

这是我的第一个博客或问题。 我想用c ++为移动应用程序开发平台抽象层(PLA)。即从移动应用程序我能够与蓝牙设备通话而不用打扰底层操作系统(即IOS ANDROID等)运行。因此,我需要使用c ++代码发现运行的操作系统是运行IOS还是ANDROID,而不是调用任何操作系统的本机API。

  1. 那么,是否有人可以建议您使用c ++代码确定操作系统类型(即IOS,ANDROID)和操作系统版本的相同方法。

  2. 开发哪个IDE更适合开发c ++代码?

  3. 提前致谢.. !!

    谢谢, 拉朱。

1 个答案:

答案 0 :(得分:0)

即使你正在开发跨平台代码,当编译它的时候到来时,你需要定位一个平台。然后确定它是检查预编译器定义的问题。

大多数编译器会在编译时定义一些平台,否则,您可以在配置项目时自行完成。

例如,在分别编译iOS和Mac项目时,Xcode将定义__APPLE__TARGET_OS_IPHONE以及TARGET_OS_MAC

对于Android,__ANDROID__应该由工具链定义,但是我已经看到多个mk文件添加了明确的平台标志,如下所示:

LOCAL_CFLAGS := -DANDROID $(LOCAL_CFLAGS)

然后是使用预编译条件的问题:

#ifdef __APPLE__
    #if TARGET_OS_IPHONE
        // Configure for iPhone
    #endif
#endif

#ifdef ANDROID
    // Configure for Android
#endif

为了确定版本,如果不调用Native API,实际上并没有这样做。幸运的是,您可以使用模式来分解特定的实现,并在此代码前放置一个通用接口。



就IDE而言,这主要取决于选择和可用性。最流行的是Xcode for iOS和Eclipse for Android,但也可以使用其他。