引言 對(duì)于Android開發(fā)者來(lái)說(shuō),MessageQueue肯定都不陌生,幾乎每次的UI操作,或者各種面試題都有MessageQueue的身影,它一直采用synchroniz...
引言 對(duì)于Android開發(fā)者來(lái)說(shuō),MessageQueue肯定都不陌生,幾乎每次的UI操作,或者各種面試題都有MessageQueue的身影,它一直采用synchroniz...
epoll機(jī)制 一句話解釋:epoll機(jī)制可以監(jiān)聽特定的fd,當(dāng)fd收到內(nèi)容時(shí),發(fā)送事件回調(diào)。相比select和poll機(jī)制,效率更高。 epoll API epoll_cr...
大家都知道,當(dāng)發(fā)生ANR后,App會(huì)彈窗提示”應(yīng)用失去響應(yīng),是否重啟“,然后系統(tǒng)會(huì)dump一份trace文件,存在data/anr目錄下。 普通應(yīng)用如何監(jiān)控ANR的發(fā)生呢? ...
最近在做ANR優(yōu)化,發(fā)現(xiàn)線上非常多的ANR(一半以上)原因都是Input dispatching timed out。對(duì)于Activity或Service生命周期的ANR產(chǎn)生...
前言 雖然Android程序是使用Java語(yǔ)言開發(fā)的,當(dāng)然,現(xiàn)在也可以使用kotlin語(yǔ)言。但是實(shí)際上我們開發(fā)出來(lái)的Android程序并不能運(yùn)行在JVM上,而是只能運(yùn)行在一個(gè)...
前言 我們繼續(xù)來(lái)聊反射,或許對(duì)于Java開發(fā)者來(lái)說(shuō),Class很熟悉,不過(guò)不熟悉也沒(méi)事,我們來(lái)看Kotlin中的反射類:KClass。 至于什么是反射可以查看前面一篇文章: ...
前言 其實(shí)關(guān)于反射這塊內(nèi)容在我們平時(shí)至少作為Android開發(fā)還是用的蠻少的,不過(guò)在閱讀源碼時(shí)或者開發(fā)一些SDK時(shí)就遇到了很多,尤其是看到什么 KProperty 類型類似的...
為什么需要擴(kuò)展 一個(gè)新特性的出現(xiàn)必然是為了解決之前遺留的開發(fā)問(wèn)題和提升目前開發(fā)效率。擴(kuò)展函數(shù)也是如此。 首先來(lái)介紹下OOP:開放封閉原則。 軟件應(yīng)該是可擴(kuò)展,而不可修改的。也...
這是 Stack Overflow 上最熱門的幾個(gè) Kotlin 問(wèn)題,每個(gè)問(wèn)題如果更深入的分析,都可以單獨(dú)寫一篇文章,后面我會(huì)針對(duì)這些問(wèn)題,在進(jìn)一步的分析。 通過(guò)這篇文章你...