美文网首页
iOS - 项目优化之 轻量化包大小

iOS - 项目优化之 轻量化包大小

作者: 多喝热开水 | 来源:发表于2020-10-09 15:24 被阅读0次

1.资源文件的优化

图片

首先,找到自己打包后的ipa,然后右键,打开方式选择归档实用工具,就会解压出来一个文件夹,在Payload文件夹中找到当前ipa的app文件(基本就是和这个ipa名字一样的文件,app后缀系统默认隐藏),右键显示包内容,进入到文件夹内,按照大小进行排序,你会发现所有的资源,首先对图片进行优化,图片主要的大小应该维持到200k以内,需要采用无损压缩。图片压缩推荐使用ImageOptim。
压缩图片 不重要的图片可适当采用 8bit PNG图片

音频

视频

  • 视频也可以使用类似于音频的处理方法,音视频的压缩可以很大程度的压缩,但是要注意压缩的格式,是不是会增加编解码的负担,这要权衡考虑。

Assets

检查bundle中的无用文件,不要打包到app或者静态库中。可以点击文件,在右侧的file inspector里面的target membership中取消勾选;或者在build phase里面的Copy Bundle Resources中去掉。
确定 dead code(代码被定义但从未被调用)被剥离,build setting 里 DEAD_CODE_STRIPPING = YES。 去掉冗余的代码,即使一点冗余代码,编译后体积也是很可观的。

2.代码部分优化

通过appcode 打开对应的工程文件 选择 Code - > inspect Code 分析代码,去掉无用的引用及代码。(appcode真的很强大,连拼写错误都能分析出来,但是就是长的像安卓看起来很丑)

3.分析可执行文件

  • 使用link map
    XCode开启编译选项Write Link Map File
    XCode -> Project -> Build Settings -> 搜map -> 把Write Link Map File选项设为yes
    在 编译后的工程文件夹可以找到 命名为 xxxlinkmapxxx.txt的文件(查找方式为,Winodw - Project - derived data - build - Intermediates -xxx.build - 对应debug或者Release文件下)分析 该txt文件,可以得到项目编译后各个模块生成的.o文件在可执行文件中的组成。
  • 如何分析
    本文采用node + js 的方式分析。 js代码地址https://gist.github.com/bang590/8f3e9704f1c2661836cd 使用方法,node js路径 xxlinkmapxxx.txt 路径 -hl 分析出来 过大的可以考虑缩减和替换。

4.编译选项

  1. 编译器优化级别
    Build Settings->Optimization Level有几个编译优化选项,release版应该选择Fastest, Smalllest,这个选项会开启那些不增加代码大小的全部优化,并让可执行文件尽可能小。
  2. 去除符号信息
    Strip Linked Product / Deployment Postprocessing / Symbols Hidden by Default 在release版本应该设为yes,可以去除不必要的调试符号。Symbols Hidden by Default会把所有符号都定义成”private extern”,详细信息见官方文档
    这些选项目前都是XCode里release的默认选项,但旧版XCode生成的项目可能不是,可以检查一下。其他优化还可以参考官方文档—CodeFootprint.pdf

还有一些其他可选项可以使用,比如 精简代码,去除无用代码,整合冗余代码,修改类/方法名长度等等

大致上的轻量化方案有如下:


image.png

相关文章

  • iOS - 项目优化之 轻量化包大小

    1.资源文件的优化 图片 首先,找到自己打包后的ipa,然后右键,打开方式选择归档实用工具,就会解压出来一个文件夹...

  • iOS - 项目优化之 减少包大小

    忙碌的项目开发告以段落,现在开始优化,弄的我好久没写博客了?。现在主要从包的大小开始优化。之后会陆续从代码结构上进...

  • iOS性能优化-包大小+linkMap分析和查找未使用类和方法

    1. LinkMap解析 导读IOS在做包大小优化的时候,需要分析包大小组成,然后通过包大小组成来有针对的做优化。...

  • iOS包大小优化

    一、iOS(安装)包 ipa全称为iPhone Application Archive,这里指的包在iOS其实就是...

  • iOS包大小优化

    安装包瘦身 安装包(IPA)主要由可执行文件、资源组成 资源(图片、音频、视频等) 采取无损压缩 去除没有用到的资...

  • optimizationLevel配置对包大小的影响

    在项目中,发现项目工程的包大小远远超出其他类似项目包大小。 排查下来发现,项目A的编译优化选项optimizati...

  • 项目优化之安装包大小优化

    1、图片压缩格式iOS pvrAndroid etc 2、删除关卡文件的txt部分Library/LocalGam...

  • iOS安装包大小优化

    背景 移动开发中,对于包大小优化是项目开发中需要考虑的,尤其对于航母级App,比如QQ、手淘等。网上关于包大小优化...

  • iOS 如何优化项目

    iOS 如何优化项目 iOS 如何优化项目

  • 分析iOS包大小优化

    背景 包大小优化是项目开发中不可避免会遇到的,网上关于包大小优化的文章很多,每篇文章说的都不尽相同,笔者曾经根据网...

网友评论

      本文标题:iOS - 项目优化之 轻量化包大小

      本文链接:https://www.haomeiwen.com/subject/ommlpktx.html