[發明專利]一種檢測Android應用Service構件泄露的高效方法有效
| 申請號: | 201710790636.4 | 申請日: | 2017-09-05 |
| 公開(公告)號: | CN107590013B | 公開(公告)日: | 2020-12-04 |
| 發明(設計)人: | 馬駿;陶先平;呂建 | 申請(專利權)人: | 南京大學 |
| 主分類號: | G06F11/07 | 分類號: | G06F11/07;G06F11/36 |
| 代理公司: | 南京知識律師事務所 32207 | 代理人: | 張蘇沛 |
| 地址: | 210046 江蘇*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 檢測 android 應用 service 構件 泄露 高效 方法 | ||
本發明提供了快速檢測安卓應用潛在的Service構件泄露的方法。其特征在于,包括以下步驟:步驟1、重復嘗試“啟動(start)并停止(stop)”以及“綁定(bind)并解綁(unbind)”應用在其AndroidManifest.xml文件中所聲明的各個service;步驟2、獲取應用堆棧內存;步驟3、分析應用堆棧內存,鑒別泄露的Service構件。本發明的能準確的檢測安卓應用潛在的Service構件泄露風險,具有全自動、效率高、可重現等特征。
技術領域
本發明專利涉及安卓軟件應用,內存泄露檢測領域,尤其涉及一種檢測安卓應用Service構件泄露的高效方法。
背景技術
近年來,隨著移動設備的普及,基于移動設備的安卓應用數量不斷增加。然而,由于安卓復雜的生命周期管理機制,開發安卓應用極容易引入泄露Service構件的可能性。這些潛在的應用構件的泄露,會不斷消耗系統內存等資源,導致應用卡頓甚至崩潰,極大的影響用戶體驗和商家品牌形象。為此,如何自動化高效的檢測應用潛在的Service構件的泄露,有著極大的意義。然而,現有檢測安卓應用Service泄露的工作要么需要大量的人工介入,要么難以重現泄露場景。為此,本發明旨在為安卓應用潛在的Service構件的泄露現象的自動化檢測提供一個快速檢測方案。
發明內容
本發明主要針對現有工作的不足,提出了一種檢測Android應用Service構件泄露的高效方法。
該方法基于以下現實:安卓應用往往包含一系列的Service,這些Service中部分僅僅供應用內部使用(“android:exported=false”),還有一部分可供本應用之外的其他應用的各種構件所使用(“android:exported=true”);對于“android:exported=true”的Service,其他應用的構件可以通過startService()或bindService()兩個API來訪問該應用;通常情況下,兩種方式都會創建Service實例;當不需要使用該服務的時候,應用構件可以通過stopService()或unbindService()兩個方法來停止服務或解除對服務的綁定。當一個Service實例被停止并且沒有其他構件綁定該服務的時候,系統則會自動銷毀該Service實例;安卓系統為了管理應用的Service實例,在應用對應的ActivityThread實例中提供了專門用于記錄處于運行態的服務的域mServices;當一個Service實例被創建,則會在mServices域中添加對該實例的間接引用,當一個Service實例被銷毀,mServices域也會自動刪除相應的引用關系。通過對mServices域值的比較,可以判斷Service實例是否已被銷毀;不能被GC回收的Service實例,一定存在通往GC root的不包含SoftReference、WeakReference、PhantomReference、FinalizerReference以及Finalizer類型對象的路徑。
為了實現上述發明目的,本發明采用的技術方案為:
一種安卓應用Service構件泄露的高效檢測方法,其特征在于,分為主程序(Master)與客戶端檢測應用(APKchecker)兩部分。主程序(Master)運行在PC端,客戶端檢測應用(APKchecker)運行在測試安卓設備(安卓實體機或虛擬機)上。其主要步驟包括:
步驟一、主程序(Master)借助Android-Debug-Bridge(ADB)安裝待檢測應用APKtarget;
步驟二、主程序(Master)借助Android-Debug-Bridge(ADB)安裝客戶端檢測應用(APKchecker);
步驟三、主程序(Master)以“Start模式”啟動客戶端檢測應用(APKchecker);
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京大學,未經南京大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710790636.4/2.html,轉載請聲明來源鉆瓜專利網。





