筆者因爲在近期須要找工做,因此近期最主要的任務就是準備面試,不打無準備之仗。只有你準備充分了,那麼你想獲得的機會纔可能有機會入你懷中。android
筆者會將準備面試的學習過程記錄下來,方便本身覆盤的同時也但願能給一道找工做的小夥伴們一些幫助。筆者準備的內容大綱以下面試
那麼開始上正菜QAQ緩存
參考:Android開發藝術探索 P496多線程
延伸:框架
準確的說是ANR機制,它能夠分爲兩部分:ide
ANR的通常類型函數
1. KeyDispatchTimeout(常見): input事件在5S內沒有處理完成發生了ANR。post
2. BroadcastTimeout : 前臺Broadcast:onReceiver在10S內沒有處理完成發生ANR。 後臺Broadcast:onReceiver在60s內沒有處理完成發生ANR。學習
3. ServiceTimeout : 前臺Service:onCreate,onStart,onBind等生命週期在20s內沒有處理完成發生ANR。 後臺Service:onCreate,onStart,onBind等生命週期在200s內沒有處理完成發生ANR優化
4. ContentProviderTimeout : ContentProvider 在10S內沒有處理完成發生ANR
onStart和onStop、onPause和onResume這兩對看起來差很少,有什麼區別呢?
最明顯的區別在於onStart和onStop這一對是從Activity是否可見這個角度來回調的,onResume和onPause是從Activity是否位於前臺這個角度來回調的。
onPause能不能執行耗時的操做?
不能夠,耗時的操做應該儘可能放在onStop中去作,這樣可讓新的Activity儘快顯示出來並切換到前臺。
注意:棧頂的Activity須要先onPause後(消失於前臺),新的Activity才能啓動。
系統配置發生改變後,好比橫豎屏切換,它的onPause、onStop、onDestroy都會被調用,同時Activity是在異常狀況下終止的,系統就會在onStop方法以前調用onSaveInstanceState來保存當前Activity的狀態。 在屏幕方向切換回來的時候,會依次調用onCreate、onStart、onResume方法,並能夠在onRestoreInstanceState和onCrate中取出以前保存的數據並恢復。
注意: onSaveInstanceState只會在Activity被異常終止的狀況下調用。
這個我知道的不是很全,Android5.0有一個MaterialDesign的設計風格。Android6.0的動態權限管理。Android7.0的分屏多任務,Android8.0的畫中畫。
Android5.0新特性
Android6.0新特性
Android7.0新特性
Android8.0新特性