如何减少代号一个应用程序的 jar 大小以保持在 50 兆以下

How to reduce the jar size of a codename one app to stay under 50meg

我的应用程序对于 50 兆的限制来说太大了,所以我正在寻找一些方法来显着减小文件大小。

如果我放弃一个 dpi,当它在那个 dpi 上运行时会发生什么?我有一些巨大的背景使我的应用程序非常臃肿,我想知道我是否可以将它们全部删除,但说是高清背景,它会缩放还是只是空的?或者我是否需要更改背景图像缩放比例才能做到这一点?

另外CN1好像是用png的,我可以把选中的项目用jpg保存吗space? 2.3 meg png 的背景可能是 35k jpg。即使我在 gui 设计器中按保存后编写了一个脚本来对它们进行 jpeg,我认为这可以工作吗?

对于减小 cn1 应用程序的大小,还有任何进一步的最终提示吗?

一个 50mb 的应用程序不仅很大,而且在设备上很慢(性能方面)。

要大幅减小您的应用程序大小,请执行以下操作:

我所有的回答都是基于旧的 GUI Builder

  • 对于背景图片,使用单张图片(不是多张图片)并设置表单 UIID 的样式以使用图片并输入 IMAGE_TO_FILL.

  • 尽可能避免使用png图片,CN1完美支持jpg。

  • 基本图标不要用图片,用fonticon。可以将数千个图标制作成 100kb 的高品质 svg 图像,不会像素化。我将在此列表的末尾解释如何创建自定义字体图标。

  • 避免在不是真正需要的地方使用 9 片式边框图像,如果不会破坏您的设计,请尝试使用纯色背景。
  • 删除不用的图片,他们也占了很多space。在您的 GUI 生成器上。
  • 重复使用 UIID,而不是创建多个相似的 UIID。
  • 将您的 GUI Builder 表单迁移到代码,我发布了一个示例表单 Class 来回答另一个问题 here and also talk about similar thing here
  • 删除您不使用的 UIID,在大多数情况下,将未选择样式的 UUID 复制并粘贴到所选样式,而不是创建类似的。
  • 注意这一点。 保持 GUI Builder 打开,确保 Xml 团队模式 File,删除未使用的图像后保存GUI Builder,不关闭GUI Builder,转到您的项目文件夹-> res->删除theme.xml和res文件夹中的主题文件夹(如果您重命名了 theme.res 文件,名称可能会有所不同)。现在返回您的应用并再次保存。您的 res 文件的新副本将保存在同一文件夹中。
  • 尽量减少您使用的背景图片数量,现代好看的应用程序是简单的纯背景应用程序。例如,Facebook、Twitter、Uber、AirBnB、BBC News App 等等。除非您的应用实际上是一款游戏,或者必须需要静态的丰富图像。
  • 观看这个关于性能调优的video,它有点旧但仍然包含有用的信息

如果您的应用在 iOS 上大于 20 mb,在 android 上大于 5mb,您应该担心它的性能。

创建字体图标:

  1. 转到 fontello.com 并检查存在的图标,如果有您需要但不存在的图标...
  2. 转到 flaticon.com 并在那里搜索它,将其下载为 svg 并将 svg 拖放到 fontello 网页上。如果图标看起来不像预期的那样...
  3. 返回flaticon.com并将图像下载为黑色512px png图像并转到online-convert.com,将png转换为单色svg文件,这有助于您创建效果很好的复合图像与 fontello.
  4. 在 fontello 上以 zip 格式下载 fonticon 并按照 Shai 的 chat app example 使用它。该 zip 包含演示 html 文件以预览您的图标,还有一个 config.json 可以拖放到 fontello.com 上以继续您停止的地方。