基於覆蓋率測試的android系統裁剪方法
2023-05-30 07:00:26 1
基於覆蓋率測試的android系統裁剪方法
【專利摘要】本發明涉及android系統優化技術,其公開了一種基於覆蓋率測試的android系統裁剪方法,解決android系統裁剪對軟體研發人員要求高、裁剪難度大的問題。該方法包括以下步驟:a.依據項目需求對android中的linux內核層進行裁剪;b.在linux內核裁剪的基礎上,進行android系統軟體研發;c.對開發完成的系統軟體進行插樁;d.以用戶使用的角度,對產品進行全功能測試;e.進行測試覆蓋分析;f.進行android裁剪,包括:分析解讀未執行到的文件,了解相應功能,後將其刪除;根據解讀情況,修改android系統啟動項,優化啟動過程,提升啟動速度;g.即對裁剪後的產品軟體,以用戶的角度進行全功能測試驗證。本發明適用於對android系統進行優化。
【專利說明】基於覆蓋率測試的android系統裁剪方法
【技術領域】
[0001]本發明涉及android系統優化技術,具體涉及一種基於覆蓋率測試的android系統裁剪方法。
【背景技術】
[0002]隨著計算機及軟體技術的發展,消費電子產品逐步從功能性轉化為智能型。Android作業系統以其開放、易用的特徵,越來越多的被智能消費電子產品所採用。Android系統的產生,主要源於智慧型手機的需求,因此系統帶有很鮮明的手機特徵,如電話、簡訊、藍牙等功能均為系統內置功能,系統也相對複雜,然而,在以家電產品智能化進程中,存在與手機完全不同的需求,如家電產品主要功能以控制、交互、數據採集為主,不需要電話、簡訊等功能,要求系統啟動速度快等,因此,要滿足智能家電產品需求,需要對android系統進行定製裁剪。
[0003]Android是一種基於Linux的自由及開放原始碼的作業系統,其架構總體可分為四層,從高層到低層分別是應用程式層、應用程式框架層、系統運行庫層和Linux內核層。Android系統的裁剪,是一項非常專業的工作,針對某一簡單功能的android系統裁剪,往往都要涉及到android系統的四個層級,因此需要軟體研發人員對android系統架構及其實現細節均有深入的了解,而由於android系統的發展迅猛、版本更新換代頻繁,導致android系統裁剪成為了一項難度非常高的一項任務。
【發明內容】
[0004]本發明所要解決的技術問題是:提出一種基於覆蓋率測試的android系統裁剪方法,解決android系統裁剪對軟體研發人員要求高、裁剪難度大的問題。
[0005]本發明解決上述技術問題所採用的方案是:
[0006]基於覆蓋率測試的android系統裁剪方法,包括以下步驟:
[0007]a.依據項目需求對android中的Iinux內核層進行裁剪;
[0008]b.在Iinux內核裁剪的基礎上,進行android系統軟體研發,實現產品需求的全部功能;
[0009]c.對開發完成的系統軟體進行插樁,保證樁語句覆蓋到系統中的每個函數或文件,後對插樁後的軟體進行編譯、軟硬體集成;
[0010]d.以用戶使用的角度,對產品進行全功能測試;
[0011]e.進行測試覆蓋分析,根據樁語句執行情況,進行語句、函數、文件的運行情況統計,找出軟體運行過程中未執行到文件;
[0012]f.進行android裁剪,包括:分析解讀未執行到的文件,了解相應功能,後將其刪除;根據解讀情況,修改android系統啟動項,優化啟動過程,提升啟動速度;
[0013]g.即對裁剪後的產品軟體,以用戶的角度進行全功能測試驗證,確保裁剪後的系統能夠正常使用。[0014]進一步,步驟a中,所述依據項目需求對android中的Iinux內核層進行裁剪,包括:
[0015]利用在menuconfig中配置,可以對Linux內核配置選項進行刪改,刪除不需要的功能豐旲塊。
[0016]進一步,步驟c中,通過覆蓋率工具或人工方式,對開發完成的系統軟體進行插樁。
[0017]具體的是,所述覆蓋率工具包括:C/C++覆蓋率測試工具GC0V、JAVA覆蓋率測試工具 EMMA。
[0018]本發明的有益效果是:利用覆蓋率測試,能夠輔助開發人員掌握哪些代碼沒有運行到,進而針對性的進行可視化裁剪,提升裁剪效率,保證系統的穩定性。
【專利附圖】
【附圖說明】
[0019]圖1為本發明中基於覆蓋率測試的android系統裁剪方法流程圖。
【具體實施方式】
[0020]在Android系統架構中,應用層主要為瀏覽器、電話本等核心應用程式;應用程式框架層主要提供android應用開發的系類組件;系統運行庫層主要包含系統庫和android運行時,系統運行庫主要為android系統組件開發所必須的C/C++庫、媒體庫等,android運行時為android核心庫和虛擬機;linux內核層主要提供核心驅動及進程管理等。Android系統軟體開發中,針對某特定功能,往往僅需要了解應用框架層的支持組件,就可以完成功能研發;然而在此特定功能軟體的運行中,均存在從應用層到應用程式框架層、系統運行庫層、Iinux內核層的逐級調用關係,採用傳統的方法裁剪,首先需要了解各個層級之間的架構以及相互間的聯繫,這也是android系統裁剪中的難點所在。
[0021]若軟體運行過程中,我們能夠顯性的看到哪些軟體代碼執行到了,哪些軟體沒有執行到,進而刪除掉沒有運行到的代碼,實現對系統裁剪,這樣不但能夠實現系統的可視化裁剪,提升裁剪效率,還能夠保證系統的穩定性。基於此,本發明提供了一種基於覆蓋率測試的android系統裁剪方法。覆蓋率測試,是軟體測試領域較為常用的一項測試技術,通常採用專用的軟體測試工具,以在目標軟體代碼中插樁的方式,檢測軟體代碼的運行情況,實現軟體代碼覆蓋率統計,度量測試完整性。在本方案中,利用覆蓋率測試,能夠輔助開發人員掌握哪些代碼沒有運行到,進而針對性的進行裁剪。
[0022]如圖1所示,本發明中基於覆蓋率測試的android系統裁剪方法,包括以下實現步驟:
[0023]Ulinux內核裁剪:依據項目需求對android中的Iinux內核層進行裁剪,利用在menuconfig中配置,可以對進行Linux內核配置選項及刪改刪除不需要的功能模塊,以保證軟體研發過程中不會產生無意識的調用,降低裁剪效果;
[0024]2、產品軟體研發:在Iinux內核裁剪的基礎上,進行android系統軟體研發,實現產品需求的全部功能,此部分軟體研發主要涉及應用層、系統框架層的修改;
[0025]3、測試插樁:利用覆蓋率工具或人工方式,對開發完成的系統軟體進行插樁,保證樁語句覆蓋到系統中的每個函數或文件,後對插樁後的軟體進行編譯、軟硬體集成;[0026]4、全功能測試:以用戶使用的角度,對產品進行全功能測試;
[0027]5、測試覆蓋分析:根據樁語句執行情況,進行語句、函數、文件的運行情況統計,找出軟體運行過程中未執行到文件。由於此時未進行android啟動項優化,因此在系統啟動加載過程中,會運行到多個未來不需要的啟動項,因此此時不進行覆蓋情況統計,統計的起始時間沮圍在系統啟動後,全功能測試階段;
[0028]6、android裁剪:進行android裁剪,包括兩部分內容:一是分析解讀未執行到的文件,了解相應功能,後將其刪除;二是根據解讀情況,修改android系統啟動項,優化啟動過程,提升啟動速度;
[0029]7、全功能測試驗證:即對裁剪後的產品軟體,以用戶的角度進行全功能測試驗證,確保裁剪後的系統能夠正常使用。
[0030]下面結合android系統裁剪實施的工程案例,對測試方法進行詳細描述:
[0031]「藍牙」模塊是android系統中的標準模塊,本案例所述的產品方案中不涉及「藍牙」功能,案例將結合「藍牙」功能模塊裁剪案例,對本方法進行描述,具體步驟如下:
[0032]步驟1:linux 內核裁剪,在 menuconfig 中配置,將 Bluetooth subsystem support選N,重新生成config文件,並使用該文件進行編譯,即去除了藍牙部分功能;
[0033]步驟2:產品功能研發,此處不詳述;
[0034]步驟3:利用C/C++覆蓋率測試工具GCOV、JAVA覆蓋率測試工具EMMA,分別進行對android系統中各層軟體代碼進行打樁;
[0035]步驟4:對軟體實施全功能測試,此處不詳述;
[0036]步驟5:查看測試工具的測試覆蓋情況報告,,找出全功能測試中未被執行到的文件,其中應用層藍牙設備配置文件、Bluetooth, apk等未被執行到,系統運行庫層部分庫文件未被執行到;
[0037]步驟6:分析被執行到的文件,後將其刪除;修改啟動項,將藍牙啟動部分關閉;
[0038]步驟7:利用全功能測試對系統進行驗證。
[0039]以上所述,僅為本發明的【具體實施方式】,但本發明的保護範圍並不局限於此,任何熟悉本【技術領域】的技術人員在本發明揭露的技術範圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護範圍之內。因此,本發明的保護範圍應以所述權利要求的保護範圍為準。
【權利要求】
1.基於覆蓋率測試的android系統裁剪方法,其特徵在於,包括以下步驟: a.依據項目需求對android中的Iinux內核層進行裁剪; b.在Iinux內核裁剪的基礎上,進行android系統軟體研發,實現產品需求的全部功倉泛; c.對開發完成的系統軟體進行插樁,保證樁語句覆蓋到系統中的每個函數或文件,後對插樁後的軟體進行編譯、軟硬體集成; d.以用戶使用的角度,對產品進行全功能測試; e.進行測試覆蓋分析,根據樁語句執行情況,進行語句、函數、文件的運行情況統計,找出軟體運行過程中未執行到文件; f.進行android裁剪,包括:分析解讀未執行到的文件,了解相應功能,後將其刪除;根據解讀情況,修改android系統啟動項,優化啟動過程,提升啟動速度; g.即對裁剪後的產品軟體,以用戶的角度進行全功能測試驗證,確保裁剪後的系統能夠正常使用。
2.如權利要求1所述的基於覆蓋率測試的android系統裁剪方法,其特徵在於,步驟a中,所述依據項目需求對android中的Iinux內核層進行裁剪,包括: 利用在menuconfig中配置,可以對Linux內核配置選項進行刪改,刪除不需要的功能模塊。
3.如權利要求1或2所述的基於覆蓋率測試的android系統裁剪方法,其特徵在於,步驟c中,通過覆蓋率工具或人工方式,對開發完成的系統軟體進行插樁。
4.如權利要求3所述的基於覆蓋率測試的android系統裁剪方法,其特徵在於,所述覆蓋率工具包括:C/C++覆蓋率測試工具GCOV、JAVA覆蓋率測試工具EMMA。
【文檔編號】G06F9/44GK104035766SQ201410221840
【公開日】2014年9月10日 申請日期:2014年5月23日 優先權日:2014年5月23日
【發明者】何豔 申請人:四川長虹電器股份有限公司