【问题标题】:Can POSIX-level file system APIs bridge between OS X, iOS, and Android?POSIX 级别的文件系统 API 能否在 OS X、iOS 和 Android 之间架起桥梁?
【发布时间】:2013-12-27 00:53:12
【问题描述】:

我有一个基于 Mac Carbon 的旧版应用程序,已移植到 64 位(Lion 及更高版本)。该应用程序在 C 级别大量使用了 FS 系列函数和结构,包括对 Finder.h 的引用。我设法拼凑出一些适用于 OS X 10.7+ SDK 的东西,尽管有许多已弃用的功能。

现在我正在尝试将应用程序移植到 iOS(以及未来的 Android)。由于 iOS 没有经典的 Mac OS 根源,因此许多 FS 结构和围绕 Finder 构建的意识形态都不存在。

我的问题是否可以在我提到的三个平台的 C POSIX 支持的函数之上构建一个跨平台的文件系统层?我知道 iOS 或 Android 都不是经过认证的 POSIX 兼容的,尽管它们的行为非常像 POSIX 系统。

我有大量代码可以在我的应用程序级别清除 Mac OS 依赖项,我的直觉告诉我,从长远来看,尝试使用 C- 处理文件访问、文件夹枚举和符号链接解析会更便宜级 API。

我忽略了 NSFileManager 和 Core Foundation 方法作为选项,因为当我最终迁移到 Android 时,这将需要另一个抽象层和重写。

我对类似 POSIX 的环境还不太熟悉,所以我很欣赏一位资深人士的建议。谢谢!

【问题讨论】:

    标签: android ios macos file-io posix


    【解决方案1】:

    我已经完成了很多跨平台开发(Palm OS、Windows Mobile、BlackBerry、iOS、Android、Mac OSX、Windows 7 和 Windows App Store 应用程序),我现在建议为 iOS 和 Android 创建一个完全原生的应用程序.有一些方法可以在两个平台之间进行跨平台开发,但我认为这些路径不值得去做。在每个平台上创建完全原生的应用程序,并充分利用 iOS 和 Android 为您提供的 API。

    【讨论】:

    • 好的,你的意思是有一种方法可以使用 POSIX 在所有三个平台上处理文件 I/O,你只是不推荐它? “完全原生”我假设您的意思是在 iOS 上使用 Core Foundation 和 Android 文件管理器例程?我想避免管理 3 个单独的代码副本,所以在我的 git 存储库中,我希望使用单个代码库(以及现在使用 iOS/OS X 的单个 XCode 项目)。
    • 我还没有尝试过 POSIX 来处理文件 I/O。我尝试过其他适用于文件 I/O 的方法。不过我不建议使用它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多