ipa和apk简易瘦身
图片来之网络
Material Design风格
apk 瘦身
ipa 瘦身
一、原因
新版本发布后发现安装包apk和ipa各添加了10M之多。天啊噜。这是新添加加了多少的功能啊。默默的担负起瘦身的工作。查代码提交,查三方库和二方库的使用,查图片,查配置,查打包方式。
大概确认是由于公司的UI风格开始使用Material Design风格,各种圆角,各种阴影,各种悬浮,各种神乎其乎的Style。引入了上百张图片导致的。
而后开始查找各种瘦身的简易方法,解决方便,风险小,收益大。
二、 apk 瘦身
1. abiFilters
在分析apk包后,看到包大小较大的除了class执行文件外,还有就是各种so库和图片了。那么针对so库,可以进行一次放弃的选择。
先理解下Android设施的CPU类型(从网络抄的)
- armeabiv-v7a: 第7代及以上的 ARM 解决器。2011年5月以后的生产的大部分Android设施都使用它.
- arm64-v8a: 第8代、64位ARM解决器,很少设施,三星 Galaxy S6是其中之一。
- armeabi: 第5代、第6代的ARM解决器,早期的手机用的比较多。
- x86: 平板、模拟器用得比较多。
- x86_64: 64位的平板。
可以显著的知道x86和x86_64基本没人使用,可以放弃了。
那么Android Studio中配置可以使用:
ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8a" }so库减少了2部分,包大小直接减少了2/5。 效果明显。
2. 图片瘦身
针对为了美观和效果,而资源文件较多,并且很多图片使用圆角,导致不能使用jpeg的样式,只能使用png。从而很多图片的大小在几百K大小。
此时使用神奇PPDuck。 妥妥的。
亲测,1.1M的图片,压缩80%,直接成为300K。 将所有图片进行一次瘦身,apk包减少好多好多。心情舒畅。
iOS的Assets.xcassets无效,肯定要注意。任何压缩对于Xcode都是无效的。
三、ipa瘦身
1. bitcode
设置 Build Settings -> Enable Bitcode 为 Yes
使用bitcode后,会根据不同设施打包出不同的指定包。比方iPhone 8 plus,那么所有的图片仅仅包含3x图片,而不需要包含2x图片。包大小缩小约1/2。 ^_^
不论任何情况,当前的环境条件下肯定要支持bitcode。假如第三方库不支持,将源码下载而后再编译。而后即可以支持bitcode。
2. Valid Architectures
设置 Build Settings -> Valid Architectures 为 arm64 armv7s
先理解下:(网上抄的)
arm64:iPhone6s | iphone6s plus|iPhone6| iPhone6 plus|iPhone5S | iPad Air| iPad mini2(iPad mini with Retina Display)armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display)armv7:iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4这是与Android的abiFilters作用一样,编译不同CPU的指令。假如支持的类型少,那么打出来的包也变小了。
按现在市场上对iPhone4S及以下的设施占有率应该是万分之一了。SO 可以选择放弃了。当然iPhone5 和 5C的也不是很多,准则也可以放弃了。(看领导的心情吧)
假如删除armv7,那么包大小直接减少了三分之一,爽不爽。
提醒: 假如你的Deployment Target 已经9.0 或者10.0 那么删除armv7可以毫无压力了。
3. 图片
Android使用的PPDuck神器,在Xcode中无效。所以假如有大图的话,使用jpeg来实现吧。
图片不能放到Assets.xcassets中,需要放到工程目录下,加载图片使用:
NSString *path = [[NSBundle mainBundle] pathForResource:@"home_carousel" ofType:@"jpeg"]; img1.image = [UIImage imageWithContentsOfFile:path];当图片大于400K或者者300K,觉得即可以使用此方案。
总结
- abiFilters “armeabi”, “armeabi-v7a”, “arm64-v8a”
- PPDuck
- bitcode yes
- Valid Architectures arm64 armv7s
- jpeg
轻松愉快!!!
// END 学无止境, 严格要求自己。 中秋快乐!!!
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » ipa和apk简易瘦身