• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種應用程序的保活方法和裝置制造方法及圖紙

    技術編號:15746415 閱讀:335 留言:0更新日期:2017-07-03 01:41
    本申請提供了一種應用程序的保活方法和裝置,通過第一服務注冊與第二服務的依賴關系,在第二服務被殺死時,第一服務對應的第一應用程序發起綁定所述第二服務的請求,服務管理器在判斷出不存在第二服務時,重新創建第二服務,并重新創建容納第二服務的第二應用程序,從而實現了對第二程序的保活。本申請采用的方案,不需要主動交互來實現保活,而僅僅是在該第二程序被殺死時才進行操作,降低了計算資源和電量的浪費。并且,在第二程序被殺死時,可以重新創建第二程序,實現對被保活的第二程序的挽救。

    Method and device for keeping alive of application program

    Keep alive method and device of the invention provides a application program, through the dependence of the first service registration and service second, were killed in the second service, the first service corresponding to the first application by binding the second service request, service manager out there are second services in judgment, to create second service, and re created to accommodate second service second applications, so as to achieve the second program alive. The scheme adopted in this application does not require active interaction to achieve live protection, but only when the second program is killed, it reduces the waste of computing resources and power consumption. And, when the second program is killed, you can recreate the second program to save the second program that is alive.

    【技術實現步驟摘要】
    一種應用程序的保活方法和裝置
    本申請涉及終端
    ,尤其涉及一種應用程序的保活方法和裝置。
    技術介紹
    由于系統運行時資源的限制,因此應用程序無法保持較長時間存活、無法實現一些時效性要求很高的功能。應用程序保活對于一些需要強實時消息推送、發警告通知、運營信息更新等場景乃至提升人機交互的連續性、流暢性等都有重大價值。現有的技術大多數的方案通過應用程序之間主動交互來實現保活,若交互達不到預期效果或拋出了異常,便認為對端程序已經消亡。這種主動交互既浪費計算資源(繼而消耗電量)又需要用心控制交互的頻率來實現保活。并且,采用這種主動交互的方法,并不能對對端程序的消亡做任何挽救,對于應用程序之間的相互支撐仍然存在一定的不足。
    技術實現思路
    本申請實施例提出了一種應用程序的保活方法和裝置,用以實現對被保活程序的挽救。在一個方面,本申請實施例提供了一種應用程序的保活方法,包括:第一應用程序發起綁定第二應用程序的第二服務的請求;在服務管理器判斷出存在第二服務時,所述第二應用程序向所述第一應用程序返回所述第二服務的代理對象;所述第一應用程序的第一服務通過所述代理對象注冊與所述第二服務的依賴關系;在所述第二服務被殺死時,所述服務管理器根據所述依賴關系通知所述第一服務;第一應用程序在獲知所述第二服務被殺死后,發起綁定所述第二服務的請求;所述服務管理器在判斷出不存在第二服務時,重新創建第二服務,并重新創建容納第二服務的第二應用程序。在另一個方面,本申請實施例提供了一種應用程序的保活裝置,包括:第一應用程序、第二應用程序以及服務管理器,所述第一應用程序包括第一服務,所述第二應用程序包括第二服務,其中:所述第一應用程序發起綁定所述第二服務的請求;所述第二應用程序向所述第一應用程序返回所述第二服務的代理對象;所述第一應用程序的第一服務通過所述代理對象注冊與所述第二服務的依賴關系;在所述第二服務被殺死時,所述服務管理器根據所述依賴關系通知所述第一服務;第一應用程序在獲知所述第二服務被殺死后,發起綁定所述第二服務的請求;服務管理器在判斷出不存在第二服務時,重新創建第二服務,并重新創建容納第二服務的第二應用程序。有益效果如下:在本專利技術實施例中,通過第一服務注冊與第二服務的依賴關系,在第二服務被殺死時,第一服務對應的第一應用程序發起綁定所述第二服務的請求,服務管理器在判斷出不存在第二服務時,重新創建第二服務,并重新創建容納第二服務的第二應用程序,從而實現了對第二程序的保活。本專利技術實施例采用的方案,不需要主動交互來實現保活,而僅僅是在該第二程序被殺死時才進行操作,降低了計算資源和電量的浪費。并且,在第二程序被殺死時,可以重新創建第二程序,實現對被保活的第二程序的挽救。附圖說明下面將參照附圖描述本申請的具體實施例,其中:圖1示出了安卓系統的Binder機制組件結構示意圖;圖2示出了本申請實施例中應用程序的保活方法的流程示意圖;圖3示出了本申請實施例一中應用程序的保活方法的流程示意圖;圖4示出了本申請實施例中應用程序的保活裝置的結構示意圖。具體實施方式為了使本申請的技術方案及優點更加清楚明白,以下結合附圖對本申請的示例性實施例進行進一步詳細的說明,顯然,所描述的實施例僅是本申請的一部分實施例,而不是所有實施例的窮舉。并且在不沖突的情況下,本說明書中的實施例及實施例中的特征可以互相結合。專利技術人在專利技術過程中注意到:為了跟蹤Server(服務方)對象是存活著還是已經消亡,Android(安卓)SDK(SoftwareDevelopmentKit,軟件開發工具包)提供了androidos出inder.DeathRecipient類來監聽Server對象消亡的事件。基于此,專利技術人想到一種利用Binder(綁定者)機制來進行安卓應用程序保活的方法和裝置,下面進行詳細說明。為了實現系統自帶的服務和上層應用能夠跨越進程邊界與其他應用交互而設計了Binder這一IPC(Inter-ProcessCommunication,進程間通信)機制。安卓系統的Binder機制由一系列組件組成,分別是客戶方(Client)、服務方、服務管理器(ServiceManager)和Binder驅動程序,其中客戶方、服務方和服務管理器運行在用戶空間,Binder驅動程序運行在內核空間。Binder就是一種把這四個組件粘合在一起的粘結劑了,其中,核心是Binder驅動程序,其在內核空間實現讓不同用戶空間進程之間通信的功能,服務管理器提供了服務管理的功能,客戶方和服務方正是在Binder驅動程序和服務管理器提供的基礎設施上進行雙向通信的實體。構成Binder通信的四個組件之間的關系如圖1所示。客戶方、服務方和服務管理器實現在用戶空間中,Binder驅動程序實現在內核空間中。Binder驅動程序和服務管理器在Android平臺中已經提供,開發者只需要在用戶空間實現自己的客戶方和服務方。Binder驅動程序提供設備文件/dev/binder與用戶空間交互,客戶方、服務方和服務管理器通過open和ioctl文件操作函數與Binder驅動程序進行通信。客戶方和服務方之間的進程間通信通過Binder驅動程序間接實現。服務管理器是一個守護進程,用來管理服務方,并向客戶方提供查詢服務方接口的能力。在應用開發層(Java層),安卓SDK提供了aidl這種接口定義語言來定義客戶方和服務方之間的接口,之后客戶方和服務方便可以遵照aidl接口的約定進行跨進程通信(對進程透明)。為了跟蹤服務方對象是存活著還是已經消亡,AndroidSDK提供了android.os.Binder.DeathRecipient類來監聽服務方對象消亡的事件。圖2示出了本申請實施例中的安卓應用程序的保活方法,如圖所示,包括:步驟201,APP1(第一應用程序)發起綁定APP2(第二應用程序)的Service2(第二服務)的請求;具體操作為App1通過bindService2綁定到Service2。Service2為App2中的一個應用組件,Service2可以獨立于UI(UserInterface,用戶界面)在后臺運行。步驟202,服務管理器判斷是否存在Service2,若是,進行步驟203,否則,進行步驟207;步驟203,APP2向APP1返回Service2的代理對象;該代理對象與Service2的接口保持一致,被App1持有引用。步驟204,APP1的Service1通過該代理對象注冊與Servicer2的依賴關系;Service1為App1中的一個應用組件,Service1可以獨立于UI在后臺運行。本步驟即Service1以自己(實現了IBinder.DeathRecipient接口)為入參調用Service2的方法linkToDeath()(繼承至IBinder接口),從而,在Service2對象消亡的時候,Service1實現的IBinder.DeathRecipient.binderDied()會被調用(由Binder機制支持)。步驟205,服務管理器在Service2被殺死時,根據該依賴關系通知Service1;由于運行時資源限制,此時內存資源不夠用,安卓系統需要殺死App2,在App2被殺本文檔來自技高網...
    一種應用程序的保活方法和裝置

    【技術保護點】
    一種應用程序的保活方法,其特征在于,包括:第一應用程序發起綁定第二應用程序的第二服務的請求;在服務管理器判斷出存在第二服務時,所述第二應用程序向所述第一應用程序返回所述第二服務的代理對象;所述第一應用程序的第一服務通過所述代理對象注冊與所述第二服務的依賴關系;在所述第二服務被殺死時,所述服務管理器根據所述依賴關系通知所述第一服務;第一應用程序在獲知所述第二服務被殺死后,發起綁定所述第二服務的請求;所述服務管理器在判斷出不存在第二服務時,重新創建第二服務,并重新創建容納第二服務的第二應用程序。

    【技術特征摘要】
    1.一種應用程序的保活方法,其特征在于,包括:第一應用程序發起綁定第二應用程序的第二服務的請求;在服務管理器判斷出存在第二服務時,所述第二應用程序向所述第一應用程序返回所述第二服務的代理對象;所述第一應用程序的第一服務通過所述代理對象注冊與所述第二服務的依賴關系;在所述第二服務被殺死時,所述服務管理器根據所述依賴關系通知所述第一服務;第一應用程序在獲知所述第二服務被殺死后,發起綁定所述第二服務的請求;所述服務管理器在判斷出不存在第二服務時,重新創建第二服務,并重新創建容納第二服務的第二應用程序。2.如權利要求1所述的方法,其特征在于,所述第一應用程序的第一服務通過所述代理對象注冊與所述第二服務的依賴關系具體包括:所述第一應用程序的第一服務通過所述代理對象以所述第一服務為入參調用所述第二服務的方法linkToDeath()。3.如權利要求1所述的方法,其特征在于,根據所述依賴關系通知所述第一服務具體包括:調用Service1.binderDied()方法。4.如權利要求1所述的方法,其特征在于,第一應用程序在獲知第二服務被殺死具體為:通過binderDied()回調收到了Service2被殺死的消息。5.如權利要求1所述的方法,其特征在于,所述第一應用程序在獲知所述第二服務被殺死后,發起綁定所述第二服務的請求時,指明自動創建模式;根據該自動創建模式,服務管理器在判斷出不存在第二服務時,自動重新創建第二服務,并重新創建容納第二服務的第二應用程序。6.如權利要求1所述的方法,其特征在于,還包括:第二應用程序發起綁定所述第一服務的請求;所述第一應用程序向所述第二應用程序返回所述第一服務的代理對象;在所述服務管理器判斷出存在第一服務時,所述第二服務通過所述代理對象注冊與所述第一服務的依賴關系;在所述第一服務被殺死時,所述服務管理器根據所述依賴關系通知所述第二服務;第二應用程序在獲知所述第一服務被殺死后,發起綁定所述第一服務的請求;所述服務管理器在判斷出不存在第一服務時,重新創建第一服務,并重新創建容納第一服務的第一應用程序。7.如權利要求6所述的方法,其特征在于,所述第二應用程...

    【專利技術屬性】
    技術研發人員:王飛
    申請(專利權)人:阿里巴巴集團控股有限公司
    類型:發明
    國別省市:開曼群島,KY

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 亚洲av永久无码精品古装片 | 无码人妻啪啪一区二区| 精品久久久无码中文字幕| 深夜a级毛片免费无码| 国产V亚洲V天堂无码久久久| 无码一区二区三区免费| 无码视频免费一区二三区| 亚洲日韩精品A∨片无码| 中文字幕av无码无卡免费| 欧洲精品无码一区二区三区在线播放| 少妇无码AV无码专区在线观看| 小12箩利洗澡无码视频网站| 亚洲国产成人精品无码区在线观看 | 免费看无码自慰一区二区| 亚洲综合无码AV一区二区| 少妇人妻偷人精品无码AV| 亚洲AV人无码激艳猛片| 亚洲?v无码国产在丝袜线观看| 精品人无码一区二区三区| 亚洲精品无码av人在线观看| 伊人久久大香线蕉无码麻豆| 天堂Av无码Av一区二区三区| 西西午夜无码大胆啪啪国模| 亚洲无码在线播放| 日韩精品无码免费专区网站| 精品无人区无码乱码毛片国产 | 精品国精品无码自拍自在线| 国产aⅴ无码专区亚洲av| 狠狠躁天天躁无码中文字幕图| (无码视频)在线观看| 九九无码人妻一区二区三区| 一本大道无码av天堂| 人妻少妇看A偷人无码电影| 毛片免费全部播放无码| 人妻无码中文久久久久专区| 免费A级毛片无码视频| 久久久久久无码Av成人影院| 精品无码国产一区二区三区AV| 国产精品va无码一区二区| 亚洲av无码成人黄网站在线观看| 久久午夜夜伦鲁鲁片免费无码|