Red*_*ter 21 iphone mono objective-c xamarin.ios
我正在考虑将MonoTouch用于iPhone开发,但有效载荷大小是一个重要因素.
对于之前从未在iPhone上安装过Mono的用户,将Objective-C"Hello World"应用程序的大小与MonoTouch"Hello World"应用程序进行比较?
更具体地说,约为什么.需要下载的字节数,大约是多少.一旦安装使用的字节数?
Zor*_*mic 17
Objective-C中的"Hello world"程序占用50 KB(整个.app文件夹).使用MonoTouch,一个类似的"Hello World"应用程序占用5 MB(整个.app文件夹),考虑到它有一个带有垃圾收集的运行时,这一点都不错.
Chr*_*s S 11
在1.5 Monotouch
发布版本 - 使用分发许可证构建的应用程序 - 除了默认项目设置外,只有5 MB.其中4.3 MB是二进制可执行文件.
根据我的经验,它们通常会增加到10 MB,论坛也会画出相同的图片.appstore报告解压缩的大小,但是它们是压缩下载的.拉链大约3 MB,即使在3G上也可以.
http://i40.tinypic.com/2jadrpd.png
在我看来,大多数人在下载应用程序之前不会查看文件大小,也不会特别小心.3G下载的appstore限制现在为20 MB,完全在MonoTouch大小范围内.
为了扮演魔鬼的拥护者,是的,它有许多比Objective-C更大的订单,可能会吓跑一些担心占用16 GB空间4-10 MB的人.但是,还有上市时间和现有的.NET工具.我在Visual Studio 2010中开发和构建我的所有MonoTouch应用程序,然后在Mac上进行测试,我甚至不认为Apple会认为他们的IDE接近行业领导者.
小智 8
从这个关于MonoTouch和可执行文件大小的问题:
MonoTouch不会转换为Obj-c.它编译成.NET IL,然后编译它(以相同的方式将JIT编译器运行,但在它运行之前 - 因此"提前编译")到本机ARM代码中.
所以:
Obj-C - > GCC(或LLVM) - > ARM代码
vrs MT:
C# - > IL - >(AOT编译器) - > ARM代码
3.x中的输出二进制文件更大,因为你还包括很多.NET框架(好吧,Mono Framework,但是相同),所以如果你,例如,使用System.Xml,它必须包括进入输出 - 与System.dll等相同.链接器非常智能,但输出二进制文件总是会更大.
对我来说,唯一重要的是加载时间和压缩二进制大小.对于"hello world"应用程序的压缩二进制文件大约是2.5-3meg (在我告诉的4.x中较小)对于obj-c 来说约为300k.添加的越多,差异越小,因为它只包含一次system.dll之类的内容.MT vrs Obj-c的加载时间,同时执行相同的操作,也足够接近相同的时间.可以使任何一个加载缓慢(只需在FinishedLaunching中执行长时间运行而不将其放在另一个线程上).
回答者继续说他觉得MonoTouch比Objective-C更有效率.因人而异.