Android 常用知識點整理(含其他博主鏈接)

1、service的啓動方式,綁定方式,有何不同

兩種啓動方式,startService和bindService,startServie會一直運行,除非調用stopService或stopself

兩種綁定方式,對應兩種啓動方式

A、代碼配置,繼承service,重寫方法

B、manifest配置,繼承service,重寫方法

知識從https://www.jianshu.com/p/4c798c91a613獲取

 

2、service的生命週期,啓動順序

create、startCommand、bind、unbind、rebind、destroy

詳情見https://www.jianshu.com/p/cc25fbb5c0b3

 

3、廣播的生命週期,啓動順序,啓動方式,有何不同

這裏的啓動方式指註冊方式

A、動態註冊,即在代碼中註冊

B、靜態註冊,manifest註冊

區別:動態註冊比較方便更改和動態生成,但是activity退出即關閉,且消耗很大內存,所以一定記得註銷

靜態註冊比較牢固,不管activity怎麼樣都是存在的,個人理解更多的是和application綁定,可以理解爲啓動程序就啓動了廣播

詳情見https://blog.csdn.net/mahaiming1990/article/details/51282279

生命週期分兩種

服務的生命週期,見第二點

broadcastReceiver

onReceived

詳情見https://www.csdn.net/gather_24/MtTakg3sNzk1OC1ibG9n.htmlhttps://www.cnblogs.com/wellsoho/p/4899893.html

 

4、自定義view需要重寫的方法,每個方法的作用

構造函數、measure(測量View寬高)、layout(計算View的位置)、draw(視圖的繪製)

詳情見https://www.jianshu.com/p/705a6cb6bfee

 

5、AIDL相關知識

個人理解爲跨進程通信?工作中不常用,確實不太清楚

詳情見https://www.jianshu.com/p/5043a1a69269

 

6、事件分發機制

詳情見https://blog.csdn.net/WalterZhoukick/article/details/82682221(自己寫的文章,自己都能忘)

 

7、如何進行進程守護

和第5點、第1、2點連起來理解,通過service來跨進程保活,理論上雙進程可以做到無限守護

詳情見https://www.jianshu.com/p/83ea5e03bd61?from=timeline&isappinstalled=0

 

8、進程間如何通信,線程間如何通信

進程通信

A、AIDL

B、messenger

C、contentProvider

D、socket

詳情見https://blog.csdn.net/hzw2017/article/details/81275438

線程通信

A、線程鎖

B、Handler

C、runOnUiThread

D、view.post

E、AsyncTask

詳情見https://www.jianshu.com/p/4265698b0577(這裏面沒寫線程鎖,但是線程鎖理論上可以進行簡單的通信,如A、B線程,A線程完成後釋放鎖,其實也就是一種通信方式,如果不懂可以私信,人數多我會專門寫一篇文章)

 

9、線程優先級問題

setPriority(1-10,越大優先級越高)

詳情見https://blog.csdn.net/qingchunweiliang/article/details/84940255

 

10、待更新

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章