[發明專利]進程間通信方法和裝置在審
| 申請號: | 202011381217.3 | 申請日: | 2020-11-30 |
| 公開(公告)號: | CN114579325A | 公開(公告)日: | 2022-06-03 |
| 發明(設計)人: | 孫文涌;韓風;程飛飛 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 北京同立鈞成知識產權代理有限公司 11205 | 代理人: | 孫靜;劉芳 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 進程 通信 方法 裝置 | ||
本申請實施例提供一種進程間通信方法和裝置,當第一系統服務的訪問引用存儲在應用程序進程的內存時,應用程序從應用程序進程的內存中讀取第一系統服務的訪問引用,當第一系統服務的訪問引用沒有存儲在應用程序進程的內存時,應用程序從服務管理器處獲取第一系統服務的訪問引用,并將第一系統服務的訪問引用存儲在應用程序進程的內存中。應用程序在初次訪問系統服務的訪問引用時,將系統服務的訪問引用存儲到應用程序進程的內存中,后續再次訪問該系統服務的訪問引用是,直接從內存中獲取系統服務的訪問引用,不需要通過Binder通信向服務管理器請求,從而減少了Binder通信的數量,提升了系統性能。
技術領域
本申請涉及通信技術領域,尤其涉及一種進程間通信方法和裝置。
背景技術
安卓系統(Android)是智能手機等電子設備常用的操作系統,安卓系統中兩個進程之間通過Binder通信,所以Binder也稱為一種跨進程通信(Inter-ProcessCommunication,IPC)機制。系統中Binder通信個數和Binder通信耗時對系統性能影響很大。
Binder通信主要包括三個流程:服務注冊、獲取服務和使用服務,服務注冊是指系統中的各個系統服務向服務管理器(server manager)注冊,注冊完成后服務管理器保存有系統服務的信息,在獲取服務階段,客戶端(或者稱為應用)向服務管理器請求要訪問的系統服務的訪問引用,服務管理器將系統服務返回給客戶端,客戶端根據獲取到的系統服務訪問引用訪問系統服務。其中,在獲取服務階段,客戶端和服務管理器需要進行Binder通信,客戶端向位于內核中的Binder驅動請求系統服務訪問引用,Binder驅動接收到請求之后向服務管理器發送該請求,服務管理器根據請求向Binder返回客戶端所請求的系統服務的訪問引用,Binder驅動將系統服務的訪問引用返回給客戶端,該過程需要四個步驟。相關技術,對獲取服務進行了優化,客戶端在初次獲取某個系統服務的訪問引用時,Binder驅動將客戶端所請求的系統服務的訪問引用內存到內核中,Binder驅動位于內核,Binder驅動為每個客戶端獨立維護系統服務的訪問引用,當該客戶端再次請求該系統服務訪問引用時,Binder驅動從內核中查詢到系統服務的訪問引用返回給客戶端,而不需要向服務管理器請求系統服務訪問引用,節省了兩個步驟。
但是,當系統中運行的進程較多時,Binder通信占用的資源仍然較高,對系統性能影響較大,不能滿足用戶需求。
發明內容
本申請實施例提供一種進程間通信方法和裝置,能夠減少Binder通信的數量,提升系統性能。
第一方面,本申請提供一種進程間通信方法,該方法包括:應用程序判斷第一系統服務的訪問引用是否存儲在所述應用程序進程的內存中;當所述第一系統服務的訪問引用存儲在所述應用程序進程的內存時,使用所述第一系統服務的訪問引用訪問所述第一系統服務;當所述第一系統服務的訪問引用沒有存儲在所述應用程序進程的內存時,所述應用程序根據所述第一系統服務的標識通過Binder通信從服務管理器處獲取所述第一系統服務的訪問引用,使用所述第一系統服務的訪問引用訪問所述第一系統服務,并將所述第一系統服務的訪問引用存儲在所述應用程序進程的內存中。
在本申請的方法中,當應用程序第一次訪問第一系統服務時,應用程序進程的內存中沒有存儲第一系統服務的訪問引用,應用程序可以通過Binder通信從服務管理器處請求第一系統服務的訪問引用,并將請求到的第一系統服務的訪問引用存儲到應用程序進程的內存中,后續,當該應用程序再次訪問該第一系統服務時,則應用程序可以從應用程序進程的內存中獲取到該第一系統服務的訪問引用,不需要通過Binder通信向內核或者服務管理器請求第一系統服務的訪問引用,從而減少了系統中的Binder通信次數。
在第一種可能的實現方式中,所述將所述第一系統服務的訪問引用存儲在所述應用程序進程的內存之后,還包括:當所述應用程序進程的內存中存儲的系統服務的訪問引用的數量達到預設數量時,所述應用程序從所述應用程序進程的內存中刪除一個或者多個系統服務的訪問引用。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011381217.3/2.html,轉載請聲明來源鉆瓜專利網。





