構造Scala開發環境並建立ApiDemos示例專案
從2011年開始寫Android ApiDemos 以來,Android的版本也更新了很多,目前的版本已經是4.04。ApiDemos中的例子也增加了不少,有必要更新Android ApiDemo示例解析系列文章(當然之前的文章還是有用的,依然可以作為參考)。為了不重複之前的內容,我們準備使用Scala語言開發Android應用,隨著例子的逐步解析,我們會把ApiDemos的例子的程式碼依次修改為Scala程式碼,並使用Robujuice 來注入View,關於Scala程式設計可以參考部落格scala開發教程 ,關於Robujuice的介紹可以參考Android RoboGuice 使用指南
我們開發Android應用使用的IDE為Intellij (這也是新版Android Studio 基於的版本)。
1. 安裝Scala開發環境 ,請參考
2. 安裝IDEA Scala外掛 使用IntelliJ IDEA開發Scala應用
3. 安裝Android SDK
4. 匯入ApiDemos示例到Intellij,這裡我們使用Android-17 目錄下
為方便起見,ApiDemos的專案可以在github網站上覆制 https://github.com/guidebee/ApiDemos 一般來說每次更新都會打上當天的日期作為標記,以便參考。
5.為Android專案配置Scala Facet,在匯入的ApiDemos專案,使用File -> Project Structure -> Facets
6. 為專案新增Scala 庫檔案, 使用 File -> Project Structure -> Libraries
scala-library.jar 檔案可以在Scala安裝目錄 的libs下找到
7. 確認之前新增的Scala Facet為module的dependency. 你可以檢視模組的dependency File -> Project Structure -> Modules -> Dependencies
並配置compiler plugins (可選)
注意:選取的Android平臺需要使用JDK7 ,這是因為目前最新版的proguard還不支援JDK8.
8. 配置proguard ,使用下面的proguard-project.txt 檔案,這個檔案可以使用大多數的專案,你將這個檔案新增到Android專案中
對於Intellij 12 ,使用 File → project settings → modules → select module(s) → compiler tab → enable proguard
對於Intellij 13 ,使用 File → project settings → modules → select module(s) → compiler tab → check Run Proguard checkbox
注意在配置proguard列表時,同時也需新增Android SDK預設的檔案 /android-sdk-home/tools/proguard/proguard-android.txt 預設情況已經在專案的配置中了。
之後我們就可以和編譯普通Java開發的Android應用一樣編譯Scala程式碼,使用這種配置,你可以任意混合使用scala 和 Java 語言,當然你不能在同一個檔案中混合使用,如有Scala程式碼存放在.scala檔案中,所有java程式碼還是存放在.java檔案中,在github的專案中,有兩個例項的.java檔案 ExampleActivity.java 和 SignInActivity.java .我們把它們先修改成scala程式碼
1 | import android.app.Activity |
2 | import android.os.Bundle |
3 |
4 | class ExampleActivity extends Activity { |
5 |
6 | override def onCreate(savedInstanceState : Bundle) { |
7 | super .onCreate(savedInstanceState) |
8 | // The activity is being created. |
9 | } |
10 |
11 | protected
|