1 activity是頁面展示的基本單元 一個activity包含一個PhoneWindow來承載布局 而PhoneWindow里面是一個decorView根部局 界面的繪制在這個布局上面 ?而view的繪制是通過三部完成的 首先布局 測量 然后繪制 而activity的入口是在activityThread里面 他包含了如同java一樣的main方法底層的一些服務比如窗口管理 服務管理等都是通過map來完成一個單利模式青伤。通過key的取值來判斷是否有則個實例饵婆。activity的啟動方式有4中 默認的用的是最多的 不管怎么樣都開辟一個實例 一個是singleTask 棧頂有這個activity實例就不會重新創(chuàng)建 有的花會把這個實例前面的所有實例從棧中移除斗幼。singleInstance 是開一個新棧來存放這個唯一的activity實例 查近。一般是用于打開網(wǎng)頁的頁面 SingleTop是會一直在棧頂,也可以寫個activity工具類把這邪惡activity來管理起來
2 Broadcast廣播是分為兩個方面的:廣播發(fā)送者和廣播接收者 android中的廣播使用了觀察者模式,基于消息的發(fā)布/訂閱事件模型,使得系統(tǒng)更加方便集成和更容易拓展.廣播分為靜態(tài)和動態(tài)注冊,區(qū)別在與靜態(tài)是根據(jù)對應的這個activity創(chuàng)建才去注冊 首先廣播是通過binder機制向AMS進行注冊;然后通過binder機制向AMS發(fā)送廣播授翻;AMS查找符合相應條件的廣播接收者,然后發(fā)送到相應的消息循環(huán)隊列里面 然后消息循環(huán)執(zhí)行拿到次廣播 回調(diào)廣播的onReceive方法.
3 Service 服務的啟動有兩種 一種是startService方法 ?要actvity結束掉以后該service一直會在后臺運行 調(diào)用stopSelf或者stopService 或者系統(tǒng)資源不足漾狼。一種是bindService綁定當前服務需要解綁才能停止服務
4 ContentProvider 在不同的應用程序之間共享數(shù)據(jù) 比如內(nèi)置的許多數(shù)據(jù)都是使用ContentProvider形式給開發(fā)者調(diào)用的(讀取本地的視頻和音頻和圖片等等)
2 事件分發(fā)機制 按下屏幕的事件層層向里層傳遞肠阱。ViewGroup有三個事件 第一個是事件分發(fā) 一個是事件攔截
一個是觸屏事件。view的話就沒有事件攔截事件, onTounchEvent返回true代表事件消費 默認是false