搜索

谈谈 iOS 包瘦身妄想

发表于 2024-10-18 03:35:30 来源:饕餮之徒网

包瘦身妄想

置信大师都市碰着随有名目需要的谈谈变换,工程中的瘦身代码以及资源文件会随同着削减,良多时候,妄想咱们都不会任意的谈谈去删除了某些代码,概况资源文件。瘦身可是妄想这样带来的价格便是包的体积越来越大。

当包的谈谈体积超过 200MB 时,那末就引起了数据部份的瘦身留意,数据部份合成新用户的妄想削减可能跟运用商铺包巨细超限,用户流量无奈下载的谈谈成果所致。那末此时再去做包巨细优化象征着咱们就会消散良多新用户,瘦身而且也会拉高咱们的妄想新用户老本。以是谈谈包巨细优化不能在成果发生后再去做,应该实时去做,瘦身当下就该做,妄想咱们也应该把 200MB 看成“红线”。

接下来咱们看看包巨细优化有哪些妄想:

首先,便是资源文件优化,这种妄想在瘦包上最重大看到成果,假如你的包巨细急需要瘦身,无妨先试试这个。资源文件优化你可能从图片资源缩短、无用资源魔难、资源文件上传中入手,概况运用民间提供的App 。

其次,是代码文件优化, 代码文件优化 投入光阴可能要比资源文件优化的光阴长良多,而且成果不那末清晰。可是代码文件优化可能魔难良多无用代码,以及删除了良多不用要文件,清理名目结构,使名目可不断性呵护。

资源文件优化

比照拟而言,资源优化的光阴是最快的,成果是最佳的,咱们惟独要做好平凡的资源缩短解决,定期清理无用资源,做好资源文件公平调配,那末包体积巨细就不会太大。

图片资源缩短

图片缩短咱们可能抉择的工具着实有良多,重点便是要留意魔难缩短的图片资源会不会在呈现上实用果。工具推荐:[1] 、图压[2] 。

图片资源缩短也有良多公司运用webp名目图片,这种名目比力png、jpg要小良多,但客户端功能对于解码webp图片会有未必的影响。在一些老的机型上,呈现不是很好。以是需要做一些取舍。这里有webp以及png名目转换的工具 [3]

着实我感应这两种妄想可能共存,团队外部设定一个资源文件的最大值,好比超过 100KB 就抉择运用 webp名指标图片,小于 100KB 就运用缩短工具。这样就能极大的削减资源文件的巨细,同时削减包的体积。

无用资源魔难

无用资源魔难可能经由工具 [4]。

删除了无用图片的历程,可能演绎综合为下面多少步操作。

经由 find 命令获取 App 装置包中的所有资源文件,好比 find /Users/// -name。

配置用到的资源的规范,好比 jpg、gif、png、webp。

运用正则立室在源码中找出运用到的资源名,好比 = @"@"(.+?)""。

运用 find 命令找到的所有资源文件,再去掉代码中运用到的资源文件,剩下的便是无用资源了。

对于遵照规定配置的资源名,咱们需要在立室运用资源的正则表白式里削减响应的规定,好比 @“%d”。

确认无用资源后,就能对于这些无用资源推广删除了操作了。这个删除了操作,你可能运用 系统类提供的功能来实现。

需要留意的是:在运用的历程中,你需要魔难有些资源文件后缀是否有拼接上的,如“”,“” 概况 “bg_1”,“bg_2” 就遵照第5步去削减相干正则表白式来魔难这种资源文件。

资源文件上传

假如波及到的资源文件仍是有良多的时候,那末咱们可能思考公平的将某些资源文件上传至服务器,实用劳器下发至挪移端。这种妄想个别需要多个端来一律拟订妄想,从而达到最大化的运用。

App

苹果公司推出 App 是为了解决用户下载 App 斲丧过高流量的成果,同时还可能节约用户 iOS 配置装备部署的存储空间。

App 会特意针对于差此外配置装备部署来抉择只适用于日后配置装备部署的内容以供下载。好比, 8 只会下载 2x 分说率的图片资源, 8plus 则只会下载 3x 分说率的图片资源。

App 有三种方式,包罗:App 、、On- 。

那末,若何在你名目里运用 App 呢?着实,这里的大全副使命都是由 Xcode 以及 App Store 来帮你实现的,你惟独要经由 Xcode 削减 目录,而后将图片削减进来即可。

代码文件优化

代码文件优化着实也可能看成是对于可推广文件 Mach-O 的优化,其巨细是由代码量来决定的。以是对于 Mach-O 瘦身 着实便是查找并削减无用的代码。

无用代码魔难 运用 合成

无用代码平凡也可能运用重大的工具来魔难,如 ,尽管假如代码量过大,可能这个会集成不外去。听说百万行代码可能会吃不用。

用 做合成的方式很重大,间接在 里抉择 Code ->Code 就能妨碍动态合成。动态合成完日后,咱们可能在 code 里看到所有的无用代码。

尽管可能检测出良多无用代码,但这些并不精确,以是还需要家养二次确认威力够牢靠删作废。

合成 Mach-O 文件

尚有一种便是合成 Mach-O文件,运用 这个软件[5]来魔难Mach-O 文件里的信息,而后依据 Mach-O 文件的 、 以及 来魔难运用过的类以及子类。

这种魔难方式也不是欠缺的,原因在于, -C 是门动态语言,方式调用可能写成在运行时动态调用,这样就无奈收集全所有调用的方式以及类。以是,咱们经由这种方式找出的无用方式以及类就只能作为参考,还需要二次确认。

削减第三方SDK

假如在名目中运用良多第三方库,你还需要魔难是否导入了相同的功能的库,防御导入过多的库而造成资源过大。

无心分有些第三方库巨细占比很高的时候,你也需要去思考是否要替换掉它。

参考资料

[1]

:

[2]

图压:

[3]

:

[4]

:

[5]

这个软件:

随机为您推荐
友情链接
版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright © 2016 Powered by 谈谈 iOS 包瘦身妄想,饕餮之徒网   sitemap

回顶部