有多大是一个Objective-C的iPhone应用程序与一个MonoTouch的应用程序?
-
22-07-2019 - |
题
我正在考虑使用MonoTouch的一些iPhone的发展,但有效载荷的大小是一个重要因素。
有关从来没有谁对他们的iPhone安装单之前用户,你会一个Objective-C的“Hello World”应用程序的大小相比,MonoTouch的“Hello World”的应用程序?
更具体地,什么是约要下载需要的字节数,什么是约。用过一旦安装字节数?
解决方案
一个 “世界你好” Objective-C中的程序占用50 KB(整体。应用程序文件夹)。 随着MonoTouch的,类似的“Hello World”应用程序占据5 MB(全名为.app文件夹),这是不坏考虑它与它的垃圾收集运行时。
其他提示
<强>在1.5 MonoTouch的强>
一个发布版本 - 这是一个与流通许可证构建的应用程序 - 与什么,但默认的项目设置,为5 MB。该4.3 MB的是二进制可执行文件。
他们往往上升到高达10 MB在我的经验,以及论坛漆相同的画面。 AppStore的报告解压缩后的大小,但是在下载压缩。拉链,其为大约3 MB其中,即使是在3G,是好的。
在我看来,大多数人不会看文件大小在下载应用之前,也没有特别在意。 作为3G下载AppStore的限制现在是20 MB 强>这是很好MonoTouch的大小之内。
要唱唱反调,是的,它比的Objective-C相当于大很多订单,并可能吓跑一些人担心他们占用16 GB空间的4-10 MB以上。不过也有上市时间和可用于.NET现有的工具。我开发的和的建立在Visual Studio中所有的应用程序的MonoTouch 2010然后测试它们在Mac上,我不认为苹果甚至会认为他们的IDE接近同行业的佼佼者。
从上 MonoTouch的和可执行的尺寸这样一个问题:
MonoTouch的不翻译成的OBJ-C。它编译成.NET IL,然后 编译一个(在相同的方式JIT编译器,但它的前 运行 - 。因此“提前时间”编译器)成原生ARM代码
这样:
的OBJ-C - > GCC(或LLVM) - > ARM代码
VRS MT:
C# - > IL - >(AOT编译器) - > ARM代码
在3.x的输出二进制文件是较大的,因为你还包括一个 很多的 .NET框架的强>(井,单声道框架,但同相同),所以如果 你,对于例如,使用的System.Xml,它必须包含到输出 - 同样与System.dll中等等。链接是非常聪明,但输出 二进制文件总是要的大强>
对我来说,唯一重要的事情大小是负载时间,并压缩 二进制文件的大小。一个“世界你好”的拉链二进制程序是约2.5-3meg 强> (的在4.x的较小我被告知强>)约的 300K 作为OBJ-C VRS。区别 变得越来越少添加,因为它仅包含的喜欢更 system.dll中一次。加载时间MT VRS的OBJ-C,在做同样的事情 同时,足够接近相同。任何一个都可能要进行 加载速度过慢(只是做一些长期运行在您的FinishedLaunching 不把它在另一个线程上)。
回答者接着说,他觉得自己比Objective-C的更高效使用MonoTouch的。 YMMV。