gpt4 book ai didi

c# - Monotouch 绑定(bind)使我的应用程序变得巨大

转载 作者:太空宇宙 更新时间:2023-11-03 21:46:58 25 4
gpt4 key购买 nike

我正在使用 Monotouch 创建 iOS 应用程序。我已经为 ChartBoost、RevMob 和其他人创建了绑定(bind)。

我遇到的问题是最终应用程序的大小约为 20MB。对于这样一个简单的游戏应用程序来说,这太过分了。

我检查了主要的应用程序项目 dll,它只有大约 500KB 大。但是绑定(bind)的 dll 总共大约 19MB。

我不确定我做错了什么我已经做了以下事情但没有运气:- 仅链接原生 SDK- 仅使用 ARMV7- 使用 LLVM- 为我的绑定(bind)项目添加了 LinkerSafe 属性。

谁能帮帮我?

最佳答案

您的设置听起来很合理 - 但您的问题中没有太多我们可以用来帮助您的细节。如果您使用多个 native 库,那么获得大型应用程序就不足为奇了。

请注意,仅链接原生 SDK 不存在。它是仅链接 SDK 程序集,并且仅适用于托管程序集(非 native 程序集)。 托管链接仍然非常重要,因为它将允许进一​​步优化。

当您在绑定(bind)项目中添加 [LinkerSafe] 时,未使用的代码将被删除(即使使用了 Linker SDK)。它还对生成的绑定(bind)代码进行了大量优化(使其更小更快)。确保(比较大小前后)绑定(bind)程序集包含该属性。

您可能希望使用链接所有程序集 以获得最大的节省。再次比较之前(链接 sdk)和之后(链接所有)以查看 yield 是什么(您可能必须 [Preserve] 一些代码才能使其工作,例如,如果您使用反射) .

有一个非常的新功能,SmartLink ,它删除了 --force_load 要求,这将使删除 native 代码变得更加容易(例如,从大多数 native 库中)。很难预测节省的空间(数据不足),但很多绑定(bind)示例(在 github 上)节省了 250KB 到 400KB。

注意:一旦我的 Evolve 演讲(关于构建优化)的视频在线可用,我将更新我的答案。与此同时,有很多 older blog post我做了(和其他文档)可以帮助您优化应用程序的大小。

关于c# - Monotouch 绑定(bind)使我的应用程序变得巨大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16470550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com