專項測試——移動app安裝包檢測

1、背景和現狀安全

安裝包的重要性無需多提,針對安裝包質量控制愈來愈嚴格和規範,包括證書、文件大小、安裝成功率等,APP的證書及混淆是影響APP的安裝成功率及代碼安全性的很大因素,隨着功能迭代,安裝包也會隨之增大,那麼用戶下載和app激活轉化率就會越低,同時在提交及發佈渠道時的錯誤率也會提高,因此成熟的app會不按期進行安裝包瘦身實踐,經過對於代碼、資源文件等梳理將安裝包大小控制在一個合理的值。(好比有app,iOS安裝包大小控制在55M,Android安裝包大小控制在28M等)。app

目前組內針對這一塊已經造成了APP的安裝包的常規檢測,並將其加入到整個研發流程中,參與人員會包含產品、設計、開發和測試同窗。工具

 二、安裝包質量目標確立測試

一、包大小控制優化

二、資源重複及大小文件檢測及新增控制spa

三、重複、廢棄及無用代碼檢測 debug

四、基本項檢查設計

3、檢測技術及度量指標日誌

一、 針對APK的整體大小orm

1.1 獲取方式:

針對IOS端:開發者證書、企業證書和發佈證書打出來的包可能大小不一樣,而且debug和release也會影響包大小,從初版本開始,建議選擇發佈證書+release版本做爲被測包。

安卓端:不存在IOS端的證書問題,建議選擇release版本打出的包做爲被測包

1.2 控制方式:

研發工做開始以前,研發負責人給出APP的預估大小值

(1)開發人員在需求評審完成就給出本版本安裝包大小的預估值,產品和測試人員會針對研發負責人給出的預估值和實際值做出比較,並針對實際值與預估值有較大差距的狀況,由開發人員給出問題緣由。

(2)在總體研發過程當中,設計人員給出的UI設計圖根據須要優先作一次無損壓縮,以後研發人員可根據項目狀況,再作一次無損壓縮,兩次壓縮以後可以下降必定量的資源文件的大小。目前安卓端通常會採用.9圖片,可以有效減小圖片等資源文件的大小。

 二、針對資源文件的檢測——避免過大和重複

重複文件的檢測方式:首先根據文件頭判斷文件類型,確認文件類型是資源文件的,會經過大小和md5值進行資源文件是否重複的判斷,以後將重複文件的列表輸出,而且輸出重複文件的佔用大小。

對重複文件及大小的約定規則以下:

(1)重複文件的總佔用大小超過0.1M時會發出告警;

(2)重複文件的項數不能有增長,歷史重複須要在接下來的版本中進行不斷刪減。

(3)針對資源文件的大小的監控,須要與設計同窗一塊兒肯定指標,將資源文件分紅大中小三種級別,當出現大文件時,須要給出預警。 

三、針對引入的第三方sdk的功能判斷——避免sdk自己功能模塊與非sdk有重複

在開發過程當中須要對引入的第三方sdk的功能接口熟悉,而且須要瞭解sdk及非sdk模塊是否存在功能的重複實現狀況,是則須要在APP的非sdk的代碼中作刪除。

 四、對代碼的檢查及優化:

(1)包括對重複功能的代碼的檢查:有可能在歷史版本迭代積累的過程當中,在整個研發過程當中致使出現多份重複功能的代碼,或者類似功能代碼

(2)對廢棄功能的代碼檢查:這裏能夠和測試及產品同窗一塊兒,確認版本功能以及case走查,以此來達到對歷史代碼的清理。 建議檢查方式:能夠經過代碼覆蓋率的方式,在執行case的過程當中統計代碼覆蓋率,對未覆蓋到的代碼進行分析及進一步的處理。

五、對證書、log以及混淆的校驗:

(1)針對打包的證書的校驗:安卓端可經過證書的md5值進行驗證;

(2)混淆可經過smali工具進行解壓後生成的代碼,優先對資源文件作校驗,以後能夠獲取LaunchActivity的代碼,對代碼作規則斷定以驗證是否混淆;

(3)log的驗證有些apk是經過一個文件記錄開關,則可解壓文件讀取內容獲得開關便可,若不知足此要求,則可經過自動運行app獲取日誌信息作校驗。

六、持續優化:

以上幾個指標須要加入到研發管理流程中,堅持N個版本下來,必定可以有比較好的效果。 

安裝包檢查結果輸出模板可見下方:

安裝包常規檢查

檢查項

結果數據

大小 / 與上一版本對比

23.45MB/20.34MB

包名

com.xx.xx

名稱

xx網

證書一致性

版本

7.3.0

內部版本號

160

min SDK

18

log是否關閉

是否混淆

重複文件大小

80.27KB

重複文件項數

53項

重複文件具體列表

File1

File2

res\drawable-xxhdpi-v4\xx.png

res\drawable-xxhdpi-v4\yy.png

res\raw\m_1.jpg

res\raw\m_2.jpg

res\drawable-xxhdpi-v4\a.png

res\drawable-xxhdpi-v4\b.png

res\drawable-hdpi-v4\bg.9.png

res\drawable-xhdpi-v4\normal.9.png

assets\gif\xiaolv\png\5.png

assets\gif\xiaolv\png\icon.png

相關文章
相關標籤/搜索