App再瘦身

技术支持留言:http://www.lcpower.cn

从09年开始做iPhoneDev到现在刚好3年时间,那个时候还在北京的一家公司实习,从OC语法开始自学,你可以看到周围的人在用iPhone3GS,但没人懂OC、很少人用过Mac系统。一路过来有cocoachina、stackoverflow、iphonedevsdk等出名站点的帮助,收获不少。现在,自己正处在角色的转型,对自己这3年来的iPhone开发在不停的思考着,整理成文档,希望自己的经验能够对CC朋友有所帮助。有错误的地方和任何问题,请毫不犹豫的指出。


这个帖子整理App大小优化的经验。


之前看过阿里UED的一篇文章“App瘦身记”,是从UED的角度来看待减小App大小,前面3点是建议,后面2点是瘦身办法。

我来说一下我的经验。大致的思路是:分析Xcodebuild目录下xx.app的资源,按从大到小排序,重点优化大文件。这个方法效果最好,能够让app瘦身50%以上,也就是减小用户一半的下载时间。


查看生成的app大小

Debug和Release编译模式产生的文件大小是不一样的,Debug模式生成的xx.app要大些。建议用Release模式生成的xx.app来分析,这个是最接近提交审核的IAP。




产品上线后显示在AppStore上程序的大小是经过压缩的。可以手动压缩xx.app,查看生成的xx.zip的大小,这个是最接近产品上线后的大小。


产品上线后iTunes显示的大小:





开始瘦身

右键点击xx.app查看包的内容,按大小排序。







可以看到最占用空间的那些文件,一般是png文件占用的空间比较大,特别是iPad3视网膜的启动画面,可以大到7MB!如果app支持横竖屏,那么启动画面文件的大小又增加1倍。


这里列出常见的大文件:

• 可执行文件

• 启动画面(比如:iPad 3 Retina)

• 背景图片

• 阿里UED里提到的Workthrough (这个在国内app很常见)

• 第三方库的bundle包、说明文件

• 音效素材(比如:wav格式文件)


优化方法有:

• 不需要透明的地方,使用jpg而不是png

比如:背景图片、Workthrough、bundle里面的png文件,jpg压缩比使用0.6左右,在不影响视觉效果的情况下尽可能的小;


• 不使用Default.png,使用Default.jpg

苹果限制启动画面只能是png格式,iPad3 Retina的png文件往往都很大。这种情况下可以在app启动时显示Default.jpg,等到载入完毕后再显示首页。该方式的缺点是启动时会有黑屏然后才显示Default.jpg;优点是大大减小app大小,以及可自定义启动画面。比如UC浏览器HD在伦敦奥运会期间更换的启动画面;


• 素材做成可拉伸,类似Android的.9

界面导航条背景、弹框背景、按钮等都可以考虑用拉伸素材;


• 去除不必要的文件

一般开发时都有统一的通用库,方便其它工程调用,节省开发时间。把常用的库集成到通用库里会造成通用库体积变大,应该注意不必要的资源不要添加进去。比如:在发布的时候,TestFlight可以不用编译;第三方库的说明文件不要引入工程,Flurry的txt、pdf文件;如果付费版本不需要广告,那么广告SDK不要集成到通用库,只在单独的工程里引用;


• 优化png, jpg素材

推荐使用ImageOptim,在准备提交审核前,使用该工具优化所有png, jpg素材。可以减小~20%左右的图片大小。但png素材在Xcode编译后体积跟优化前的差不多,这个应该跟Xcode的优化方式有关。更新:需要关掉Xcode的png优化,ImageOptim优化的效果才明显,参考官方说明:Xcode's built-in (de)optimization


• 音视频素材使用经过压缩的格式

wav的音频格式生成的文件比较大,可以使用苹果推荐的caf格式代替。关于如何选择音频压缩格式可以参考这篇文章:Audio101 for iPhone Developers: File and Data Formats


在第一次产品提交审核前,可以过一下上面提到的方法,减小App大小。我们的一个产品PhotoCool 1.2版本的大小是22.4MB,在1.3版本使用以上方法进行优化,优化后只有13.1MB,缩小了41.5%!下载速度快了,用户会更高兴的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
数据来源:中经数据库 主要指标110多个(全部都是纯粹的 市辖区 指标),大致是: GDP GDP增速 第一产业增加值占GDP比重 第二产业增加值占GDP比重 第三产业增加值占GDP比重 人均GDP 社会消费品零售总额 固定资产投资(不含农户) 新设外商投资企业数_外商直接投资 实际利用外资金额(美元) 一般公共预算收入 一般公共预算支出 一般公共预算支出_教育 一般公共预算支出_科学技术 金融机构人民币各项存款余额_个人储蓄存款 金融机构人民币各项存款余额 金融机构人民币各项贷款余额 规模以上工业企业单位数 规模以上工业企业单位数_内资企业 规模以上工业企业单位数_港澳台商投资企业 规模以上工业企业单位数_外商投资企业 规模以上工业总产值 规模以上工业总产值_内资企业 规模以上工业总产值_港澳台商投资企业 规模以上工业总产值_外商投资企业 规模以上工业企业流动资产合计 规模以上工业企业固定资产合计 规模以上工业企业利润总额 规模以上工业企业应交增值税 规模以上工业企业主营业务税金及附加 户籍人口数 年均户籍人口数 户籍人口自然增长率 第一产业就业人员占全部城镇单位就业人员比重 第二产业就业人员占全部城镇单位就业人员比重 第三产业就业人员占全部城镇单位就业人员比重 城镇非私营单位就业人员数 城镇非私营单位就业人员数_第一产业 城镇非私营单位就业人员数_第二产业 城镇非私营单位就业人员数_第三产业 城镇非私营单位就业人员数_农、林、牧、渔业 城镇非私营单位就业人员数_采矿业 城镇非私营单位就业人员数_制造业 城镇非私营单位就业人员数_电力、热力、燃气及水生产和供应业 城镇非私营单位就业人员数_建筑业 城镇非私营单位就业人员数_批发和零售业 城镇非私营单位就业人员数_交通运输、仓储和邮政业 城镇非私营单位就业人员数_住宿和餐饮业 城镇非私营单位就业人员数_信息传输、软件和信息技术服务业 城镇非私营单位就业人员数_金融业 城镇非私营单位就业人员数_房地产业 城镇非私营单位就业人员数_租赁和商务服务业 城镇非私营单位就业人员数_科学研究和技术服务业 城镇非私营单位就业人员数_水利、环境和公共设施管理业 城镇非私营单位就业人员数_居民服务、修理和其他服务业 城镇非私营单位就业人员数_教育 城镇非私营单位就业人员数_卫生和社会工作 城镇非私营单位就业人员数_文化、体育和娱乐业 城镇非私营单位就业人员数_公共管理、社会保障和社会组织 城镇非私营单位在岗职工平均人数 城镇就业人员数_私营企业和个体 城镇非私营单位在岗职工工资总额 城镇非私营单位在岗职工平均工资 城镇登记失业人员数 建成区面积 建设用地面积 建设用地面积_居住用地 液化石油气供气总量 液化石油气供气总量_居民家庭 人工煤气、天然气供气总量 人工煤气、天然气供气总量_居民家庭 液化石油气用气人口 人工煤气、天然气用气人口 城市公共汽电车运营车辆数 城市出租汽车运营车辆数 城市公共汽电车客运总量 道路面积 排水管道长度 建成区绿化覆盖面积 建成区绿化覆盖率 绿地面积 公园绿地面积 维护建设资金支出 土地面积 生活用水供水量 供水总量 全社会用电量 城乡居民生活用电量 工业生产用电量 房地产开发投资 房地产开发投资_住宅 限额以上批发和零售业法人单位数 限额以上批发和零售业商品销售总额 普通中学学校数 中等职业教育学校数 普通小学学校数 普通高等学校专任教师数 普通中学专任教师数 中等职业教育专任教师数 普通小学专任教师数 普通高等学校在校生数 普通中学在校生数 中等职业教育在校生数 普通小学在校生数 电视节目综合人口覆盖率 公共图书馆总藏量_图书 医疗卫生机构数_医院和卫生院 卫生人员数_执业(助理)医师 医疗卫生机构床位数_医院和卫生院 城镇职工基本养老保险参保人数 职工基本医疗保险参保人数 失业保险参保人数

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值