最近正好在关注瘦身相关技术文档,👍 |
MicroMessenger 这是标准的名称 |
引用:lcqingx 发表于 2016-03-11 01:53 就是通过otool找出2个集合,相减得出的地址再去LinkMap file找出类名称。<br>而且还要减去__objc_superrefs段。<br>还存在2种误报情况:<br>1.NSClassFromString(“ABCClass”)动态调用;<br>2.被间接继承的基类; |
引用:lcqingx 发表于 2016-03-11 01:52 你理解错了文章里的意思了:作者说要要把@2x、@3x的图片的删除,意思是在删除不带@2x或@3x尾巴的图片时,不要忘了把@2x、@3x的同名高清图也删除,而不是说app里不需要这两种图了。 |
楼主, 我最近在公司也是做的这么一个工作, 但是我的任务只是排布.o文件大小, 删除资源, 当然我是用的笨办法,关于下面这一段,读者看了还是不会操作, 你可再详细指导一下, 我的qq:914078998 多谢了。 结合LinkMap文件的__TEXT.__text,通过正则表达式([+|-][.+\s(.+&#41;]&#41;,我们可以提取当前可执行文件里所有objc类方法和实例方法(SelectorsAll)。再使用otool命令otool -v -s __DATA __objc_selrefs逆向__DATA.__objc_selrefs段,提取可执行文件里引用到的方法名(UsedSelectorsAll),我们可以大致分析出SelectorsAll里哪些方法是没有被引用的(SelectorsAll-UsedSelectorsAll)。注意,系统API的Protocol可能被列入无用方法名单里,如UITableViewDelegate的方法,我们只需要对这些Protocol里的方法加入白名单过滤即可。 |
另一种是通过otool命令逆向__DATA.__objc_classlist段和__DATA.__objc_classrefs段来获取当前所有oc类和被引用的oc类,两个集合相减就是无用oc类。 不知道这个咋操作??哭哭哭 |
WeChat的工程名竟然是MicroMessenger |
使用图片资源的时候不需要@2x和@3x的图片了么? 那是不是说现在的app里只要一套图片就可以了? 求解~~ |
iOS的安装包大小确实太夸张了,动不动一个IPA就是几十M,尤其需要同时兼容32位和64位,几乎是双倍大小。这确实很恶心。 |
这篇文章之前看过。可以借鉴的主要是编译选项的设置,这倒是可以试试。 其它涉及代码的删减和优化主要跟代码的实现联系一起,最好还是能具体项目具体分析。 安装包减重总归是有办法的,只要死磕它。 |