天天看點

四大元件之——server(服務)及Aidl(接口定義語言)

四大元件之——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開發接口. 天氣應用:墨迹天氣 支付寶暴漏支付接口 ,鬥地主買豆.

繼續閱讀