减小App包的大小

检查.ipa文件

首先获得app的ipa文件。

将ipa文件的后缀改为.zip,解压得到包内容。

查看资源文件哪个最大。然后试着对最大的文件就行处理


图片

尽量使用8-bit图片

使用8-bit的PNG图片,比32-bit的图片能减少4倍的压缩率。由于8-bit的图片支持最多256种不同的颜色,所以8-bit的图片一般只应该用于一小部分的颜色图片。例如灰度图片最好使用8-bit。

针对32-bit的图片尽量使用高压缩的比率

利用Adobe Photoshop的Save For Web可以减小JPEG和PNG的图片大小。在Xcode中,默认情况下,会自动的使用pngcrush来压缩.png图片。

使用压缩工具进行处理:

推荐使用ImageOptim对图片进行压缩,实验证明该tools。

编译选项

将build setting中的Optimization Level设置为Fastest, Smallest [-Os]; 将build setting 中的Strip Debug Symbols During Copy设置为YES(COPY_PHASE_STRIP = YES),这样可以减小编译出二进制文件的尺寸。这里提到的这些设置在Xcode工程中对于Release的配置是默认的。

警告:这些设置会让你的程序很难debug。在一般开发环境build中不建议这样设置。

减小指令集的大小:

目前指令集有以下几种:

armv6 --> iPhone  iPhone2 iPhone3G 第一二代的iPod Touch

armv7--> iPhone4 iPhone4s

armv7s --> iPhone5  iPhone5c

armv64 --> iPhone5s

机器对指令集的支持是向下兼容,因此iPhone5s是可以在armv7的指令集上运行,只是效率没有那么高。你的设备是armv7s指令集,那么它也可以兼容运行比armv7s版本低的指令集:armv7、armv6

========================================================

名词解释:

Architecture:该编译选项是为了指定工程将被编译成哪些指令集,支持指令集是通过编译生成相应的二进制数据包实现的,如果支持的指令集数目有多个,就会编译出包含多个指令集代码的数据包,造成最终编译的包很大。

Valid architectures :该编译项指定可能支持的指令集,该列表和Architectures列表的交集,将是XCode最终生成的二进制包所支持的指令集。

Build Active Architecture Only :该编译项用于设置是否只编译当前使用的设备对应的arm指令集。

当该选项设置成YES时,你连上一个armv7指令集的设备,就算你的Valid Architectures和Architectures都设置成armv7/armv7s/arm64,还是依然只会生成一个armv7指令集的二进制包。

当然该选项起作用的前提是你的Xcode必须成功连接了调试设备。如果你没有任何活跃设备,即Xcode没有成功连接调试设备,就算该设置项设置成YES依然还会编译Valid Architectures和Architectures指定的二进制包。
通常情况下,该编译选项在 Debug模式都设成YES,Release模式都设成NO。

如果你的软件对安装包大小非常敏感,你可以减少安装包中的指令集数据包,而且这能达到立竿见影的效果
我们的项目之前支持的指令集是armv7/armv7s,后来改成只支持armv7后,比原来小了10MB左右。目前AppStore上的一些知名应用,比如百度地图、腾讯地图通过反汇编工具查看后,也都只支持armv7指令集。
不过对于armv7s/arm64指令集设备来说,使用运行armv7应用是会有一定的性能损失,不过这种损失有多大缺乏权威统计数据,个人认为是不会影响用户体验的







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于您提到的app.js打为40M的问题,我认为可能存在一些误解或错误。 根据您提供的引用内容,最初打的vendors.app.js大小为2.8M,最终打时为1.8M,并且您也提到了对于用户而言,已经实现了秒开。这表明在优化后,打的JS文件大小已经得到了减小,并且用户可以快速加载您的网站。 另外,您还提到了一些关于打文件大小优化的方案。其中括使用懒加载来延迟加载特定的模块,这可以减少初始加载时的文件大小。而且,通过使用webpack等工具,您还可以进一步优化您的打文件的大小,例如使用代码分割和压缩等技术。 因此,根据您提供的信息,您的app.js打大小并不是40M,而是经过优化处理后的1.8M大小。如果您仍然遇到其他问题或需要更多帮助,请提供更多详细信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Nuxt打vendors.app.js很大,Nuxt打优化。【Nuxt打问题解决】](https://blog.csdn.net/Tomwildboar/article/details/103186289)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [vue打文件vendor.js或app.js过大,如何优化减小体积?](https://blog.csdn.net/cream66/article/details/104769696)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值