首页 文章 精选 留言 我的

精选列表

搜索[CEL策略],共10000篇文章
优秀的个人博客,低调大师

【原/转】ios指令集以及基于指令集的app包压缩策略

iPhone指令集 本文所讲的内容都是围绕iPhone的CPU指令集(想了解ARM指令集的同学请点击 这里),现在先说说不同型号的iPhone都使用的是什么指令集: ARMv8/ARM64=iPhone5s,iPadAir,RetinaiPadMini ARMv7s=iPhone5,iPhone5c,iPad4 ARMv7=iPhone3GS,iPhone4,iPhone4S,iPod3G/4G/5G,iPad,iPad2,iPad3,iPadMini ARMv6=iPhone,iPhone3G,iPod1G/2G 设置你想支持的指令集 Xcode中关于生成二进制包指令集相关的设置项有以下三个: Architectures 官方文档说明: Space-separatedlistofidentifiers.Specifiesthearchitectures(ABIs,processormodels)towhichthebinaryistargeted.Whenthisbuildsettingspecifiesmorethanonearchitecture,thegeneratedbinarymaycontainobjectcodeforeachofthespecifiedarchitectures. 该编译选项指定了工程将被编译成支持哪些指令集,支持指令集是通过编译生成对应的二进制数据包实现的,如果支持的指令集数目有多个,就会编译出包含多个指令集代码的数据包,造成最终编译的包很大。 Valid Architectures 官方文档说明: Space-separatedlistofidentifiers.Specifiesthearchitecturesforwhichthebinarymaybebuilt.Duringthebuild,thislistisintersectedwiththevalueofARCHSbuildsetting;theresultinglistspecifiesthearchitecturesthebinarycanrunon.Iftheresultingarchitecturelistisempty,thetargetgeneratesnobinary. 该编译项指定可能支持的指令集, 该列表和Architectures列表的交集,将是Xcode最终生成二进制包所支持的指令集。 比如,你的Valid Architectures设置的支持arm指令集版本有:armv7/armv7s/arm64,对应的Architectures设置的支持arm指令集版本有:armv7s,这时Xcode只会生成一个armv7s指令集的二进制包。 Build Active Architecture Only 官方文档说明: Booleanvalue.Specifieswhethertheproductincludesonlyobjectcodeforthenativearchitecture. 该编译项用于设置是否只编译当前使用的设备对应的arm指令集。 当该选项设置成YES时,你连上一个armv7指令集的设备,就算你的Valid Architectures和Architectures都设置成armv7/armv7s/arm64,还是依然只会生成一个armv7指令集的二进制包。 当然该选项起作用的前提是你的Xcode必须成功连接了调试设备。如果你没有任何活跃设备,即Xcode没有成功连接调试设备,就算该设置项设置成YES依然还会编译Valid Architectures和Architectures指定的二进制包。 通常情况下,该编译选项在Debug模式都设成YES,Release模式都设成NO。 说明 指令集都是可以向下兼容的 比如,你的设备是armv7s指令集,那么它也可以兼容运行比armv7s版本低的指令集:armv7、armv6 xcode对armv6指令集的支持 Xcode4.5起不再支持armv6 如何选择支持的指令集 如果你的软件对安装包大小非常敏感,你可以减少安装包中的指令集数据包,而且这能达到立竿见影的效果。 我们的项目之前支持的指令集是armv7/armv7s,后来改成只支持armv7后,比原来小了10MB左右。目 前AppStore上的一些知名应用,比如百度地图、腾讯地图通过反汇编工具查看后,也都只支持armv7指令集。 根据向下兼容原则,armv7指令集的应用是可以正常在支持armv7s/arm64指令集的机器上运行的。 不过对于armv7s/arm64指令集设备来说,使用运行armv7应用是会有一定的性能损失,不过这种损失有多大缺乏权威统计数据,个人认为是不会影响用户体验的。 本文转自编程小翁博客园博客,原文链接:http://www.cnblogs.com/wengzilin/p/4053771.html,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册