IOS 项目包瘦身(一)

24 篇文章 0 订阅
19 篇文章 0 订阅

项目瘦身

一.日常的项目经过长时间的迭代,优化,重构之后,可能会积累一些用不到了的类,长久下去,会影响我们的包大小。
  • 主要删除项目中未使用的类。
  • 删除项目中未使用的资源文件
  • 压缩项目中大型资源文件
二. 首先针对未使用的类
使用脚本可以检测出项目中未使用的类。 (可评论咨询)
a. 检测原理: 未使用的类 = 项目中所有的类 - 项目中被引用的类 - 实现load方法的类 - 实现load方法的分类 - 项目中使用字符串表示的类 - 子类被引用它的父类 - (只被当作属性没用被使用的类)。
b.实现方式:使用 otool 分析 Mach-o

otool 介绍:Otool 可以提取并显示IOS下目标文件的相关信息,包括头部,加载命令,各个段,共享库,动态库等等。有强大的命令选项,一个强大的分析工具。

主要的命令有:如下

  1. 获取项目中所有类的符号集合 (otool -v -s __DATA __objc_classlist mach-o Path)
  2. 获取项目中所有被引用累符号集合 (otool -v -s __DATA __objc_classrefs mach-o Path)
  3. 获取项目所有调用load类符号集合(otool -v -s __DATA __objc_nlclslist mach-o Path)
  4. 通过类的符号,找到类名 (nm -nm mach-o Path)
  5. 查找当前所有类的父类和子类,如果父类在未使用列表,子类不在未使用列表,认为父类有被调用过 (otool -oV mach-o Path)
  6. 检测项目中的静态字符串,如果某个静态字符串在未使用类列表,删除当前类(otool -v -s __TEXT __cstring mach-o Path)
  7. 检测当前未使用的类是否使用了load方法,分类是否用了load方法 (otool -oV mach-o Path)
c.分析后的结果取差集

第一步:
分别找到所有类和引用类的集合,然后取差集,初步得到未使用类集合
第二步:
然后依次检查导出的未使用的类,避免误伤。

d .Mach-O 文件结构mach-o
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: iOS小游戏开发项目一般含源码。源码是指开发者编写的源代码,通常以程序员可读的形式呈现。对于购买iOS小游戏开发项目的用户来说,获得源码具有以下几个优势。 首先,源码使用户能够深入了解游戏的开发细节。通过阅读源码,用户可以了解到游戏的具体实现逻辑、算法和设计思路等。这有助于用户更好地理解游戏的运行机制,为游戏开发以及其他相关项目提供借鉴和学习的机会。 其次,源码使用户具有修改和定制游戏的能力。源码是开发者编写游戏的基础,用户可以根据自己的需求和喜好进行修改和定制。这括对游戏功能、界面设计、关卡设置等方面的调整,使游戏更符合用户的个性化需求和品味。 再次,源码为用户提供了学习iOS游戏开发的资源。对于有一定编程基础或对游戏开发感兴趣的用户来说,源码是学习iOS游戏开发的宝贵资料。用户可以通过研究源码,学习到iOS开发的技巧和实践经验,提高自己的编程能力。 最后,源码提供了技术支持和后期维护的便利。在购买iOS小游戏开发项目时,通常会获得技术支持和更新的服务。通过源码,用户可以更好地理解开发者提供的支持和更新内容,使得游戏的维护和升级更加便利。 综上所述,购买iOS小游戏开发项目含源码,对用户来说具有很多优势,既有助于深入了解游戏的开发细节,又有能力进行游戏的修改和定制,同时还提供了学习和技术支持的资源。 ### 回答2: iOS小游戏开发项目含源码,意味着该项目提供了游戏的开发源代码。这为开发者提供了一个学习和参考的机会,他们可以深入了解游戏的设计和编程逻辑。此外,源码还可以用于二次开发,即根据自己的需求进行修改和定制,以创建自己独特的游戏。 在iOS小游戏开发项目中,源码通常含了游戏的各个方面,例如游戏界面、角色动画、游戏逻辑等。这样,开发者可以学习和理解游戏开发的不同环节,并将其应用到自己的开发项目中。 源码还可以帮助开发者节省时间和精力。通过使用源码,开发者可以快速搭建起一个游戏框架,然后根据自己的需求进行修改和扩展。这样,他们可以更加专注于游戏的创意和玩法,而不需要从头开始编写代码。 另外,源码还可以提供一些最佳实践和编码规范,帮助开发者写出更高质量的代码。通过阅读和理解源码,开发者可以学习到一些优化和提升游戏性能的技巧,以及如何处理游戏中的各种问题和异常情况。 综上所述,iOS小游戏开发项目含源码是对开发者来说非常有价值的。它提供了学习和参考的机会,帮助开发者快速构建游戏框架,节省时间和精力,并提供一些最佳实践和编码规范。通过源码,开发者可以更好地理解游戏开发的不同环节,并将其应用到自己的开发项目中。 ### 回答3: iOS小游戏开发项目含源码是指一个完整的iOS小游戏开发项目,其中提供了游戏的源代码。源代码是指程序员编写的游戏逻辑和功能的代码,它是游戏开发过程中最核心的部分。 一个典型的iOS小游戏开发项目含源码可能括以下内容: 首先,游戏的项目文件。这些文件括游戏的整体结构和配置,例如Xcode项目文件和相关设置。开发者可以使用这些文件对游戏进行编辑、编译和运行。 其次,游戏的源代码文件。这些文件括游戏的各种功能和逻辑的实现。例如,游戏的界面、游戏中的角色、游戏规则等等。开发者可以通过阅读和修改这些源代码文件来定制和扩展游戏的功能。 此外,游戏可能还含资源文件,如图像、声音和动画等。这些资源为游戏提供了视觉和听觉上的丰富体验,开发者可以根据需要对这些资源进行修改和替换。 最后,项目可能还含相关的文档和说明。这些文档和说明可以帮助开发者更好地理解游戏的源码和项目的结构,以便于进行二次开发和维护。 总之,iOS小游戏开发项目含源码是为了让其他开发者能够更好地理解和学习游戏的开发过程,并有机会对游戏进行二次开发和定制。而对于游戏开发者来说,分享源码也可以为其获得更多的反馈和支持,提高游戏的质量和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值