我已按照教程Scala and Android與Scala 2.7.3 final。產生的Android應用程序工作,但連最基本的應用程序需要幾分鐘(!)來編譯,需要900 KB壓縮,這對於移動應用的顯示塞。此外,IDE現在會耗盡內存。我認爲dex
不適用於像scala-library
這樣的大型圖書館。適用於Android的Scala編程
- 所以我的問題是:有沒有人真的這樣做,是否有任何治療呢?
我已按照教程Scala and Android與Scala 2.7.3 final。產生的Android應用程序工作,但連最基本的應用程序需要幾分鐘(!)來編譯,需要900 KB壓縮,這對於移動應用的顯示塞。此外,IDE現在會耗盡內存。我認爲dex
不適用於像scala-library
這樣的大型圖書館。適用於Android的Scala編程
我用Scala編寫一些基本的Android應用程序,沒有什麼太史詩。不是一個Java程序員,我建議使用「treeshake」,我的一個朋友,這剔除了從JAR文件所有不必要的庫解釋。
我沒有記錄它,但我發現,別人已經擁有的
http://chneukirchen.org/blog/archive/2009/04/programming-for-android-with-scala.html
Proguard的是不是唯一的解決方案,你可能會找到適合你的工作流程或者是更適合你環境。
此外谷歌剛剛實現JACK,這與相當多的減少建立和記憶次看到
現在,您可以使用Android插件搖籃到Scala中創建Android應用程序的交易。它集成了ProGuard工具來修剪APK文件中的脂肪,因此似乎可以滿足您的需求。
還爲基於Scala的建設者sbt的插件:sbt-android-plugin。
對於教程和例子,又見斯特凡Micheloud的 「探索Android」 的頁面:http://lamp.epfl.ch/~michelou/android/
我驗證了這個詳細的解決方案與Eclipse 3.7,斯卡拉2.10和插件AndroidProguardScala V50:
https://stackoverflow.com/a/11084146/1287856
一切工作正常。一個簡單的測試應用程序與scalafied主要活動類只需要38Kb。支持庫項目。導出項目時,Proguard被激活。
如果你使用Maven的,使用android-scala-test作爲啓動模板。它對我來說非常適合開箱即用。
Scaloid是用Scala編寫的,幫助你寫你在斯卡拉風格的Android程序在Android API包裝。
您可以使用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/
斯卡拉開發Android應用的不斷髮展。目前最好的方法是將SBT與android-sdk-plugin結合起來,它保持*並且適用於我的Scala/Android項目。一個最近的例子說明了這個插件與已經提到的Scaloid的使用可以also be found。
請注意,這個問題是堆棧溢出question with outdated answers的典型示例。這個答案在某些時候可能會過時。
*此回答線程中提到的其他基於SBT的項目在編寫本文時似乎沒有爲他們編寫代碼。他們可能與較新版本的Scala和SBT有兼容性問題。
Android上的Scala最大的問題是編譯時間。
可能是因爲在Dual Quad Core(8-CPU)上使用IDEA13/Scala插件編寫的Proguard類剝離編譯器帶有8GB的E5450 Xeon可能需要兩分鐘或更長時間。
因爲編譯時間太令人沮喪,所以在完成一個大型Scala Android項目後,我簡單地移回到了Java。
謝謝!我將不得不嘗試一下。我不知道它是否可以與Eclipse一起使用(使用Scala和Android插件) – Lemmy 2009-04-22 19:28:34
Lemmy - 是否有任何理由不接受這個答案?也許你找到了更好的解決方案? – Bostone 2009-11-13 18:58:07
鏈接又回來了 – Markus 2012-05-08 13:34:20