一种缩减IPA包体积的方法与流程

文档序号:23397179发布日期:2020-12-22 14:49阅读:299来源:国知局
一种缩减IPA包体积的方法与流程

本发明涉及ios开发技术,尤其涉及一种缩减ipa包体积的方法。



背景技术:

随着国内经济由高速增长阶段转向高质量发展阶段,移动支付、网约车、互联网医疗、在线教育等各类“互联网+”新业态层出不穷,我国网民规模及互联网普及率均呈现快速增长态势,截至2020年3月中国手机网民规模达8.97亿人,比2018年底增加7992万人,网民使用手机上网的比例比2018年底提升0.7个百分点,达99.3%。

手机普及率增高,app项目需求也越来越多,app的体积也越来越大。尤其app下载体积越大,使用蜂窝网络就可能会产生额外费用,也必然流失部分流量,在开发过程中,有些需求砍掉了或者被迭代了,代码虽然被删除了,但是图片等资源可能没有被及时删除,会造成主项目中有大量的图片等资源未被真正使用。所以基于上述问题,需要定期检查项目中的冗余资源并且删除,达到减少app体积的效果。



技术实现要素:

基于以上技术问题,本发明提供了一种缩减ipa包体积的方法,解决因项目中无用资源与类库较多导致的ipa包体积增大的问题。

本发明的技术方案是:

一种缩减ipa包体积的方法,通过xcode排查无用业务线、部分资源文件云端下载、冗余资源与类库清理来持续缩减优化代码库。

进一步的,

分为四部分:

第一部分是查找文件的目录,

第二部分是设置查找规则,

第三部分是查找结果,

第四部分是删除查找到的内容。

再进一步的,

查找文件的目录包括:

1)设置projectpath查找目录,设置filetype图片格式

a)查找目录:需要进行缩减ipa包体积的项目路径;

b)图片格式:imageset、jpg、gif、png;

2)查找出所有图片资源

a.根据输入的projectpath,在directorypath内,搜索出filetype类型的所有路径名;得到一个所有图片后缀的目录数组;

b.对图片信息进行遍历,形成resourcefileinfo类,并用了以名字为key,info为value的字典,存取这些数据,

resourcefileinfo类包括name图片名称字段,path图片路径字段,filesize图片大小字段,自此获取了该工程里面所有的图片资源信息,并保存到字典中。

再进一步的,

所述设置查找规则,包括:

1)验证资源是否被使用

a、使用正则表达式来匹配不同文件中使用的图片格式,oc的.m中正则表达式:@"(.*?)"代表匹配@"xxx",xxx可为任意内容,xib正则表达式imagename="(.+?)"代表imagename="xxx",xxx不能为空且他们之间不能有换行符,swift正则表达式:"(.*?)"代表匹配"xxx",xxx可为任意内容;

b、根据a中设置的扫描格式进行扫描,采用递归方式进行,直到这个文件路径属于文件,且后缀名是可以处理的,才会对其进行处理;通过遍历了工程中的所有图片,获取得到了一个未被使用的资源列表resstringset。

在项目中还有一种特殊的引用图片的方式,就是通过字符串拼接的方式引入的图片,使用近似检索([-_]?\d+),如果图片的名字前面或者后边跟着_或者-,且后面有至少一个数字,可被视为近似名字,比较近似名字方法是去前缀/后缀,再进行比较。

再进一步的,

查找结果包括:导出未使用的图片文件

通过扫描查找出的未使用的图片都被保存到了资源列表中,使用nssavepanel将列表中的图片内容保存到txt文件中,根据txt中图片路径对未使用的图片进行删除处理。

再进一步的,删除查找到的内容包括:直接删除查找出的图片

通过未被使用图片的资源列表resstringset,可单独删除某个图片,也可全部删除,单独删除,只需选择要删除的resourcefileinfo根据存储的路径字段path直接删除。全部删除则使用了遍历方式进行删除。

本发明的有益效果是

清理无用图片,减少ios工程图片占用量。

能快速查找未被使用的图片,并进行删除,减小ipa包体积。

附图说明

图1是本发明的整体流程示意图;

图2是ios工程具体工作流程示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供一种缩减ipa包体积的方法,基于xcode开发工具与objective-c实现,通过设置查找目录、查找规则,进行快速查找匹配然后筛选出无用文件进行删除,从而达到ipa包缩减。

包括查找ios工程中的所有图片资源、验证图片资源是否被使用、导出以及删除;其中

查找ios工程中的所有图片资源:通过find命令查找指定后缀名的文件,其文件名称、路径必须进行保存。

验证图片资源是否被使用:通过正则表达式设置匹配规则,其匹配精度较高,提高了匹配速度,快速查找出未被使用的图片资源。

本发明定位于使用xcode开发工具编写的项目,可分为四部分:第一部分是查找文件的目录,第二部分是设置查找规则,第三部分是查找结果,第四部分是删除查找到的内容。

实现方案具体如下::

1.设置projectpath查找目录,设置filetype图片格式

a.查找目录:需要进行缩减ipa包体积的项目路径。

b.图片格式:目前基于ios开发的图片格式主要有imageset、jpg、gif、png。

2.查找出所有图片资源

a.根据输入的projectpath,在directorypath内,搜索出filetype类型的所有路径名。得到一个所有图片后缀的目录数组。

b.对图片信息进行遍历,形成resourcefileinfo类,并用了以名字为key,info为value的字典,存取这些数据,resourcefileinfo类包括name图片名称字段,path图片路径字段,filesize图片大小字段,自此获取了该工程里面所有的图片资源信息,并保存到字典中。

3.验证资源是否被使用

a.ios项目中使用的后缀文件各式各样,.h.m.swift.xib,甚至用到了.html,他们引用资源的方式各有不同。目前使用正则表达式来匹配不同文件中使用的图片格式,oc的.m中正则表达式:@"(.*?)"代表匹配@"xxx",xxx可为任意内容(引号除外),xib正则表达式imagename="(.+?)"代表imagename="xxx",xxx不能为空且他们之间不能有换行符,swift正则表达式:"(.*?)"代表匹配"xxx",xxx可为任意内容(引号除外)。

b.根据a中设置的扫描格式进行扫描,采用递归方式进行,直到这个文件路径属于文件,且后缀名是可以处理的,才会对其进行处理。通过遍历了工程中的所有图片,获取得到了一个未被使用的资源列表resstringset。

c.在项目中还有一种特殊的引用图片的方式,就是通过字符串拼接的方式引入的图片,对于这种方式引用的图片是不应该出现在扫描结果列表中的,因此使用一个近似检索([-_]?\d+),如果图片的名字前面或者后边跟着_或者-,且后面有至少一个数字,可被视为近似名字,比较近似名字方法是去前缀/后缀,再进行比较。

4.导出未使用的图片文件

通过3扫描查找出的未使用的图片都被保存到了资源列表中,使用nssavepanel将列表中的图片内容保存到txt文件中,可根据txt中图片路径对未使用的图片进行删除处理

5.直接删除查找出的图片

通过未被使用图片的资源列表resstringset,可单独删除某个图片,也可全部删除,单独删除,只需选择要删除的resourcefileinfo根据存储的路径字段path直接删除。全部删除则使用了遍历方式进行删除。

以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1