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