日常

系統(tǒng)架構(gòu):1.linux內(nèi)核層(為設(shè)備各種硬件提供底層驅(qū)動,如顯示驅(qū)動诗箍,音頻驅(qū)動卷中,藍(lán)牙驅(qū)動等)

? ? ? ? ? ? ? ? ? ?2.系統(tǒng)運行庫層(c/c++,dalvik和art虛擬機也在這層汪拥,Android 5.0系統(tǒng),使?ART運?環(huán)境替代 了Dalvik虛擬機)

? ? ? ? ? ? ? ? ? ? 3.應(yīng)用框架層(framework層抚垃,為應(yīng)用程序提供api)

? ? ? ? ? ? ? ? ? ? 4.應(yīng)用層(程序)

AppCompatActivity是AndroidX中提供的?種向下兼容的Activity喷楣,可以使Activity在不同系統(tǒng)版本中的功能保持?致性趟大。

kotlin的工作原理:執(zhí)行java語言的流程是 先通過java編譯器把.java文件編譯成class文件,然后在通過java虛擬機解釋成計算機能懂的二進制文件铣焊,所以我們只要拿到j(luò)ava虛擬機能讀懂的.class文件逊朽,那么計算機就能懂,所以我們通過kotlin編譯器把kotlin語言編譯成java虛擬機能讀懂的.class文件曲伊,那么kotlin也能被電腦讀懂了;

Kotlin的類型推導(dǎo)機制:不用申明變量的類型叽讳,另外kotlin沒有基本數(shù)據(jù)類型,全部是對象數(shù)據(jù)類型坟募,每個類型都有他的方法和屬性岛蚤;

? ? ? ? var a=1? ?//1是Int類型,把1賦值給了a,那a肯定是Int類型

val 和var的使用規(guī)范懈糯,盡量使用val來申明一個變量涤妒,因為val占用的內(nèi)存更小,并且值不能改變赚哗,會更穩(wěn)定她紫,更健壯

函數(shù):

fun getNum(min:Int,max:Int):Int{

return 5

}

fun largeNum(a:Int,b:Int)=max(a,b) //當(dāng)函數(shù)體只有一行代碼的時候,用=連接

條件表達式:

fun largeNum(a:Int,b:Int)=if(a>b) a else b

when表達式

fun checkNum(num: Number) = when (num) { is Int -> print("是整型") is Double -> print("是double") else -> print("不能識別")}

fun getScore(name : String)=when{ name.equals("jon") ->50 name.startsWith("tom") ->60 else ->70}

fun getInt(num:Int)=when(num){ 1 ->1 2 ->2 else ->-1}

區(qū)間:

val range=1..10 (1到10的閉區(qū)間)

val range1=1 until 10(左閉右開)

for in 循環(huán)

for (i in range step 2){ print(i)}

kotlin單例模式

object SingleTon (使用object修飾類名屿储,就表明這個類是單例類贿讹,全局只能有一個實例)

集合

val list= listOf("a","b","c") //快速初始化,創(chuàng)建不可變集合

val mutableList= mutableListOf("a","b","c") //可變集合

fun map() { val map = mutableMapOf(1 to "小米", 2 to "華為", 3 to "oppo") for ((rank, name) in map) { print("$rank==$name") }}

高階函數(shù)

list.map { it.toLowerCase()}? ?//轉(zhuǎn)換

list.maxBy { it.length }? //最大值

list.any{ it.length<2}? //是否有元素滿足該條件

list.all { it.equals("cc")}? //是否所有元素都滿足該條件

Java函數(shù)式API的使?:如果我們在Kotlin代碼中調(diào)?了?個Java?法够掠,并且該?法接收?個Java單抽象?法接?參數(shù)民褂,就可以使?函數(shù)式API。

public interface OnClickListener { void onClick(View v);} //點擊事件疯潭,是一個java單抽象方法接口

button.setOnClickListener {} //點擊事件赊堪,一種簡潔的語法糖

空安全:

?.操作符袁勺,當(dāng)對象不為空時調(diào)用方法雹食,當(dāng)對象為空時畜普,啥也不做

fun study(stident: Stident?){ stident?.study()}

?:操作符期丰,他的左右兩邊跟兩個表達式,如果左邊為null,則取右邊吃挑,如果左邊不為null,則取左邊

val aaa=list?:""

let函數(shù):下面是let函數(shù)的源碼钝荡,這段源碼表示,1.任何對象都有l(wèi)et函數(shù)舶衬,2.let函數(shù)的參數(shù)是一個函數(shù)埠通,3.參數(shù)函數(shù)接收一個參數(shù),這個參數(shù)是本身4.let函數(shù)有返回值逛犹,返回值是函數(shù)參數(shù)的返回值端辱,let函數(shù)常和?.配置使用梁剔,解決空指針判斷的問題

@kotlin.internal.InlineOnlypublic inline fun <T, R> T.let(block: (T) -> R): R { contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) } return block(this)}

字符串內(nèi)嵌表達式 $變量,或者${表達式}

"hello, $name. nice to meet you!"

函數(shù)的參數(shù)默認(rèn)值舞蔽,可以用來代替寫多少次構(gòu)函數(shù)的寫法,當(dāng)函數(shù)寫了默認(rèn)值荣病,則可以不用傳對應(yīng)的參數(shù)

class Student(val sno: String = "", val grade: Int = 0, name: String = "", age: Int = 0) : Person(name, age) {}

啟動一個新activity的最佳實踐

val intent = Intent(context, SecondActivity::class.java).apply {

putExtra("param1", "data1")

putExtra("param2", "data2")

}

context.startActivity(intent)

repeat函數(shù):重復(fù)執(zhí)行多少次,可以用來代替for循環(huán)渗柿,添加假數(shù)據(jù)

repeat(10){ mutableList.add("aaaa")}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末个盆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子朵栖,更是在濱河造成了極大的恐慌颊亮,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件陨溅,死亡現(xiàn)場離奇詭異终惑,居然都是意外死亡,警方通過查閱死者的電腦和手機门扇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門狠鸳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人悯嗓,你說我怎么就攤上這事件舵。” “怎么了脯厨?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵铅祸,是天一觀的道長。 經(jīng)常有香客問我合武,道長临梗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任稼跳,我火速辦了婚禮盟庞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘汤善。我一直安慰自己什猖,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布红淡。 她就那樣靜靜地躺著不狮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪在旱。 梳的紋絲不亂的頭發(fā)上摇零,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天,我揣著相機與錄音桶蝎,去河邊找鬼驻仅。 笑死谅畅,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的噪服。 我是一名探鬼主播铃彰,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼芯咧!你這毒婦竟也來了牙捉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤敬飒,失蹤者是張志新(化名)和其女友劉穎邪铲,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體无拗,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡带到,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了英染。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片揽惹。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖四康,靈堂內(nèi)的尸體忽然破棺而出搪搏,到底是詐尸還是另有隱情,我是刑警寧澤闪金,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布疯溺,位于F島的核電站,受9級特大地震影響哎垦,放射性物質(zhì)發(fā)生泄漏囱嫩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一漏设、第九天 我趴在偏房一處隱蔽的房頂上張望墨闲。 院中可真熱鬧,春花似錦郑口、人聲如沸鸳碧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杆兵。三九已至,卻和暖如春仔夺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背攒砖。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工缸兔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留日裙,地道東北人。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓惰蜜,卻偏偏與公主長得像昂拂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子抛猖,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,922評論 2 361

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