为啥我运行应用程序时 jar 文件的大小会增加?

Posted

技术标签:

【中文标题】为啥我运行应用程序时 jar 文件的大小会增加?【英文标题】:Why is the jar file size increasing when I run the application?为什么我运行应用程序时 jar 文件的大小会增加? 【发布时间】:2012-01-22 06:27:23 【问题描述】:

我正在使用 j2me 开发一个移动应用程序。在我的移动应用程序中,我通过蓝牙与另一台设备连接并执行一些操作。

在我的移动应用程序中,jar 文件大小为 80KB

我将应用程序部署在“诺基亚 c2-00”手机中。当我执行应用程序时,jar 文件的内存每次都会增加。每次我执行应用程序时,jar 文件的大小都会增加 5 到 10 KB。

例如我在诺基亚手机中部署应用程序(当时手机上的jar大小为80KB),运行并退出应用程序后我检查大小(它将变为85 KB,之后增加到90KB,等)尺寸增加。

我不明白为什么我的应用程序大小会增加。请帮我弄清楚为什么 jar 文件的大小会增加以及如何阻止它这样做。

【问题讨论】:

您可以查看您的 jar 并查看添加了什么。 @SIVAKUMAR 你能给出建立蓝牙连接的代码吗,因为我的不工作。谢谢 【参考方案1】:

您的应用在做什么?我之前在诺基亚 S40 手机上部署 MIDlet 时看到过这种现象,我将其归因于应用程序将数据写入 RMS。所以显示器显示了 JAR 和 MIDlet 本身占用的空间。

这听起来像是发生了什么吗?

【讨论】:

【参考方案2】:

将膨胀/扩展的 JAR 文件的副本移回您的开发平台,将其提取并与原始 JAR 内容进行比较,以查看发生了什么变化。

您的应用程序或您的应用程序正在使用的某个库中的某些内容可能正在向 JAR 添加一些包含某些状态的文件。这是一件坏事。 ZIP/JAR 文件的格式不允许就地重写组件文件。相反,必须附加新版本的组件文件......导致 JAR 文件增长。

【讨论】:

在我知道的任何 J2ME 平台上都无法将已安装的 MIDlet 移出设备。【参考方案3】:

这是一个奇怪的案例。 jar 安装后不应该增长... 为了让 jar 增长,必须将其内容解压缩并与其他文件一起重新打包到一个新的 jar 文件中。这种情况不太可能发生。

不管怎样,你能分享你的jar和jad文件吗?我正在考虑自己对此进行测试。

【讨论】:

以上是关于为啥我运行应用程序时 jar 文件的大小会增加?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我执行 PCA 后图像文件的大小会增加?

为啥每次使用 VBA 保存 word 文档时文件大小都会增加?

使用 Bouncy Castle 库会导致输出 .jar 文件大小大幅增加

R光栅乘法 - 为啥光栅大小会大大增加

当我增加批量大小时,为啥 tensorflow GPU 内存使用量会减少?

为啥聚合/裁剪后我的光栅文件大小会增加?