1. 程式人生 > >使用SBT構建Scala開發的Android工程

使用SBT構建Scala開發的Android工程

最近接觸了shadowsocks的Android客戶端專案原始碼(https://github.com/shadowsocks/shadowsocks-android),剛好這個專案是使用Scala開發的.至於為什麼使用Scala開發Android專案,大概原因如下:
Android 開發一直有兩個無法迴避的問題:基於 JVM 的設計使得系統的效能受到拖累;Java 冗繁的語法令人絕望。Scala 作為一門 state-of-the-art 的程式語言,兼具面向物件以及函式式語言的特點。其設計在 JVM 之上,與 Java 類庫完全相容,甚至可以與 Java 程式碼相互轉換。可以說,Scala 是當前替代 Java 的最好選擇,在不需要放棄已經無比先進的 JVM 和足夠完備的 Java 生態的前提下,開發者們可以獲得更先進的語言特性和更高的開發效率。至於 Android 開發,Scala 則提供了全新的體驗,在配合 Scaloid 的情況下程式碼量可以大大減少。
言歸正傳,如何搭建SBT編譯Scala開發的Android工程.

一、 SBT構建工具的安裝
直接訪問SBT的官網(http://www.scala-sbt.org/download.html)下載安裝包,安裝SBT即可。Windows平臺下,有msi安裝包,安裝後直接自動完成了配置。
執行命令列 sbt about檢驗是否安裝成功。成功安裝會輸出以下內容:
這裡寫圖片描述

二、 環境變數的配置
配置環境變數ANDROID_HOME,指向Android SDK的目錄地址。
這裡寫圖片描述
如果專案中有使用到NDK編譯的,需要配置ANDROID_NDK_HOME環境變數。
這裡寫圖片描述

三、 SBT構建指令碼的編寫
在專案的根目錄建立資料夾project,並建立檔案plugins.sbt,在檔案中新增如下程式碼:
addSbtPlugin(“org.scala-android” % “sbt-android” % “1.6.6”)
其實是為編譯工程指定sbt-android外掛的版本為1.6.6。
接下來編寫SBT編譯指令碼。在專案的根目錄,建立檔案build.sbt,並進行指令碼的的編寫。具體語法和API請自行Google。

四、 編譯release安裝包
執行編譯指令碼,構建Android專案,命令如下:
sbt clean android:package-release
等待外掛等下載完成和專案編譯完成之後,在target/android/output 目錄下可以找到apk安裝包。

附:
SBT的常用命令:
• compile
o Compiles all the sources in the project, java and scala
o Compile output is automatically processed through proguard if there are any Scala sources, otherwise; it can be enabled manually.
• android:package-release
o Builds a release APK and signs it with a release key if configured
• android:package-debug
o Builds a debug APK and signs it using the debug key
• android:package
o Builds an APK for the project of the last type selected, by default debug
• android:test
o run instrumented android unit tests
• android:install
o Install the application to device
• android:run
o Install and run the application on-device
• android:uninstall
o Uninstall the application from device