Codenameone 如何将一个代号为one的应用程序的jar大小降低到50毫克以下

Codenameone 如何将一个代号为one的应用程序的jar大小降低到50毫克以下,codenameone,Codenameone,我的应用程序对于50兆的限制来说太大了,所以我正在寻找一些方法来显著减小文件大小 如果我丢弃一个dpi,当它在该dpi上运行时会发生什么?我有一些巨大的背景,使我的应用程序非常臃肿,我想知道我是否可以删除所有,但说高清的一个,它将规模或它只是空的?或者我需要改变背景图像的缩放比例才能做到这一点 CN1似乎也使用png,我可以为选定的项目使用jpg来节省空间吗?2.3兆PNG的背景可能是35k JPG。。即使我在gui设计器中按save键后编写了一个对它们进行JPEG压缩的脚本,我想这也行吗 有没

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

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

CN1似乎也使用png,我可以为选定的项目使用jpg来节省空间吗?2.3兆PNG的背景可能是35k JPG。。即使我在gui设计器中按save键后编写了一个对它们进行JPEG压缩的脚本,我想这也行吗


有没有关于减少cn1应用程序大小的进一步建议?

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

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

我所有的答案都基于旧的GUI构建器

  • 对于背景图像,请使用单个图像(而不是多个图像)并设置表单UIID的样式以使用图像,然后键入image\u to\u FILL

  • 尽可能避免使用png图像,CN1完全支持jpg

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

  • 避免在不需要的地方使用9片边框图像,如果不会破坏您的设计,请尝试使用纯色背景
  • 删除未使用的图像,它们也会占用大量空间。在GUI生成器上
  • 重新使用UIID,而不是创建多个类似的UIID
  • 将GUI生成器窗体迁移到代码中,我发布了一个示例窗体类来回答另一个问题,并讨论了类似的问题
  • 删除您不使用的UIID,在大多数情况下,将未选定样式的UUID复制并粘贴到选定样式,而不是创建类似的UUID
  • 注意这一点。保持GUI生成器打开,确保在文件下选中Xml团队模式,删除未使用的图像后保存GUI生成器,而不关闭GUI生成器,转到项目文件夹->res->删除theme.Xml和res文件夹中的theme文件夹(如果重命名了theme.res文件,名称可能会不同)。现在返回应用程序并再次保存。res文件的新副本将保存在同一文件夹中
  • 尽量减少你使用的背景图像数量,现代好看的应用程序是简单的普通背景应用程序。例如,Facebook、Twitter、Uber、AirBnB、BBC新闻应用程序和许多其他应用程序。除非你的应用程序实际上是一款游戏,或者必然需要丰富的静态图像
  • 请看这篇关于性能调优的文章,它有点陈旧,但仍然包含有用的信息
如果你的应用在iOS上大于20MB,在android上大于5mb,你应该担心它的性能

创建字体图标:

  • 转到并检查当前的图标,如果您需要的图标不存在
  • 转到并在那里搜索,将其作为svg下载,然后将svg拖放到fontello网页上。如果图标看起来不符合预期
  • 返回flaticon.com并将图像下载为black 512px png图像,然后转到,将png转换为单色svg文件,这有助于创建与fontello配合良好的复合图像
  • 下载fontello上的fonticon作为zip,并按照Shai的使用。zip包含预览图标的演示html文件,还包含一个config.json,可在fontello.com上拖放以继续您停止的位置

  • 回答得很好!我还想补充一点,如果在资源上获取图像时找不到合适的DPI,您现在可以使用新的材质设计图标,选择最接近的DPI。您还可以使用Designeries中的“图像”菜单检测资源文件中最大的图像。回答得好,我的罐子从43兆增加到14兆,我必须这样做我忘记了CN1可以使用JPG,并且在使用缩放选项时不需要使用多图像。我使用JDiskreport查找大文件,对其进行jpeg压缩,将其添加回普通图像,并每次删除未使用的图像。谢谢,这很有趣!