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