我在Delphi XE4 for iOS中创建了一个小应用程序。我有7个表格。一切都很好。
但我对文件大小有点震惊!它在模拟器上44MB。我为android制作的应用程序几乎是2MB。它的背景图像是jpg格式的320kb 我还没有在iPhone设备上测试它!
如果您在XCode上使用表单上的ListBox,文本,按钮创建正常大小的应用程序是什么?
有没有办法通过更改Delphi中的任何设置来减少文件大小?
答案 0 :(得分:17)
使用Delphi for iOS(在发布模式下没有调试信息),大约15 MB的声音是最小的可执行文件大小。如果您不需要,可以尝试disable the RTTI generation。但并没有很大的希望。
它比ObjectiveC“native”大得多,但它嵌入了整个Delphi RTL和FireMonkey库来完成所有渲染,因此它更大。
使用FPC编译的使用本机iOS控件的“plain Objective Pascal”可执行文件应该更小。或者使用“Oxygene for Cocoa”编译时,它应该小得多。
但是,不要只考虑可执行文件大小,考虑执行期间使用的内存和一般速度。您可能需要与嵌入PhoneGap的HTML5应用进行比较。 FireMonkey在屏幕上呈现速度可能较慢,但使用ARC内存处理的本机代码应该比JavaScript更强大。
不要忘记你的智能手机现在有很多内存。 ;)
可悲的是,在iOS下无法与外部库(.so)共享一些代码,因此您将无法使用Delphi软件包来减少可执行文件的大小。
当然,Apple始终竭尽全力迫使开发人员使用自己的工具和语言。与Microsoft一样,特别是对于Windows 8. Delphi for iOS并不声称比XCode + Objective C更好,但是要跨平台,以便您可以与服务器或Windows / Mac OSX应用程序共享尽可能多的代码:不能在Mac世界之外使用你的Objective C代码...但你可以在平台之间共享你的Delphi代码,即使必须为移动设备重写UI。这就是为什么与JavaScript/PhoneGap, MonoDroid/MonoTouch或AppCelerator进行更公平的比较。
从 StackOverflow 中检索到的一些数据:
一个问题:AFAIK AppStore中3G下载的大小限制约为20 MB。
答案 1 :(得分:0)
添加到Arnaud的答案:
您可以使用Native控件而不是Firemonkey控件 Babak Yaghoobi编写了一个库,让Delphi使用操作系统的本机控件。
请参阅此处了解iOS:http://sourceforge.net/projects/dpfdelphiios/files/?source=navbar
这里适用于Android:http://sourceforge.net/projects/dpfdelphiandroid/
Firemonkey使用100%Delphi代码渲染,本机控件使用手机ROM中的内部代码。
答案 2 :(得分:0)
我们有一个iOS应用程序,包含6个表单和许多控件。发布的ipa时钟刚刚超过11 mb,其中包括所有必需的应用程序图标(总共28个,总计超过1 mb)。
在我看来,这并不是那么大,所以我在这里看不到问题。