四大元件之——server(服務)
1.先了解程序的概念
程序代表不同的應用程式,系統會為每個應用程式建立一個程序和線程(主線程)
2.程序的的分類
①前台程序:foreground process 是使用者正在互動,當廣播接收者的onreceive的方法執行
②可視程序 Visible process 使用者不可以互動 但是可以看得見
③服務程序 Service process 程序裡面運作了一個服務 (音樂播放器)
④背景程序 Background process 使用者看不見 相當于activity執行了onStop方法
⑤空程序 Empty process 不會立刻殺死 目的是為了 下一次打開速度.
3.服務的入門
服務是在背景運作.和windos下服務類似 activity你大爺—>Service.
① startservice特點
1.第一次啟動服務 服務會執行onCreate和onStart方法
② bindservice開啟服務特點
bindservice開啟服務在背景找不到.相當于開啟了一個隐形的服務.更牛一些. 第一次開啟服務會執行onCreate方法和onBind方法.
當activity銷毀的時候 服務也會跟着銷毀. 天龍八部–>喬峰 虛竹 段譽 不求同生 但求同死.
為什麼要引入bindservice:目的就是為了調用服務裡面的方法.
③使用接口方式調用服務裡面的方法
接口好處:接口可以隐藏代碼内部細節,讓程式員暴漏自己想暴漏的方法.
代碼實作步驟
①.定義一個接口 把想暴漏的方法定義在接口裡
②.在擷取中間人對象的方式上發生了變化
遠端服務和本地服務 遠端服務: 運作在其他應用裡面服務 本地服務: 運作在自己應用的服務
4.aidlaidl是什麼 aidl:android interface definition language android接口定義語言aidl
怎麼用
實作步驟
1.直接main目錄下建立一個aidl檔案 點選同步按鈕 讓系統幫助我們生成一個iservice.java檔案
2.在iservice.java檔案裡面系統會自動生成一個stub類
3.把我們定義的中間人對象繼承Stub
4.直接把aidl檔案拷貝到另外一個應用程式 點選同步按鈕 直接也會生成iservice檔案
5.擷取中間人對象的方式不一樣了 iservice =Iservice.Stub.asInterface(service);
關于面試的問題: 你了解ipc麼 如何實作ipc: aidl
應用場景 新浪:微網誌 通過aidl接口對外暴漏資料 api開發接口. 天氣應用:墨迹天氣 支付寶暴漏支付接口 ,鬥地主買豆.