美文网首页
安装包瘦身

安装包瘦身

作者: 不如养花 | 来源:发表于2020-04-28 09:00 被阅读0次

Https和服务器的交互

  1. 服务器通过非对称加密,生成公钥和私钥,将私钥保存在服务器端,将公钥发送给客户端
  2. 客户端收到公钥,然后客户端生成对称加密密钥,使用收到的公钥对密钥进行非对称加密,将加密后的数据传送给服务器
  3. 服务器收到加密后的数据,使用私钥对数据进行解密,将客户端的加密密钥保存到服务器上
  4. 之后的交互都使用对称加密后的数据进行交互
Https 原理

https 就是http协议家里一个SSl协议的加密处理,SSL证书就是遵循SSL协议,由受信任着的数字证书颁发机构CA。
https

iOS瘦身之道

1.App Thinning

是iOS9 以后引入的一项优化,自动降低分发到具体用户时,所需要下载的App大小。其中包括三项主要功能:Slicing、Bitcode、On——Demand Resources

Slicing

当像 App Store Connect 上传ipa后, App Store Connect 构建过程中,会自动分割该App,创建特定的变体以适配不同的设备。然后用户从 App Store 中下载的安装包,即这个特定的变体,这一过程叫做Slicing

image.png

Slicing 是创建、分发不同变体以适应不同目标设备的过程

其中图片的2x,3x的细分,要求图片在Assets中管理。Bundle内的则会同时包含。尽量使用XCAssect来管理文件

Bitcode

当我们把携带 BitCode 的 App 提交到 AppStore 后,苹果会提取出可执行文件中的 BitCode 段,然后针对不同的 CPU 架构编译和链接成不同的可执行文件变体(Variant),不同 CPU 架构的设备会自动选择合适的架构的变体进行下载。而在 BitCode 之前没我们都是把所有需要的 CPU 架构集合打包成一个 Fat Binary,结果就是用户最终下载的安装包之中有很多冗余的 CPU 架构支持代码。

BitCode 一致性要求

一致性要求意味着工程开启 BitCode 之后必须要求所有打进 Bundle 的 Binary 都需要支持 BitCode,也就是说我们依赖的静态库和动态库都是含有 BitCode 的,不然就会打包失败。

on-Demand Resources

iOS9以后,可使用该功能
即将一部分图片放置到苹果服务器上,不随着app的下载而下载,直到用户真正进入到某个页面才下载这些资源文件
应用场景:相机应用到贴纸滤镜、关卡游戏等

2. 包体积

  • .ipa (iOS Application Package):iOS 应用程序归档文件,即提交到 App Store Connect 的文件
  • .app (Application):应用的具体描述,即安装到 iOS 设备上的文件
资源优化
  • 无用资源的删除
    FengNiao
  • 重复文件的删除
  • 大文件压缩
  • 图片管理方式规范
  1. Xcode 提供了两个编译选项来帮助压缩PNG资源,项目引进的PNG资源都自动被Xcode进行压缩了,所以不需要自己再去压缩。
  2. 当你使用bundle方式管理资源,因为bundle是直接拷贝进项目,并不会被Xcode进行压缩,JPG或者其他类型的图片资源可以使用 ImageOptim
    进行无损压缩后导入到Xcode中,为了提高项目建议还是提供PNG格式的图片。
  3. 使用XCAsset管理的资源会被压缩打包成asset.car文件,我们无法获取图片的物理路径,不能使用[UIImage imageWithContentsOfFile:] 的方式来获取图片,对于那些需要使用物理路径方式来访问的图片,还是直接拖到app中进行管理
  • on-Demand Resources
代码瘦身

代码的优化,通过删除无用类、无用方法、重复方法等,来达到可执行文件大小的减小。

找到类和方法的全集
找到使用过的类和方法的集合
取2者差集得到无用代码集合
人工再次确认后,删除即可

基于可执行文件扫描(LinkMap结合Mach-O找无用代码)

视频/音频图片资源远端化

视频/音频等图片资源相对图片来说会大很多,所以建议把视频/音频放在服务端,客户端在使用的时候进行下载或者使用流播放。

HTML5 远端化

H5 资源也是建议放在服务端,如果对 H5 加载和离线访问有要求的话,可以使用离线缓存的方式来缓存网页资源到本地。
iOS 安装包瘦身 (上篇)
iOS 安装包瘦身 (下篇)

相关文章

  • 【OC性能优化】安装包瘦身

    一、安装包组成二、安装包瘦身三、果速送安装包瘦身 一、安装包组成 安装包主要由项目的可执行文件和资源文件组成。 二...

  • 性能优化:iOS APP安装包瘦身

    APP安装包瘦身 安装包(IPA)主要由可执行文件、资源组成 资源优化瘦身 资源(图片、音频、视频等)采取无损压缩...

  • iOS 安装包瘦身

    iOS 安装包瘦身 一. 安装包组成 谈到 App 瘦身,最直接的想法莫过于分析一个安装包内部结构,了解其每一部分...

  • 《移动App性能评测与优化》——安装包瘦身

    安装包瘦身 从APK的组成结构可以看出,其中占用空间最大的部分就是代码和资源,所以我们要做安装包瘦身就要从代码和资...

  • iOS包瘦身其实就那么简单几步

    篇文章继续为大家讲解下iOS安装包瘦身思路。 瘦身指导原则 常规瘦身方案 压缩资源 删除无用/重复资源 删除无用代...

  • 安装包瘦身

    App安装包(ipa文件)是由资源(图片+文档)和可执行文件(二进制文件)两部分组成,安装包瘦身也是从这两部分进行...

  • 安装包瘦身

    mark:iOS APP安装包瘦身实践 清理项目中不再使用的图片资源 当我们谈论iOS瘦身的时候,我们到底在谈论些...

  • 安装包瘦身

    一不小心,也许你的安装包就过百兆了,如果项目不复杂,依赖不很多的话,估计是哪里出问题了。 1.资源 可以使用LSU...

  • 安装包瘦身

    ipa包主要有可执行文件和资源组成 资源文件(图片 音频 视频) 采取无损压缩 去除没有用到的资源 (网上找工具)...

  • 安装包瘦身

    Https和服务器的交互 服务器通过非对称加密,生成公钥和私钥,将私钥保存在服务器端,将公钥发送给客户端 客户端收...

网友评论

      本文标题:安装包瘦身

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