【问题标题】:Understanding bundles frameworks and libraries了解捆绑包框架和库
【发布时间】:2012-10-22 20:45:37
【问题描述】:

我正在开发 ios B2B 应用程序,我有几个关于应用程序模块化的问题。

首先,我需要了解捆绑包和框架之间的主要区别。何时使用捆绑包以及何时使用框架。

另一个问题是。 bundle 是否可以在其中包含一个 .framework,反之亦然。

是否可以为 ios 应用程序创建插件并动态加载它们,如果可以,那么它应该是什么?捆绑框架或库?

库是否可以包含资源文件?

是否可以创建资源包和动态库,然后在运行时动态加载它们。

【问题讨论】:

    标签: cocoa-touch cocoa frameworks bundle libraries


    【解决方案1】:

    是否可以为 ios 应用程序创建插件并加载它们 动态的,如果是,那么它应该是什么?捆绑框架或 图书馆?

    没有

    库是否可以包含资源文件?

    没有

    是否可以创建资源包和动态库以及 然后在运行时动态加载它们。

    没有

    • Bundle 是目录的一种,一个文件夹。框架是一个捆绑包。应用程序也是如此,插件也是如此。

    • 静态库是一个单一的文件代码存档,您可以在构建时将其编译到您的应用中

    • 动态库是您可以在运行时加载的单个文件代码存档
    • 框架是与其他东西捆绑在一起的动态库
    • 插件是与其他东西捆绑在一起的动态库

    Xcode 构建选项“Bundle”的意思是“将编译后的动态库放在一个 Bundle 中”——这就是你想要创建插件时所做的事情。

    静态库是在 iOS 上模块化代码的唯一选择。

    在桌面上..

    框架通常用于在多个应用程序之间共享代码和资源。您希望您的应用程序的行为就像代码实际编译到其中一样。您希望加载透明地发生,并且您不想做任何特殊的事情来使用其中包含的方法、函数等。

    插件(包含已编译代码和资源的 Bundle)用于可选的、动态加载的代码,例如您可以选择加载或不加载的软件扩展。您希望仔细构建您的应用程序,使其不依赖于插件,但如果您在运行时手动定位并加载它,它会获得新的行为。

    Framework 和 Plugin 非常相似,但 Framework 具有严格的文件布局,以便于定位和加载代码和资源。使用插件,这些工作是您的责任,因此您可以根据需要构建 Bundle 内容。

    因为在 OSX(而不是 iOS)上的 Cocoa 中加载代码非常容易,所以框架可以包含插件,这些插件包含包含更多框架的框架等。

    On iOS some people put Static Libraries in Bundles with resources and call them Frameworks。这没有真正框架的所有优点和所有缺点。

    【讨论】:

    • iOS现在可以有动态库了吗?
    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 2015-01-27
    • 1970-01-01
    • 2015-08-02
    相关资源
    最近更新 更多