Scala 語言開發(fā)Andorid 悲关,開發(fā)環(huán)境的搭建(一)

Scala 語言開發(fā)Andorid 襟锐,開發(fā)環(huán)境的搭建

厭倦 Java 繁瑣的語法撤逢,為了更優(yōu)雅的開發(fā) Android 程序,Scala 代替 Java 是一個不錯的嘗試粮坞。 開發(fā)前可以學(xué)習(xí) Scala 的基本語法蚊荣,某些部分和 Java 非常類似,但又聚合了其他先進語言的特性莫杈。與 Java 不同的是互例,在你熟悉函數(shù)式編程的情況下能寫出更加優(yōu)雅的代碼。

SBT 構(gòu)建工具

現(xiàn)在絕大多數(shù)的 Android 開發(fā)者是官方提供的 Android Studio 筝闹,這個 IDE 使用的是基于 Gradle 的自動化建構(gòu)工具媳叨,通過 Gradle 可以配置 Project 各種參數(shù),生產(chǎn) APK 等操作关顷。
SBT 是和 Gradle,Ant,Maven 一樣的自動化建構(gòu)工具糊秆,SBT 方便管理我們用 Scala 編寫的 Android 工程。

和使用 Java 開發(fā) Andoird 一樣议双,首先要安裝 Scala痘番, 下載 官方文件,在此之前先確定電腦已經(jīng)安裝配置好 Java 環(huán)境平痰。如果 macOS 已經(jīng)安裝有 Homebrew 只需要一行代碼即可安裝配置成功

brew install scala

接著安裝 SBT 同一也一行代碼搞定(趕緊換一臺 mac 吧~~

brew install sbt

其他系統(tǒng)的配置大可直接看 [Scala]((http://scala-lang.org/) 和 SBT 官網(wǎng)夫偶,里邊有詳細的安裝配置教程

項目結(jié)構(gòu)

和使用 構(gòu)建工具一樣界睁,Gradle 有一種固定的文件分類方式,不同的文件夾安放不同類型的文件兵拢。同樣的翻斟,SBT 也是有固定的文件結(jié)構(gòu)。其實 SBT 的結(jié)構(gòu)和 Gradle 的結(jié)構(gòu)類似说铃。

scala-android/
|- project/
| |- plugins.sbt
|- src/
| |- main/
| |- assets/
| |- java/
| |- res/
| |- layout/
| |- main.xml
| |- values/
| |- strings.xml
| |- scala/
| |- com/
| |- fortysevendeg/
| |- scala/
| |- android/
| |- SampleActivity.scala/
| |- AndroidManifest.xml
| |- test/
| |- java/
| |- res/
| |- scala/
|- build.sbt

結(jié)構(gòu)文件

根目錄下访惜,src 文件夾內(nèi)存放的有源碼的文件,布局文件腻扇,以及另外一些資源文件债热。java 文件存放的是 java的源代碼文件,scala文件夾里存放的當(dāng)然是 scala 源代碼文件幼苛,和 java 編寫的結(jié)構(gòu)一樣窒篱,倒序域名包命名的管理方式。text存放的是測試文件舶沿。

build.sbt 和 app 中Gradle build 文件類似墙杯,可以配置一些項目信息,例如管理包名括荡,應(yīng)用名高镐,編譯的目標(biāo)版本,最低限制版本畸冲,開啟混淆的嫉髓。使用的語法與 gradle 的語法略有不同。下面是一些常用的配置信息邑闲。
build.sbt

// 申明使用 Android 插件算行,讓構(gòu)造工具知道這是一個Android 工程
android.Plugin.androidBuild
    
// 生命 Android 目標(biāo) API 
platformTarget in Android := "android-21"

// 應(yīng)用名
name := """scala-android"""

// 應(yīng)用版本號
version := "1.0.0"

// Scala 版本
scalaVersion := "2.11.4"

// 項目中依賴的庫
resolvers += Resolver.jcenterRepo
libraryDependencies ++=
  "com.android.support" % "cardview-v7" % supportLibsVersion ::
  "com.android.support" % "customtabs" % supportLibsVersion ::
  "com.android.support" % "design" % supportLibsVersion ::
  "com.android.support" % "gridlayout-v7" % supportLibsVersion ::
  "com.android.support" % "preference-v14" % supportLibsVersion ::
  "com.futuremind.recyclerfastscroll" % "fastscroll" % "0.2.5" ::
  "com.evernote" % "android-job" % "1.1.4" ::
  "com.github.jorgecastilloprz" % "fabprogresscircle" % "1.01" ::
  "com.google.android.gms" % "play-services-ads" % playServicesVersion ::
  "com.google.android.gms" % "play-services-analytics" % playServicesVersion ::
  "com.google.android.gms" % "play-services-gcm" % playServicesVersion ::


// 開啟 Scala 混淆
proguardScala in Android := true

// 開啟 Android 混淆
useProguard in Android := true

// 設(shè)置混淆規(guī)則
proguardOptions in Android ++= Seq(
  "-ignorewarnings",
  "-keep class scala.Dynamic")

project/plugins.sbt文件是項目中構(gòu)建工具使用到的插件
project/plugins.sbt

addSbtPlugin("org.scala-android" % "sbt-android" % "1.7.2")
addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.1.10")
addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.8.2")
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市苫耸,隨后出現(xiàn)的幾起案子纱意,更是在濱河造成了極大的恐慌,老刑警劉巖鲸阔,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件偷霉,死亡現(xiàn)場離奇詭異,居然都是意外死亡褐筛,警方通過查閱死者的電腦和手機类少,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渔扎,“玉大人硫狞,你說我怎么就攤上這事。” “怎么了残吩?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵财忽,是天一觀的道長。 經(jīng)常有香客問我泣侮,道長即彪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任活尊,我火速辦了婚禮隶校,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蛹锰。我一直安慰自己深胳,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布铜犬。 她就那樣靜靜地躺著舞终,像睡著了一般。 火紅的嫁衣襯著肌膚如雪癣猾。 梳的紋絲不亂的頭發(fā)上敛劝,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天,我揣著相機與錄音煎谍,去河邊找鬼攘蔽。 笑死龙屉,一個胖子當(dāng)著我的面吹牛呐粘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播转捕,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼作岖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了五芝?” 一聲冷哼從身側(cè)響起痘儡,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎枢步,沒想到半個月后沉删,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡醉途,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年矾瑰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片隘擎。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡殴穴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情采幌,我是刑警寧澤劲够,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站休傍,受9級特大地震影響征绎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜尊残,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一炒瘸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧寝衫,春花似錦顷扩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至汹胃,卻和暖如春婶芭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背着饥。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工犀农, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人宰掉。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓呵哨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親轨奄。 傳聞我的和親對象是個殘疾皇子孟害,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容