事实真的如此么?为什么iOS的APP会比安卓的大那么多?下面我们就来说道说道。
1、过去的说法
iOS要准备iPhone、iPad两款产品的分辨率图像资源,所以APP占用巨大,但Android对图像的处理要求不高。过去这样理论可能成立,但是安卓已经发展到8.0版本了,现在这个命题是个伪命题。
2、科学分析
既然第一种观点现在不成立,那么我就科学分析下。
首先,进行安装文件分析
Android是apk,iOS是ipa。
两个都是压缩包文件,但是两者的压缩率是不同的,比如安卓版微信apk文件,在Windows系统上大小为44.1MB,解压之后大小为93.7M,而iOS版的微信ipa文件大小为145MB,解压之后为186MB。所以,apk的压缩率是要远大于ipa的。
所以,我们可以得出结论:虽然apk未解压时比ipa小很多,但是解压后这个差距就缩短了。当然不可忽略的是,iOS的APP确是要比Android大很多。
然后,我们再来看看安装机制
从Android 5.0开始,Android开始采用ART虚拟机,apk文件安装到系统的过程中会进行预编译,把apk中的dex文件编译成oat文件,把字节码经过JIT即时编译器转换为机器识别码,所以apk安装包中有关程序部分的文件更像是一堆代码,占用空间较小。
而iOS呢?众多周知,iOS最早是基于OS X同源开发的,所以APP的安装方式也很相似,简单的说,iOS的APP本身就是一个大文件,你从APP Store下载安装到iPhone的过程,更像是一个复制粘贴的过程。
所以,Android的安装机制导致了,无论你APP文件描述上的大小,它永远不代表安装到手机上的大小。而iOS呢,安装文件描述多大,安装完基本也就那么大。
总结来看,本期课堂提出的“为什么iOS上APP比Android大几倍”其实是个伪问题,真实的情况是:
- App Store上标注的APP大小是安装之后的大小,Android应用商店大多只是显示安装文件的大小
- Android安装APP后,占用空间其实和iOS版相差不大
安卓一刀切,安卓机型太多太杂,开发者很少针对各款机型进行适配,每个机子都是针对某个分辨率来套用,而苹果不一样,机型很少,所以app准备了几套分辨率的app,工作量小而且app的质量也高。