美文网首页
iOS应用瘦身

iOS应用瘦身

作者: 街角仰望 | 来源:发表于2020-05-09 17:25 被阅读0次

App Thinning

三个组成部分: App Slicing、 Bitcode和OnDemand Resources

App Slicing(应用切片):

切片是为不同的目标设备创建和交付应用程序包变体的过程。从iOS9.0开始, 你跟往常一样往iTunes上提交ipa文件。 App Store将根据您的应用支持的设备来创建和提供不同的变体。图片资源根据其分辨率和设备系列进行切片。GPU资源根据设备功能进行切片。

用户在支持的设备上安装应用程序,应用商店会下载基于用户设备的应用程序变体。

On Demand Resources(随需应变资源):

按需资资源是一种资源,例如图像和声音,您可以使用标记关键字和组内请求。商店托管Apple服务器上的资源并为您管理下载,按需资源可实现更快的下载速度和更小的应用程序大小,从而改善首次发布体验。例如游戏应用可以将资源划分为游戏级别,并且仅当应用预期用户将移动到该级别时才请求下一级资源。同样只有当用户购买相应的应用购买时,应用才能请求应用内购买资源。

当不再需要资源并且磁盘空间不足时,操作系统会清除按需资源。如果您导出应用程序以在商店外进行测试或者分发,则必须自己托管按需资源。请注意不支持可执行的按需资源。

对于用户而言,按需资源在后台透明地工作,在用户浏览应用程序功能时根据需要提供资源。

如何设置On-Demand Resource请参考:https://www.jianshu.com/p/bacedd8a3ad8

Bitcode(位码):

Bitcode通过消除针对不同架构的优化,以及只下载相关优化,从而使下载变得更小。

位码是编译程序的中间表示形式。你上传到iTunes Connect中包含位码的应用程序将被编译并链接到商店。包括位码将允许苹果在未来重新优化你的应用程序二进制而不需要提交一个新的应用程序版本到App Store

Xcode默认启用Bitcode, 但有时集成三方SDK时,文档上要求关闭Bitcode。因此,是否开启该属性也要灵活决定。

综上可见, 苹果官方对于应用瘦身的机制已然相当完善, 开发者养成良好的编程习惯至关重要。

其他瘦身方式

  • 组件化,非组件化开发的项目,冗余庞杂在所难免
  • 删除废弃代码(废弃功能、界面等)
  • Use Asset Catalog图片资源管理(该管理方式会使用App Slicing
  • 无损压缩图片,删除废弃图片
    ImageOptim是一款优秀的无损图片压缩工具,它通过优化压缩参数,移除无用的文件元数据和不必要的颜色配置来实现图片的无损压缩。
    但发现实际生产的安装包体积没有变小,因为Xcode默认开启了Compress PNG Files,它并不是压缩图片的大小,而是将图片转换成iPhone能更方便处理的格式,加快处理速度,所以会增加图片的大小。把COMPRESS_PNG_FILESSTRIP_PNG_TEXT设置成了NO就能让项目中的PNG保持不变,达到压缩图片的效果。
    COMPRESS_PNG_FILES的作用可以参考:https://www.jianshu.com/p/811e9e90aeeb
    注意:工程目录下存在PNG图片才会出现COMPRESS_PNG_FILESSTRIP_PNG_TEXT,不是在Assets.xcassets目录下存在。

参考:
https://www.jianshu.com/p/18c3adbe7a57
https://www.jianshu.com/p/82db0f9458ee

相关文章

  • 漫谈iOS的应用瘦身

    漫谈iOS的应用瘦身

  • iOS应用程序瘦身的静态库解决方案

    iOS应用程序瘦身的静态库解决方案 iOS应用程序瘦身的静态库解决方案

  • iOS应用瘦身

    App Thinning 三个组成部分: App Slicing、 Bitcode和OnDemand Resour...

  • iOS应用瘦身

    1.Slicing针对设备机型创建相应的应用变体将代码转换为中间代码的方式,放在appstore。大部分的第三方库...

  • iOS逆向之ARM汇编

    上一篇文章地址: iOS逆向之应用瘦身 上一篇文章介绍了应用瘦身调试,提高开发效率. 平常开发中,我们要考虑应用开...

  • iOS代码瘦身实践

    iOS代码瘦身实践 iOS代码瘦身实践

  • iOS应用瘦身实践

    常见操作 1、删除项目中冗余的图片资源 工具-LSUnusedResources Tips:要选中 ignore ...

  • App Thinning

    App Thinning可以译成“应用瘦身”。指的是App store 和操作系统在安装iOS或者watchOS的...

  • iOS瘦身各种方案

    iOS瘦身之删除无用的mach-O文件 iOS微信安装包瘦身 基于clang插件的一种iOS包大小瘦身方案 以往C...

  • 漫谈iOS的应用瘦身

    前段时间部门开需求会,砍掉了应用中的部分需求.这简直就是给应用瘦身的良机!这个时候测试又提出来:安卓端的a...

网友评论

      本文标题:iOS应用瘦身

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