- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 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/
我在 android 代码中使用 asmack XMPP。我可以正常登录 XMPP 服务器,但是当我尝试创建新用户时出现问题。我想要实现的是: 以管理员身份登录。 创建一个新用户。 从管理员注销。 以
这是我的标记页面,其中有一个按钮可以从数据库中搜索数据并显示在网格中 这是我背后的代码 if (!IsPostBack) { LblInfo.Text = "Page Load
当我多次将相同的 float 值插入到我的集合中时,本应花费恒定时间的 x in s 检查变得非常慢。为什么? 时序x in s的输出: 0.06 microseconds 0.09 mi
我有一个小型聊天客户端,可以将所有历史记录存储在 sqlite 数据库中。当用户单击我的应用程序中的 history 选项卡时,我的应用程序会获取所有相关历史记录并将其显示在 QWebView 中。我
我是一名优秀的程序员,十分优秀!