記錄一些android的基礎知識

2021-07-27 21:52:14 字數 1623 閱讀 8308

本地service是執行在主線程的,本地service不能執行耗時操作;remote service不在同一程序中,需要編寫aidl進行ipc通訊。

普通廣播,有序廣播,本地廣播,sticky廣播

volitile synchronized

synchronized 可以保證原子性

volatile只能保證可見性

如:n=n+1,這種volatile就無法保護。

onevent:如果使用onevent作為訂閱函式,那麼該事件在哪個執行緒發布出來的,onevent就會在這個執行緒中執行,也就是說發布事件和接收事件執行緒在同乙個執行緒。使用這個方法時,在onevent方法中不能執行耗時操作,如果執行耗時操作容易導致事件分發延遲。

oneventmainthread:如果使用oneventmainthread作為訂閱函式,那麼不論事件是在哪個執行緒中發布出來的,oneventmainthread都會在ui執行緒中執行,接收事件就會在ui執行緒中執行,這個在android中是非常有用的,因為在android中只能在ui執行緒中跟新ui,所以在onevnetmainthread方法中是不能執行耗時操作的。

oneventbackground:如果使用oneventbackgrond作為訂閱函式,那麼如果事件是在ui執行緒中發布出來的,那麼oneventbackground就會在子執行緒中執行,如果事件本來就是子執行緒中發布出來的,那麼oneventbackground函式直接在該子執行緒中執行。

oneventasync:使用這個函式作為訂閱函式,那麼無論事件在哪個執行緒發布,都會建立新的子執行緒在執行oneventasync.

更強的生命週期管理,更多的快取策略配置,更強的記憶體優化,可以直接嵌入okhttp。

理解engine.理解lrucache快取。

(1)、自定義view的屬性

(2)、在view的構造方法中獲得我們自定義的屬性

[ 3、重寫onmesure ]

(4)、重寫ondraw

把3用標出了,所以說3不一定是必須的,當然了大部分情況下還是需要重寫的。

viewgroup必須複寫onlayout,具體的layout已經實現onlayout不用複寫。

performmeasure->performlayout->performdraw

理解decorview,viewgroup和su***ceflinger的互動。

理解inputmanagerservice

理解onintercepttouchevent與ontouchevent的呼叫過程

理解motionevent和gestureevent

復用convertview

使用viewholder

item中有時,非同步載入

快速滑動時,不載入

item中有時,應對進行適當壓縮

分批和分頁載入

錯位用settag,gettag來判斷。

singletop,singletask比較好說。

有三個activity:a、b、c。

a的launchmode為singleinstance,

b、c為預設的standard,

第一次a–b–c–a跳完之後,為什麼從a進入了c並且是之前的例項c,而不是想象中的新建立乙個activity b的例項 ?

一些flash memory SSD的基礎知識

很久沒更新blog了。前一陣子經歷了人生第一次跳槽,比想象中的艱難多了。畢竟是第乙份工作,離開還是挺傷感的。新的工作剛剛開始,希望一切順利。這篇blog是五一期間寫的,今天正式貼出來。寫技術blog是個好習慣,我要保持!在前東家的時候,一直很想去嘗試一下flash ssd,可惜由於各種原因到今天也沒...

一些flash memory SSD的基礎知識

很久沒更新blog了。前一陣子經歷了人生第一次跳槽,比想象中的艱難多了。畢竟是第乙份工作,離開還是挺傷感的。新的工作剛剛開始,希望一切順利。這篇blog是五一期間寫的,今天正式貼出來。寫技術blog是個好習慣,我要保持!在前東家的時候,一直很想去嘗試一下flash ssd,可惜由於各種原因到今天也沒...

一些flash memory SSD的基礎知識

很久沒更新blog了。前一陣子經歷了人生第一次跳槽,比想象中的艱難多了。畢竟是第乙份工作,離開還是挺傷感的。新的工作剛剛開始,希望一切順利。這篇blog是五一期間寫的,今天正式貼出來。寫技術blog是個好習慣,我要保持!在前東家的時候,一直很想去嘗試一下flash ssd,可惜由於各種原因到今天也沒...