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


一、背景和現狀

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

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

 二、安裝包質量目標確立

1、包大小控制

2、資源重復及大小文件檢測及新增控制

3、重復、廢棄及無用代碼檢測 

4、基本項檢查

三、檢測技術及度量指標

1、 針對APK的總體大小

1.1 獲取方式:

針對IOS端:開發者證書、企業證書和發布證書打出來的包可能大小不同,並且debug和release也會影響包大小,從第一版本開始,建議選擇發布證書+release版本作為被測包。

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

1.2 控制方式:

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

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

(2)在整體研發過程中,設計人員給出的UI設計圖根據需要優先做一次無損壓縮,之后研發人員可根據項目情況,再做一次無損壓縮,兩次壓縮之后能夠降低一定量的資源文件的大小。目前安卓端一般會采用.9圖片,能夠有效減少圖片等資源文件的大小。

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

重復文件的檢測方式:首先根據文件頭判斷文件類型,確認文件類型是資源文件的,會通過大小和md5值進行資源文件是否重復的判斷,之后將重復文件的列表輸出,並且輸出重復文件的占用大小。

對重復文件及大小的約定規則如下:

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

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

(3)針對資源文件的大小的監控,需要與設計同學一起確定指標,將資源文件分成大中小三種級別,當出現大文件時,需要給出預警。 

3、針對引入的第三方sdk的功能判斷——避免sdk本身功能模塊與非sdk有重復

在開發過程中需要對引入的第三方sdk的功能接口熟悉,並且需要了解sdk及非sdk模塊是否存在功能的重復實現情況,是則需要在APP的非sdk的代碼中做刪除。

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

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

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

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

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

(2)混淆可通過smali工具進行解壓后生成的代碼,優先對資源文件做校驗,之后可以獲取LaunchActivity的代碼,對代碼做規則判定以驗證是否混淆;

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

6、持續優化:

以上幾個指標需要加入到研發管理流程中,堅持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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM