天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

當前位置:主頁 > 科技論文 > 軟件論文 >

Android應用中服務使用缺陷的分析與檢測

發(fā)布時間:2021-10-15 13:50
  服務作為Android應用中經(jīng)常使用的組件,主要負責在后臺執(zhí)行耗時的操作。雖然服務與應用的圖形用戶界面無關,但研究發(fā)現(xiàn)服務的不恰當使用會導致應用性能的降低,例如會導致額外的能源消耗和不必要的資源占用。目前相關研究主要集中在Android應用中圖形用戶界面與能源缺陷的測試方面,并沒有對服務的使用缺陷進行研究。為此,本文主要做了以下四個方面的工作。1.結合服務生命周期和三類服務使用方式,總結出四類服務使用反模式,并基于Android應用的過程間控制流圖,給出四類反模式對應的具體缺陷的靜態(tài)分析方法。2.利用線性時序邏輯給出服務使用四類反模式缺陷的形式化定義,并給出根據(jù)應用運行時產生的動態(tài)信息對相關特性進行運行時驗證的動態(tài)分析方法。3.設計并實現(xiàn)了一個原型工具ServDroid,可以用于自動化檢測Android應用中存在的服務使用模式及其使用存在的缺陷(反模式的具體實例)。該工具主要包括三個模塊:靜態(tài)分析模塊,動態(tài)分析模塊與使用缺陷修復模塊。靜態(tài)分析模塊通過分析應用的代碼和資源,得到服務使用模式,然后結合Android SDK提供的關鍵API進一步分析得出每一種服務使用模式存在的反模式缺陷并且... 

【文章來源】:南京理工大學江蘇省 211工程院校

【文章頁數(shù)】:70 頁

【學位級別】:碩士

【部分圖文】:

Android應用中服務使用缺陷的分析與檢測


啟動服務生命周期

綁定,服務生,周期,組件


2背景碩士學位論文6圖2.3啟動服務生命周期綁定服務:綁定服務的生命周期如圖2.4所示,下面對此進行說明。由于啟動的服務無法與啟動它們的組件交互,因此會存在綁定服務,它可以將數(shù)據(jù)發(fā)送到啟動組件(客戶端)。客戶端組件可以調用Context.bindService()方法來獲取與服務的連接。類似地,如果尚未創(chuàng)建服務實例,則通過回調onCreate()方法來創(chuàng)建服務。對于通過bindService()方法綁定的服務,其生命周期方法onBind()必須重寫并返回IBinder對象,綁定該服務的組件便可以通過IBinder對象與服務進行通信。雖然可以多個客戶端組件綁定到同一服務,但系統(tǒng)只會回調一次onCreate()方法。調用者通過調用Context.unbindService()方法(系統(tǒng)調用onUnbind())終止綁定服務,因為綁定服務的生命周期依賴于調用者,因此,當沒有客戶端組件綁定到服務時,該服務將被銷毀。值得注意地,因為BroadcastReceiver組件的生命周期很短暫,因此Android系統(tǒng)不允許BroadcastReceiver綁定服務;旌戏⻊眨杭缺粏油瑫r也被綁定到客戶端組件上的服務,被稱為啟動和綁定服務,或簡稱為混合服務;旌戏⻊湛梢韵葐尤缓蠼壎ǎ粗嗳。啟動和綁定混合服務的組件可以不同。值得注意的是,當一個服務正在運行的時候,即使多個組件再次啟動或者綁定該服務,但是服務仍不會再次實例化。圖2.4綁定服務生命周期2.1.3Intent與Intent-Filter在Android系統(tǒng)中,同一Android應用的組件以及不同Android應用的組件之間,都可以進行通信;窘M件間通信的接口為Intent,其作用相當于調用API函數(shù)。例如:

框架圖,框架,方式,組件


2背景碩士學位論文8包含Intent的動作,Intent中的每個類別必須匹配Intent-Filter中的一個。數(shù)據(jù)匹配相對比較復雜,主要分為兩部分:Uri匹配和MimeType匹配。Uri需要匹配host,port和path。若Intent-Filter聲明了host、port或path屬性,Intent中則必須包含且匹配這些屬性。若Intent-Filter并未聲明其中的某些屬性,Intent中的該屬性也就不需要匹配。當Intent與某個組件的Intent-Filter匹配時,該組件就是Intent的一個目標組件。對于Type匹配,Intent所指定的Type類型必須與Intent-Filter指定的MimeType相同,才能完全匹配。在一次匹配過程中,會找出系統(tǒng)上所有匹配該intent的組件。即隱式intent可以一次性啟動多個組件。例如,當我們在使用某讀書軟件進行書單分享時,點擊分享按鈕,可能就會彈出多個軟件,如微信,微博等,即有多個應用可以分享該書單,用戶可以任選一個應用打開進行分享。2.1.4測試輸入如圖2.5所示,向Android應用提供輸入主要通過兩種方式:(1)事件(2)調用AndroidAPI的返回值[26]。事件可以是用戶生成的(例如點擊按鈕)也可以是系統(tǒng)生成(例如廣播電池狀態(tài)的變化)的。本文主要考慮的是用戶給定的測試輸入,通過Android測試框架模擬用戶的輸入,使得Android應用可以自動化執(zhí)行到給定的位置。圖2.5Android應用與Android框架交互方式2.2相關工作我們的研究涉及到Android應用的GUI測試[27-29],服務分析[12-16]和測試以及能耗測試與分析[18-20]三個方面的工作。在本節(jié)中,我們將介紹這三個方面的最新技術。2.2.1GUI測試


本文編號:3438093

資料下載
論文發(fā)表

本文鏈接:http://www.sikaile.net/kejilunwen/ruanjiangongchenglunwen/3438093.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權申明:資料由用戶6b3eb***提供,本站僅收錄摘要或目錄,作者需要刪除請E-mail郵箱bigeng88@qq.com