其他分享
首页 > 其他分享> > iOS项目的瘦身与加快编译速度

iOS项目的瘦身与加快编译速度

作者:互联网

随着开发的不断进行,我们的项目总会变得越来越大,而过大的占用用户的内存空间会对用户的留存造成一定的影响,所以我们总是需要找到方案来减小我们的包大小。在我们努力的同时苹果也在为此努力着,下文的第一部分主要介绍的就是官方文档和个人经验总结出的一些关于包瘦身的方案。此外项目变大后,我们在开发时每次启动程序的编译时间都会变长,这对于开发者而言是效率极低的一件事,文章的第二部分主要介绍如何在编译速度的角度去优化程序。

项目瘦身

这一功能同样是在 iOS 9 之后推出,可以在 Xcode 7 以上版本中在 Build Setting -> Enable Bitcode ( ENABLE_BITCODE ) 先完成对应的设置。这样做的好处在于官方会自动的帮我们去做一些优化,查看了一些国外的文章大致的猜想是苹果在设备安装应用的时候,会根据设备的 CPU 架构自动的去下发与架构相匹配的一份二进制文件,而生成的其它 CPU 架构的二进制文件则不被下发。这样就可以让我们的包体积大大减小,我们的项目可能会在 iphone4s 、 iphones 5 、iphone 6 上进行使用。如果我们用 iphone6 去下载,那么只会给我们一份 arm 64 架构下编译文件,而不会在下载 armv 7 和 armv 7s下的编译文件。这样对我们包体积的优化还是很有必要的。
Bitcode 相关文章链接(自备***)

我们一般在开发过程中遇到的一些界面UI图片都是放在本地的Asserts文件夹中的,所以随着项目的扩充,我们可能会有非常多的资源文件,而此时包体积会变得非常的大。为了解决这一问题,苹果在 iOS 9 中同样提出了对应的解决方案。我们可以把一些不常用的界面的 UI 存储在苹果的服务器上,第一次进入界面的时候,会去服务器加载相关的图片,然后将图片下载到本地,下次进入该页面会从本地读取资源文件。这样的方案听起来为我们解决了包体积过大的问题。

但是这样的解决方案有如下的缺陷。

如果还有其它较好的解决方案,还希望小伙伴给我留言。此外关于前三部分的介绍,也可以查看相关的文档。文档地址

编译速度优化

随着项目一次次的功能的增加,各种框架的引入,我们的项目变大的同时,我们每次在模拟器或者真机上运行的时候,执行缓慢的问题对我们日常开发的效率造成了很大的影响,针对这样的问题,我们就要对项目进行优化,加快编译速度。这时就要了解程序的编译原理。对于编译的原理,我觉得《程序是如何跑起来的》一书,对于这一点的介绍浅显易懂,有兴趣的小伙伴可以买一本,读一下知道编译器是如何进行编译的也就能找到一些加快编译速度的方案。

在 Xcode 6 之前创建一个新的工程是会自带一个 .pch 文件的,但是后来苹果把这个自带的功能删除了,就是因为有很多的开发者不能正确的使用它。导致程序的编译速度变慢。所以这里会介绍介绍如何正确的进行使用。其实 .pch 文件正确使用是可以加快程序的编译速度的。
- 首先,在 .pch 文件中不要导入宏定义,因为我们都知道宏定义是去匹配的机制,如果全局匹配,无疑很耗费时间,所以在 .pch 文件中一定不要做全局的宏定义。将宏定义最好写道每一部分的头文件中。

与此相关的文章可以参考 stackoverflow 相关回答

以上就是在编译速度上进行优化的一些个人建议。

文中出现的错误烦请您指出,我会第一时间进行修改。



作者:Edgarss
链接:https://www.jianshu.com/p/4f63f2f92f08
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:文件,架构,iOS,编译,pch,瘦身,我们
来源: https://blog.51cto.com/u_4955660/2842863