Android安全笔记-Service基本概念
個是Android中的一個重要組建:
? ? 1. Scheduled服務(wù):調(diào)度任務(wù)服務(wù)。
? ? ? ? ? ? ·JobScheduler
? ? 2.Started服務(wù):其生命周期和啟動它的組建無關(guān)。
? ? ? ? ? ? ·startService
? ? ? ? ? ? ·onStartCommand
? ? 3.Bound服務(wù):一個組件bind服務(wù),這個服務(wù)提供client-server形式的接口該組件調(diào)用和交互主要用于IPC,其生命周期和綁定的組建有關(guān)系,如果沒有組建綁定則銷毀。
? ? ? ? ? ? ·bindService
? ? ? ? ? ? ·onBind
IntentService
Service通常是運行在應(yīng)用主線空間的,除非特定指明運行在單獨的線程;
IntentService繼承與Service,使用一個工作線程來處理所有的服務(wù)啟動請求。
? ? ·onHandleIntent
onHandleIntent里面有個callBack可以對各個消息進行分別執(zhí)行。
Bound Service
Bound Service是c-s接口的服務(wù)器,允許組件綁定改服務(wù),并發(fā)送請求,接手響應(yīng)以及其他IPC行為。
允許多個組件綁定,當無綁定組件時,服務(wù)銷毀,除非服務(wù)還由startService啟動。
bindService進行綁定,并立即結(jié)束返回。
服務(wù)真正連接時會通過ServiceConnection的onServiceConnected回調(diào)函數(shù)來通知客戶端。
IBinder
創(chuàng)建IBinder
? ? ·繼承Binder類:client和server處于同一進程;
? ? ·使用Messenger:跨進程IPC,并且通過實現(xiàn)請求隊列實現(xiàn)線程安全;
? ? ·使用AIDL:Android接口定義語言,非線程安全文件為.aidl;
AIDL
Android接口定義語言,定義IPC的接口:
? ? ·跨進程通信;
? ? ·需要自己處理多線程的問題;
AIDL接口的定義
? ? ·定義一個AIDL接口;
? ? ·實現(xiàn)接口方法;
? ? ·暴露接口實例到client
Service生命周期
?
| callback method | 觸發(fā)條件 | 說明 |
| onStartCommand | startService | 啟動 |
| onBind | bindService | 返回IBinder接口 |
| onCreate | 創(chuàng)建 | |
| onDestroy | stopSelf stopService | 停止和銷毀 |
Foreground Service
這個這樣的
寫代碼時,調(diào)用startForeground
?
?
總結(jié)
以上是生活随笔為你收集整理的Android安全笔记-Service基本概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Arduino笔记-WeMos D1通过
- 下一篇: Android逆向笔记-某水果大作战内购