Scala with andriod
最近覺得最好玩的東西,就是用 Scala 來寫 android 的程式了
對 Scala 陌生的人可以先看看,墳墓大 的簡報
簡報很精彩,裡面我覺得重點就是第 8 頁,用 Java 來開發一點都沒有興奮的感覺,小宇宙燃燒不起來,學 scala 好玩的地方,就是可以慢慢地嘗試 function programing 的方法,又可以玩 android 的 application,算是蠻有趣的,比起 Haskell 算是軟很多,不會一下子腦筋轉不過去
在 andriod 上的設定也是相當的簡單,下面是一起搭配 sbt 來作 build 的方式
步驟
1. 下載安裝 scala http://www.scala-lang.org/downloads
2. 下載安裝 android sdk http://developer.android.com/sdk/index.html
3. 安裝 sbt http://code.google.com/p/simple-build-tool/wiki/Setup
4. git clone https://github.com/steve918/android-plugin.git
5. cd android-plugin
6. script/create_project foo com.example.android # #這樣就建立了一個 foo 的 andorid 專案資料夾
7. cd foo
8. export ANDROID_SDK_HOME=path/to/android_sdk # 要改成你真正的 SDK 位置
9. sbt package-debug # 編譯套件
10. ls target/scala_2.8.1/ # 看看有沒有 foo_2.8.1-0.1.apk,可以用 adb install foo_2.8.1-0.1.apk , 安裝到 emulator 上去看看
收工
參考文章
http://zegoggl.es/2009/12/building-android-apps-in-scala-with-sbt.html
另外還有直接用 ant build 的方式,用標準 andriod 指令建立專案,然後,在 build.xml 裡再 import build-scala.xml 的方式,來編譯 scala 的 andriod 專案,連結 http://lamp.epfl.ch/~michelou/android/scala-to-android.html
我自己比較喜歡,用 sbt 的方式,總覺得 xml 不是方便有效率的格式
另外有興趣,想用 scala 在 android 的專案,寫 testcase 也是用 sbt 的方式,可以參考,墳墓大的 github 範例專案 https://github.com/brianhsu/ScalaTestAndroidExample
PS:
1. 用 script/create_project 的話,必須把 create_project 裡面的 val pluginDef = val android = “org.scala-tools.sbt” % “sbt-android-plugin” % “0.5.1”
2. 也可以用 https://github.com/jberkel/android-plugin 的版本,只是 project/build/你的project.scala 裡面要自己重定 adbPath,因為 android SDK 2.3 位址換了
3. 如果有修改到 android-plugin 的話,記得用 sbt publish-local 安裝,才會裝這一個 local 修改過得版本
PS: eclipse 裝在 debian 上時,如果沒有要用 ipv6 可以把改 /etc/sysctl.conf
net.ipv6.bindv6only = 0
這樣 eclipse 要 update 的時候,就會用 ipv4