我已经在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
我在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
您现在可以使用Gradle的Android插件在Scala中创建Android应用程序.它结合了ProGuard工具来修剪生成的APK文件中的脂肪,因此似乎可以满足您的需求.
http://wiki.github.com/jvoegele/gradle-android-plugin/
还有一个基于Scala的构建器sbt:sbt-android-plugin的插件.
有关教程和示例,另请参阅StéphaneMicheloud的"探索Android"页面:http://lamp.epfl.ch/~michelou/android/
我使用Eclipse 3.7,Scala 2.10和插件AndroidProguardScala v50验证了这个详细的解决方案:
/sf/ask/17360801/
一切正常.具有scalafied主要活动类的简单测试应用程序仅需38Kb.支持图书馆项目.导出项目时激活Proguard.
为Scala开发Android应用程序正在不断发展.目前最好的方法是将SBT与android-sdk-plugin结合使用,该插件在我的Scala/Android项目中保持*并且对我来说效果很好.还可以找到一个最新的例子,该例子演示了如何使用已经提到过的Scaloid这个插件.
请注意,此问题是Stack Overflow上过时答案的问题的典型示例.这个答案也可能在某些时候变得过时.
*在本回答主题中提到的其他基于SBT的项目似乎在撰写本文时的最近六个月内没有为其编写代码.它们可能与较新版本的Scala和SBT存在兼容性问题.
如果您使用maven,请使用android-scala-test作为启动模板.它非常适合我开箱即用.
Scaloid是一个用Scala编写的Android API包装器,可以帮助您以Scala风格编写Android程序.