IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> iOS开发APP包体积优化瘦身 -> 正文阅读

[移动开发]iOS开发APP包体积优化瘦身

?

[TOC]


## APP包体积优化

### 一、资源类

#### 1.图片类型

png:iOS系统推荐使用,使用assets管理,下载的安装包里,只会包含一套2x或是3x的资源。

svg: 矢量图,相对较小,大图可尝试替换成svg。

Iconfont:纯色图标可采用,保真缩放,体积小,参考https://github.com/JohnWong/IconFont;

#### 2.压缩资源

图片可经过[tinypng](https://tinypng.com)压缩,官方提供photoshop插件

原理是:把相似像素的24bit位用8bit位来表示,并且移除了不必要的元数据,是有损压缩,不过肉眼很难看出来。

~~ImageOption~~

Compress PNG Files过程中会将png图片压缩,是否与:冲突待验证。。。。



#### 3.视频/音频/大图放在服务器



#### 4.夜间模式适配

采用tint  color 替代两张切图方案;

#### 5.On Demand Resource

按需加载资源,部分资源可托管到服务器,需要用的时候再下载;

使用方法文档:https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/On_Demand_Resources_Guide/index.html#//apple_ref/doc/uid/TP40015083-CH2-SW1

### 二、代码类

#### 1. 删除无用\重复资源和代码

使用[LSUnusedResoures](https://github.com/tinymind/LSUnusedResources)或[FenNiao](https://github.com/onevcat/FengNiao)排查无用资源

使用[fdupes](https://github.com/adrianlopezroche/fdupes)扫描重复资源

#### 2.第三方库

整合删除功能相似相近的第三方库,不要为了一个小功能而引入整个库。对第三方库的使用进行严格的准入评估,避免滥用。



### 三、编译选项

#### enable bitcode

bitcode允许苹果在后期重新优化程序的二进制文件而不需要重新提交版本,如果App支持bitcode,App Bundle(项目中所有的target)中的所有的Apps和frameworks都需要包含Bitcode。

#### Strip symble information

#### Dead code stripping

默认开启,C/C++/Swift 等静态语言编译器会在 link 的时候移除未使用的代码,但是对于 Objective-C 等动态语言是无效的。

#### Assert Catalog Complier

在Optimization优化设置项有三个选项,空、time和Space。默认是空。

Optimization space可以优化包体积

#### Apple Clang - Code Generation

##### Optimization Level

Optimization Level编译参数决定了程序在编译过程中的两个指标——编译速度和内存的占用,也决定了编译之后可执行结果的两个指标——速度和文件大小。Optimization Level分为7个级别-O0、- O1、-O2、-O3、-Os、-Ofast,-Oz,一般debug为-O0,release为-Os

##### Debug Information Level

默认值不需要修改

##### Generate Debug Symbols

默认值不需要修改,表示打包时是否生产symbol文件,关闭后虽然会减少包体积,但是会影响定位崩溃;

#### LTO(Link-Time Optimization)

参考文档:[LTO开启后进行了那些优化](https://www.jianshu.com/p/58fef052291a)

?

fdupes - 查找重复资源文件 - Plucky - 博客园

iOS 瘦身 - 简书

无用图片资源的删除。【挺好用的】

? ? ?工具:LSUnusedResources(https://github.com/tinymind/LSUnusedResources

Xcode工程中废弃切图文件检测工具LSUnusedResources - 简书

iOS项目清除图片之LSUnusedResources的使用 - 简书

https://www.jianshu.com/p/f1a113a27537?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

fdupes - 查找重复资源文件 - Plucky - 博客园

Linux下使用fdupes删除指定目录下重复文件 开源地理空间基金会中文分会 开放地理空间实验室

fdupes - 查找重复资源文件 - Plucky - 博客园

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-11-10 12:30:55  更:2021-11-10 12:32:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:42:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码