适用于Android的Scala编程

Lem*_*mmy 255 resources android scala

我已经在Scala和Android上使用了Scala 2.7.3 final 的教程.由此产生的Android应用程序可以工作,但即使是最基本的应用程序也需要几分钟(!)来编译,需要900 kb压缩,这是移动应用程序的显示阻止.此外,IDE时不时会耗尽内存.我认为dex不适合像这样的大型图书馆scala-library.

  • 所以我的问题是:有没有人真的这样做了,有没有治愈的方法?

小智 127

我在Scala中编写了一些基本的Android应用程序,没什么太史诗的.不是Java程序员我被建议使用"treeshake",朋友解释说,这会从jar文件中删除所有不必要的库.

我没有记录,但我发现其他人已经有:

http://chneukirchen.org/blog/archive/2009/04/programming-for-android-with-scala.html

Proguard不是唯一的解决方案,您可能会找到适合您的工作流程或更适合您的环境的解决方案.

此外谷歌刚刚实现了JACK,它可以减少构建和内存时间,请参阅https://source.android.com/source/jack.html

  • Lemmy - 有什么理由你不接受这个答案吗?也许你找到了更好的解决方案? (36认同)
  • 谢谢!我必须尝试一下.我想知道它是否可以与Eclipse一起使用(使用Scala和Android插件) (3认同)
  • 根据我的经验,对于大多数非平凡的scala代码,树木摇摆不够好.这还不够激进. (3认同)

Jas*_*ele 45

您现在可以使用Gradle的Android插件在Scala中创建Android应用程序.它结合了ProGuard工具来修剪生成的APK文件中的脂肪,因此似乎可以满足您的需求.

http://wiki.github.com/jvoegele/gradle-android-plugin/


Jan*_*kel 22

还有一个基于Scala的构建器sbt:sbt-android-plugin的插件.


Luk*_*ytz 19

有关教程和示例,另请参阅StéphaneMicheloud的"探索Android"页面:http://lamp.epfl.ch/~michelou/android/


Mik*_*yer 15

我使用Eclipse 3.7,Scala 2.10和插件AndroidProguardScala v50验证了这个详细的解决方案:

/sf/answers/775890251/

一切正常.具有scalafied主要活动类的简单测试应用程序仅需38Kb.支持图书馆项目.导出项目时激活Proguard.

  • 由于一些新的好的缓存实现,现在需要大约1秒的最新的android sdk和插件. (6认同)
  • 这听起来很棒.部署到设备时,此解决方案的构建时间如何(与部署类似的Java Android项目相比)? (3认同)

DCK*_*ing 7

为Scala开发Android应用程序正在不断发展.目前最好的方法是将SBT与android-sdk-plugin结合使用,该插件在我的Scala/Android项目中保持*并且对我来说效果很好.还可以找到一个最新的例子,该例子演示了如何使用已经提到过的Scaloid这个插件.

请注意,此问题是Stack Overflow上过时答案问题的典型示例.这个答案也可能在某些时候变得过时.

*在本回答主题中提到的其他基于SBT的项目似乎在撰写本文时的最近六个月内没有为其编写代码.它们可能与较新版本的Scala和SBT存在兼容性问题.


poc*_*all 6

如果您使用maven,请使用android-scala-test作为启动模板.它非常适合我开箱即用.

Scaloid是一个用Scala编写的Android API包装器,可以帮助您以Scala风格编写Android程序.