2009-01-24 77 views
245

我已按照教程Scala and AndroidScala 2.7.3 final。產生的Android應用程序工作,但連最基本的應用程序需要幾分鐘(!)來編譯,需要900 KB壓縮,這對於移動應用的顯示塞。此外,IDE現在會耗盡內存。我認爲dex不適用於像scala-library這樣的大型圖書館。適用於Android的Scala編程

  • 所以我的問題是:有沒有人真的這樣做,是否有任何治療呢?

回答

125

我用Scala編寫一些基本的Android應用程序,沒有什麼太史詩。不是一個Java程序員,我建議使用「treeshake」,我的一個朋友,這剔除了從JAR文件所有不必要的庫解釋。

我沒有記錄它,但我發現,別人已經擁有的

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

Proguard的是不是唯一的解決方案,你可能會找到適合你的工作流程或者是更適合你環境。

此外谷歌剛剛實現JACK,這與相當多的減少建立和記憶次看到​​

+3

謝謝!我將不得不嘗試一下。我不知道它是否可以與Eclipse一起使用(使用Scala和Android插件) – Lemmy 2009-04-22 19:28:34

+34

Lemmy - 是否有任何理由不接受這個答案?也許你找到了更好的解決方案? – Bostone 2009-11-13 18:58:07

+0

鏈接又回來了 – Markus 2012-05-08 13:34:20

13

我驗證了這個詳細的解決方案與Eclipse 3.7,斯卡拉2.10和插件AndroidProguardScala V50:

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

一切工作正常。一個簡單的測試應用程序與scalafied主要活動類只需要38Kb。支持庫項目。導出項目時,Proguard被激活。

6

如果你使用Maven的,使用android-scala-test作爲啓動模板。它對我來說非常適合開箱即用。

Scaloid是用Scala編寫的,幫助你寫你在斯卡拉風格的Android程序在Android API包裝。

4

您可以使用Android上的斯卡拉沒有SBT,它建在外部通過搖籃創建Android應用程序。 https://github.com/yareally/android-scala-intellij-no-sbt-plugin

Gradle是比SBT更適合android的本地構建工具。

有很好的Scala客戶端和服務器端解決方案概念,以及作爲IntelliJ IDEA工作臺的先進gradle構建工具。

核心類對於客戶端和服務器來說很普遍。

https://github.com/ghik/akkdroid

的IDEA和Android的插件很好的教程: http://fxthomas.github.io/android-plugin/

6

斯卡拉開發Android應用的不斷髮展。目前最好的方法是將SBT與android-sdk-plugin結合起來,它保持*並且適用於我的Scala/Android項目。一個最近的例子說明了這個插件與已經提到的Scaloid的使用可以also be found

請注意,這個問題是堆棧溢出question with outdated answers的典型示例。這個答案在某些時候可能會過時。

*此回答線程中提到的其他基於SBT的項目在編寫本文時似乎沒有爲他們編寫代碼。他們可能與較新版本的Scala和SBT有兼容性問題。

2

Android上的Scala最大的問題是編譯時間。

可能是因爲在Dual Quad Core(8-CPU)上使用IDEA13/Scala插件編寫的Proguard類剝離編譯器帶有8GB的E5450 Xeon可能需要兩分鐘或更長時間。

因爲編譯時間太令人沮喪,所以在完成一個大型Scala Android項目後,我簡單地移回到了Java。