如何减少 android 的 scala 应用程序的文件大小?

Posted

技术标签:

【中文标题】如何减少 android 的 scala 应用程序的文件大小?【英文标题】:How can scala applications for android be reduced in file size? 【发布时间】:2012-02-02 17:52:41 【问题描述】:

我正在尝试在 Eclipse 中使用 Scala 编写 android 应用程序。我遇到的问题是部署的 APK 文件太大 - 因为您无法将 Android 应用程序链接到外部库,所以必须将使用的任何代码复制到 APK 文件中,但大多数 Scala 应用程序不需要大多数 Scala 库。在某处我读到,即使是大型应用程序也可以仅使用 50kb 左右的 Scala 库进行打包,而我的 Android 设备告诉我我的测试应用程序占用了 4mb。

我已经尝试过 Eclipse 的 Treeshaker 插件,我可以在进度窗口中看到它正在运行,但它似乎没有做任何事情。将其从我的项目中分离出来不会对最终文件大小产生影响。我也尝试过自己配置 Proguard,但我找不到既不会影响文件大小的配置(而且我意识到 Proguard 仅在使用 Eclipse 的导出向导时运行,我用它来测试它)或崩溃带有神秘的错误消息,例如“1”。 (嗯,好的,整个错误消息是“转换为 Dalvik 格式失败,错误代码为 1”,这几乎没有什么帮助,因为我找不到该错误消息的任何明确文档,并且它没有告诉我是哪一部分我的代码或配置导致问题...)

所以。对我如何使这项工作有任何见解?

【问题讨论】:

您可能想试试我的新 Eclipse 插件 (github.com/banshee/AndroidProguardScala)。你肯定想看谷歌组groups.google.com/forum/?fromgroups#!forum/scala-on-android 【参考方案1】:

大多数人将 SBT 与 ProGuard 一起使用(据我所知,它是使用 sbt android plugin 自动运行的)。

此外,还有ship with two dex files in a apk 的可能性。这也解决了很多问题,因为大多数限制适用于 dex 文件,而不是最终的 apk。

这是较旧的,但有许多有用的一般信息:http://lamp.epfl.ch/~michelou/android/

【讨论】:

【参考方案2】:

我使用这里给出的 AndroidProguardScala:

https://***.com/a/11084146/1287856

它在导出应用程序时使用了Proguard,效果很好。

【讨论】:

这是插件的直接链接:github.com/banshee/AndroidProguardScala

以上是关于如何减少 android 的 scala 应用程序的文件大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何减少scala中的紧凑缓冲区?

如何在scala中使用单片机减少样板

Scala Spark - 如何减少在单列中包含多列的数据帧?

如何将 Scala 集成到核心 Android 平台中?

Scala语言减少了中间层代码

scala spark减少groupby中的列表