专项测试——移动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

相关文章
相关标签/搜索