6

我在 Delphi XE4 for iOS 中创建了一个小应用程序。我有7个表格。一切都很好。

但我对文件大小有点震惊!它在模拟器上为 44MB。我为 android 制作的同一个应用程序几乎是 2MB。它有一个 320kb 的 jpg 格式的背景图像,我还没有在 iPhone 设备上测试它!

如果您在 XCode 上使用表单上的 ListBox、文本、按钮创建,那么正常大小的应用程序是什么?

有没有办法通过更改 Delphi 中的任何设置来减小文件大小?

4

3 回答 3

17

大约 15 MB 听起来是 Delphi for iOS 的最小可执行文件大小(在没有调试信息的发布模式下)。如果不需要,可以尝试禁用 RTTI 生成。但并不抱太大希望。

它比 ObjectiveC “native” 大得多,但它嵌入了整个 Delphi RTL 和 FireMonkey 库来完成所有渲染,因此它更大。

使用 FPC 编译的原生 iOS 控件的“普通 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/MonoTouchAppCelerator

从StackOverflow检索到的一些数据:

一个问题:AFAIK AppStore 中 3G 下载的大小限制约为 20 MB。

于 2013-07-19T18:24:05.770 回答
0

添加到 Arnaud 的答案:

您可以使用本机控件而不是 Firemonkey 控件。
Babak Yaghoobi编写了一个库来让 Delphi 使用操作系统的本机控件。

对于 iOS,请参见此处:http: //sourceforge.net/projects/dpfdelphiios/files/
?source= navbar 对于 Android:http: //sourceforge.net/projects/dpfdelphiandroid/

Firemonkey 使用 100% Delphi 代码进行渲染,本机控件使用手机 ROM 中的内部代码。

于 2014-06-27T14:38:37.030 回答
0

我们有一个带有 6 个表单和许多控件的 iOS 应用程序。发布的 ipa 时钟刚刚超过 11 mb,其中包括所有需要的应用程序图标(总共 28 个,大小略高于 1 mb)。

在我看来,这并没有那么大,所以我在这里看不到问题。

于 2015-04-29T13:40:58.280 回答