登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

查看: 381|回复: 6

ipa和apk简易瘦身,怎么把apk转换成ipa

[复制链接]

327

主题

710

帖子

2539

金钱

手工艺人

发表于 2018-10-8 12:37:25 | 显示全部楼层 |阅读模式

                    

        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中配置可以使用:

[Java] 查看源文件 复制代码
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

        

先了解下:(网上抄的)

[Java] 查看源文件 复制代码
arm64:iPhone6s|iphone6splus|iPhone6|iPhone6plus|iPhone5S|iPadAir|iPadmini2(iPadminiwithRetinaDisplay)
armv7s:iPhone5|iPhone5C|iPad4(iPadwithRetinaDisplay)
armv7:iPhone4|iPhone4S|iPad|iPad2|iPad3(TheNewiPad)|iPadmini|iPodTouch3G|iPodTouch4

        这是与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 学无止境, 严格要求自己。 中秋快乐!!!

        作者:蝴蝶之梦天使

        

链接:http://www.jianshu.com/p/1cc69a287aa5

        


               

294

主题

690

帖子

2310

金钱

手工艺人

发表于 2018-10-8 12:37:32 | 显示全部楼层
虽不明,但觉厉...

180

主题

559

帖子

1060

金钱

手工艺人

发表于 2018-10-8 12:37:58 | 显示全部楼层
小弟学习了~支持,支持

333

主题

717

帖子

2489

金钱

手工艺人

发表于 2018-10-8 12:38:01 | 显示全部楼层
感谢大神~

284

主题

675

帖子

2281

金钱

手工艺人

发表于 2018-10-8 12:38:13 | 显示全部楼层
写的真的很不错

312

主题

687

帖子

2438

金钱

手工艺人

发表于 2018-10-8 12:38:24 | 显示全部楼层
内容很好,棒棒哒

21

主题

7263

帖子

3092

金钱

手工艺人

发表于 2018-10-8 12:38:35 | 显示全部楼层
code4app好的内容真的很多~赞
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

关闭

每日头条

通过邮件订阅最新 Code4App 信息
上一条 /4 下一条

广告投放| 广东互联网违法和不良信息举报中心|中国互联网举报中心|Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表