1.一種基于安卓API使用規(guī)范的代碼質(zhì)量自動評估優(yōu)化方法,其步驟包括:
1)針對安卓源碼中的API概述文檔構(gòu)造解析器,通過該解析器完成所有API對應(yīng)包名、類名、方法名及參數(shù)信息的提取和關(guān)聯(lián);
2)基于安卓API使用規(guī)范將API分為移除API、不推薦API、隱藏API和正常API四種類型,并建立API特征庫;
3)統(tǒng)計待測安卓應(yīng)用程序調(diào)用API的類型分布,定位移除API、不推薦API和隱藏API的調(diào)用位置,基于API使用規(guī)范情況和API使用安全性,提出代碼質(zhì)量評級方法,評估代碼質(zhì)量;
4)提供自動化的代碼質(zhì)量優(yōu)化策略,生成代碼質(zhì)量評估報告。
2.如權(quán)利要求1所述的方法,其特征在于:步驟1)所述安卓源碼中的API概述文檔包括每一安卓系統(tǒng)版本的移除API文檔和截至目前最新安卓系統(tǒng)版本的現(xiàn)存API文檔。
3.如權(quán)利要求1所述的方法,其特征在于:步驟2)建立API特征庫時,對于移除API、不推薦API和隱藏API,判斷該API是否具有安全隱患,若有則在特征庫中為其添加安全影響標(biāo)志,提示用戶特別關(guān)注。
4.如權(quán)利要求3所述的方法,其特征在于,判別API是否具有安全隱患的方法為:查找API注釋中是否存在可引發(fā)安全漏洞的關(guān)鍵字標(biāo)識,若查找到則認(rèn)為該API具有安全隱患。
5.如權(quán)利要求4所述的方法,其特征在于:所述可引發(fā)安全漏洞的關(guān)鍵字標(biāo)識來源于美國國家漏洞數(shù)據(jù)庫,包括information leak。
6.如權(quán)利要求1所述的方法,其特征在于:步驟2)建立API特征庫時,對于移除API,根據(jù)API概述文檔的版本判別其移除起始版本號;對于不推薦API,在源碼注釋中提取不推薦起始版本號、不推薦原因和優(yōu)化建議。
7.如權(quán)利要求1所述的方法,其特征在于,API特征庫中的每一條API記錄包括以下信息:包名、類名、方法名、參數(shù)信息、是否正常、是否移除、是否不推薦、是否隱藏、是否安全、移除起始版本號、不推薦起始版本號、不推薦原因和優(yōu)化建議。
8.如權(quán)利要求1所述的方法,其特征在于:步驟3)使用靜態(tài)反匯編分析技術(shù)對待測安卓應(yīng)用程序進(jìn)行反匯編,自動掃描得出其調(diào)用API的類型分布;所述靜態(tài)反匯編分析技術(shù)使用以下工具中的一種或多種對安卓應(yīng)用程序進(jìn)行反匯編:apktool、dex2jar、AndroidMultitool和QARK。
9.如權(quán)利要求1所述的方法,其特征在于:步驟3)所述代碼質(zhì)量評級方法,綜合考慮不正常API即移除API、不推薦API、隱藏API所占比例及權(quán)重,計算得出代碼質(zhì)量得分,介于0.0-10.0之間,數(shù)值越大,說明代碼質(zhì)量越差,并將0.0-3.5設(shè)為低危級別,3.6-7.0設(shè)為中危級別,7.1-10.0設(shè)為高危級別。
10.如權(quán)利要求1所述的方法,其特征在于,步驟4)所述代碼質(zhì)量評估報告的內(nèi)容包括:1)待測程序調(diào)用API的類型分布;2)待測安卓應(yīng)用程序代碼質(zhì)量評級結(jié)果;3)待測程序調(diào)用的屬于移除API的每條API的包名、類名、方法名、移除起始版本號和具體調(diào)用位置;4)待測程序調(diào)用的屬于不推薦API的每條API的包名、類名、方法名、不推薦起始版本號、優(yōu)化建議和具體調(diào)用位置;5)待測程序調(diào)用的屬于隱藏API的每條API的包名、類名、方法名和具體調(diào)用位置。