從Android項目學習Kotlin(一)

一鬓椭、優(yōu)點

Kotlin 非常適合開發(fā) Android 應用程序蕊程,將現(xiàn)代語言的所有優(yōu)勢帶入 Android 平臺而不會引入
任何新的限制:

1.兼容性:Kotlin 與 JDK 6 完全兼容,保障了 Kotlin 應用程序可以在較舊的 Android 設備

上運行而無任何問題撬即。Kotlin 工具在 Android Studio 中會完全支持库菲,并且兼容 Android 構(gòu)
建系統(tǒng)。

2.性能:由于非常相似的字節(jié)碼結(jié)構(gòu)卫旱,Kotlin 應用程序的運行速度與 Java 類似。 隨著

Kotlin 對內(nèi)聯(lián)函數(shù)的支持绣否,使用 lambda 表達式的代碼通常比用 Java 寫的代碼運行得更
快誊涯。

3.互操作性:Kotlin 可與 Java 進行 100% 的互操作挡毅,允許在 Kotlin 應用程序中使用所有現(xiàn)

有的 Android 庫 蒜撮。這包括注解處理,所以數(shù)據(jù)綁定和 Dagger 也是一樣跪呈。

4.占用:Kotlin 具有非常緊湊的運行時庫,可以通過使用 ProGuard 進一步減少。 在實際

應用程序中荆几,Kotlin 運行時只增加幾百個方法以及 .apk 文件不到 100K 大小储藐。

5.編譯時長:Kotlin 支持高效的增量編譯,所以對于清理構(gòu)建會有額外的開銷误阻,增量構(gòu)建通

常與 Java 一樣快或者更快债蜜。

二、Android 推薦使用的工具

1. Kotlin Android 擴展是一個編譯器擴展究反, 可以讓你擺脫代碼中的 findViewById() 調(diào)用寻定,

并將其替換為合成的編譯器生成的屬性。

2.Anko 是一個提供圍繞 Android API 的 Kotlin 友好的包裝器的庫精耐,以及一個可以用 Kotlin
3.Kotlin 用于 Android 代碼替換布局 .xml 文件的 DSL狼速。
4.KAndroid - Kotlin library for Android
5.Bubble - 屏幕方向監(jiān)測
6.Kotpref -android sp緩存工具
7.Fuese - android內(nèi)存緩存工具
8.Kotter Knife KotlinPoet 類似黃油刀的依賴注入框架
9.Klaxon 一個解析 JSON 的庫

三、AndroidStudio配置

1.插件安裝
image.png

當插件安裝完畢后卦停,重啟Android Studio即可向胡。
打開Android Studio新建一個項目恼蓬,和往常一樣建立一個項目就可以了,項目建立好以后僵芹,我們會在右鍵菜單New下看到多出來Kotlin File/Class和Kotlin Activity兩個選項处硬。


image.png

第一次新建Kotlin類后,會顯示“Kotlin not configured”淮捆,點擊“Configure”郁油,進入Kotlin配置頁面。


image.png

根據(jù)自己的需要選擇需要配置的范圍攀痊,全部模塊或單個模塊桐腌,然后確定就可以了,我直接默認選項過去
配置完成后會自動在你的Project下的build.gradle與moudle下的build.gradle下配置相應的參數(shù)苟径。
project下build.gradle中的參數(shù)
image.png

module下 build.gradle中的參數(shù)


image.png
2.把項目轉(zhuǎn)換為kotlin項目:
image.png

新建好的MainActivity.java案站, 注意這里是.java后綴的java文件,我們可以手動轉(zhuǎn)換為kotlin代碼


image.png

image.png

四棘街、簡化findViewById

我們知道蟆盐,Android的架構(gòu)里,xml布局文件和Activity是松耦合的遭殉,Activity中要使用界面元素石挂,必須借助R文件對xml控件的記錄,用findViewById找到這個元素险污。
在Kotlin中我們可繼續(xù)使用findViewById去綁定xml布局中的控件:(TextView)findViewById(R.id.hello)痹愚;
進一步引用Anko之后,可以使用find函數(shù)去綁定控件:find(R.id.hello)蛔糯,不需要類型轉(zhuǎn)換
同時拯腮,Kotlin還提供一種更激進的方法,通過在gradule中引用

applyplugin:'kotlin-android-extensions'

徹底取消findViewById這個函數(shù)蚁飒,具體做法如下:

首先动壤,在app的gradule中,添加引用


image.png

然后淮逻,在Activity中直接根據(jù)id使用界面元素


image.png

五琼懊、Anko簡單使用(有很多坑,不建議使用)

Anko其實是一種DSL(領域相關語言)爬早,是專門用代碼方式來寫界面和布局的哼丈。
我們可以看看Anko在Github上的代碼示例,用6行代碼就做出了一個有輸入框凸椿、按鈕削祈、點擊事件和Toast的界面和功能

image.png

我們自己寫一下這6行代碼,首先需要在gradle中添加引用,主要是sdk和v4/v7包
image.png

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末髓抑,一起剝皮案震驚了整個濱河市咙崎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吨拍,老刑警劉巖褪猛,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異羹饰,居然都是意外死亡伊滋,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門队秩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來笑旺,“玉大人,你說我怎么就攤上這事馍资⊥仓鳎” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵鸟蟹,是天一觀的道長乌妙。 經(jīng)常有香客問我,道長建钥,這世上最難降的妖魔是什么藤韵? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮熊经,結(jié)果婚禮上泽艘,老公的妹妹穿的比我還像新娘。我一直安慰自己奈搜,他們只是感情好悉盆,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布盯荤。 她就那樣靜靜地躺著馋吗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪秋秤。 梳的紋絲不亂的頭發(fā)上宏粤,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天,我揣著相機與錄音灼卢,去河邊找鬼绍哎。 笑死,一個胖子當著我的面吹牛鞋真,可吹牛的內(nèi)容都是我干的崇堰。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼海诲!你這毒婦竟也來了繁莹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤特幔,失蹤者是張志新(化名)和其女友劉穎咨演,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚯斯,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡薄风,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了拍嵌。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片遭赂。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖横辆,靈堂內(nèi)的尸體忽然破棺而出嵌牺,到底是詐尸還是另有隱情,我是刑警寧澤龄糊,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布逆粹,位于F島的核電站,受9級特大地震影響炫惩,放射性物質(zhì)發(fā)生泄漏僻弹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一他嚷、第九天 我趴在偏房一處隱蔽的房頂上張望蹋绽。 院中可真熱鬧,春花似錦筋蓖、人聲如沸卸耘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蚣抗。三九已至,卻和暖如春瓮下,著一層夾襖步出監(jiān)牢的瞬間翰铡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工讽坏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留锭魔,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓路呜,卻偏偏與公主長得像迷捧,于是被迫代替她去往敵國和親织咧。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

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