Apple官方资源瘦身方案ODR(一):初见

2023-10-29 19:59

本文主要是介绍Apple官方资源瘦身方案ODR(一):初见,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Hi 👋

  • Wechat: RyukieW
  • 📦 技术文章归档
  • 🐙 Github
我的个人项目扫雷Elic 无尽天梯梦见账本
类型游戏财务
AppStoreElicUmemi

前言

应用瘦身是个老生常谈的话题。苹果其实对于应用瘦身也有着自己的一些说明。本文就将结合官方文档进行阐述。

一、 什么是应用瘦身?

iOS, tvOS, watchOSAppStore 和操作系统根据用户设备和操作系统的性能对App进行裁剪优化。这个优化的过程就是 应用瘦身

  • 你可以用最少的空间创建功能齐全持续更新的应用
  • 更快的下载速度
  • 更多的空间安装其他App
  • 带来更好的用户体验

二、 剪切 Slicing (iOS, tvOS)

Slicing 是针对不同设备不同系统创建部署变体应用包的过程。每个变体只包含当前设备和操作系统所需要的资源和可执行文件。你只需要打包上传完整版本的应用到 AppConnectAppStore 将会根据不同的设备及操作系统版本创建分发不同的变体。

asset 储存图片资源以便 AppStore 为不同的变体选择资源加载。当用户安装应用时,将会下载安装一个针对其设备系统版本的变体。

Xcode 将会在本地 buildrun 的时候模拟进行 Slicing。当你 archive 的时候 Xcode 将会包含所有构建版本并允许你导出变体包。

下图很好的演示了这个过程

请添加图片描述

思考

这里提到 asset 会根据架构不同进行资源加载,所以我们平时不要把资源直接放到 Bundle 中,而跳过了这个优化的过程。

三、 Bitcode

Bitcode 是编译器的一层间接。你上传到 AppConnect 的打开了BitcodeApp 将会在 AppStore编译链接。包含了 Bitcode 将会使

这篇关于Apple官方资源瘦身方案ODR(一):初见的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/303022

相关文章

Rust中的Drop特性之解读自动化资源清理的魔法

《Rust中的Drop特性之解读自动化资源清理的魔法》Rust通过Drop特性实现了自动清理机制,确保资源在对象超出作用域时自动释放,避免了手动管理资源时可能出现的内存泄漏或双重释放问题,智能指针如B... 目录自动清理机制:Rust 的析构函数提前释放资源:std::mem::drop android的妙

Redis 多规则限流和防重复提交方案实现小结

《Redis多规则限流和防重复提交方案实现小结》本文主要介绍了Redis多规则限流和防重复提交方案实现小结,包括使用String结构和Zset结构来记录用户IP的访问次数,具有一定的参考价值,感兴趣... 目录一:使用 String 结构记录固定时间段内某用户 IP 访问某接口的次数二:使用 Zset 进行

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每

解读静态资源访问static-locations和static-path-pattern

《解读静态资源访问static-locations和static-path-pattern》本文主要介绍了SpringBoot中静态资源的配置和访问方式,包括静态资源的默认前缀、默认地址、目录结构、访... 目录静态资源访问static-locations和static-path-pattern静态资源配置

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

Mybatis官方生成器的使用方式

《Mybatis官方生成器的使用方式》本文详细介绍了MyBatisGenerator(MBG)的使用方法,通过实际代码示例展示了如何配置Maven插件来自动化生成MyBatis项目所需的实体类、Map... 目录1. MyBATis Generator 简介2. MyBatis Generator 的功能3

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

Java解析JSON的六种方案

《Java解析JSON的六种方案》这篇文章介绍了6种JSON解析方案,包括Jackson、Gson、FastJSON、JsonPath、、手动解析,分别阐述了它们的功能特点、代码示例、高级功能、优缺点... 目录前言1. 使用 Jackson:业界标配功能特点代码示例高级功能优缺点2. 使用 Gson:轻量

Redis KEYS查询大批量数据替代方案

《RedisKEYS查询大批量数据替代方案》在使用Redis时,KEYS命令虽然简单直接,但其全表扫描的特性在处理大规模数据时会导致性能问题,甚至可能阻塞Redis服务,本文将介绍SCAN命令、有序... 目录前言KEYS命令问题背景替代方案1.使用 SCAN 命令2. 使用有序集合(Sorted Set)

MyBatis延迟加载的处理方案

《MyBatis延迟加载的处理方案》MyBatis支持延迟加载(LazyLoading),允许在需要数据时才从数据库加载,而不是在查询结果第一次返回时就立即加载所有数据,延迟加载的核心思想是,将关联对... 目录MyBATis如何处理延迟加载?延迟加载的原理1. 开启延迟加载2. 延迟加载的配置2.1 使用