Android AOSP基礎(四)Source Insight和Android Studio導入系統源碼_劉望舒的專欄-CSDN博客
ioctl()函數詳解_運維_shanshanpt的專欄-CSDN博客
Android 多CPU架構支持所需要了解的知識 - 寒江蓑笠的專欄 - CSDN博客
好文章
【凱子哥帶你學Framework】Activity啟動過程全解析 - 趙凱強 - CSDN博客
為什么主線程不會因為Looper.loop()里的死循環卡死或者不能處理其他事務
為什么不會卡死
handler機制是使用pipe來實現的,主線程沒有消息處理時會阻塞在管道的讀端。
binder線程會往主線程消息隊列里添加消息,然后往管道寫端寫一個字節,這樣就能喚醒主線程從管道讀端返回,也就是說queue.next()會調用返回。
主線程大多數時候都是處于休眠狀態,并不會消耗大量CPU資源。
既然是死循環又如何去處理其他事務呢?
答案是通過創建新線程的方式。
我們看到main方法里調用了thread.attach(false),這里便會創建一個Binder線程(具體是指ApplicationThread,Binder的服務端,用于接收系統服務AMS發送來的事件),該Binder線程通過Handler將Message發送給主線程。
ActivityThread對應的Handler是一個內部類H,里邊包含了啟動Activity、處理Activity生命周期等方法。
Binder
https://mp.weixin.qq.com/s/NBm5lh8_ZLfodOXT8Ph5iA??寫給 Android 應用工程師的 Binder 原理剖析
耗時兩年,Android多進程從頭講到尾(萬字總結,建議收藏) - 簡書? AIDL 有Demo
從getSystemService()開始,開擼Binder通訊機制 - 簡書
寫給 Android 應用工程師的 Binder 原理剖析
原創?張磊?BaronTalk?2018-04-10
https://mp.weixin.qq.com/s/NBm5lh8_ZLfodOXT8Ph5iA
binder 原理解析?真的不錯
Android APK打包安裝、應用進程啟動過程、Activity啟動流程 - csdn_aiyang的博客 - CSDN博客
Android Window、Activity、DecorView以及ViewRoot
Window、Activity、DecorView以及ViewRoot之間的關系
View相關
從setContentView揭開DecorView - 四月葡萄的博客 - CSDN博客
ViewRootImpl介紹 - 四月葡萄的博客 - CSDN博客
自定義View原理篇(1)-Measure過程 - 四月葡萄的博客 - CSDN博客
自定義View原理篇(2)- layout過程 - 四月葡萄的博客 - CSDN博客
自定義View原理篇(3)- draw過程 - 四月葡萄的博客 - CSDN博客
自定義View實踐篇(1)- 自定義單一View - 四月葡萄的博客 - CSDN博客
自定義View實踐篇(2)- 自定義ViewGroup - 四月葡萄的博客 - CSDN博客