问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

为什么iOS的APP比安卓大好几倍?

发布网友 发布时间:2022-04-21 07:00

我来回答

1个回答

热心网友 时间:2023-11-07 00:02

大家如果细心的话,可能会发现在Android的应用商店和iOS的App Store上,同一个APP,iOS版标注的APP所需容量大小要远比Android大好几倍,比如一个QQ,在Google Play Store上只有34MB,但在App Store上居然有231MB之巨,这使得不少用户以为iOS浪费存储空间,甚至一些阴谋论都出来了。

那么为什么会出现这种情况呢?

这问题放在过去,有个流行的说法是,由于苹果的iPhone、iPad有好几种不同的屏幕分辨率,所以iOS的APP里面包含了几套图像资源,导致了App占用巨大,而Android系统中对图像的处理要求不高,所以不同设备用了通用的资源,APP自然就小了。

这个解释虽然有一定的道理,但放在今时今日就不大成立了。所以下面要讲讲两个系统的APP文件大小有什么不一样。

安装文件分析

我们都知道,在Android中的安装文件类型为apk,iOS为ipa,其实简单来讲,这两个安装文件都是个压缩包。

以微信APP的apk(版本为6.5.10)为例,原文件大小在Windows上(NTFS文件系统)显示为44.1MB,经过WinRAR解压缩后占用空间为93.7MB。 而微信APP的ipa(版本为6.5.11)原文件大小为145MB,解压缩后占用186MB。

咋一看,ipa无论解压缩都确实要比apk大上不少,那来看看两个系统的安装文件里面包含了什么。

微信apk对比ipa文件大小

一个apk文件解压缩后,主要有assets、lib、META-INF、r、AndroidManifest.xml、classes.dex、resources.arsc这几个文件和文件夹。

微信apk内含文件和文件夹

当然这里不是编程课堂,所以只讲下这些文件中占容量最大的一般是assets目录、lib目录、res目录和classes.dex文件。

assets目录存放静态文件,app需要用到一些音效、字体、表情包等都在此。

lib目录为依赖库文件,现在的apk大多都是包含armeabi的lib库,如果apk兼容x86,还会有x86的依赖库,这样这个目录就会更大一点了。

r即res、resource目录,主要存放资源文件,如图片、影像文件。

classes.dex文件则是Android中Dalvik虚拟机的可执行文件,由JAVA下的class文件编译而来。

iOS的ipa安装包则相对简单一些,主要文件夹为Payload,在Windows上会显示里面有一个APP名字命名的文件夹,如微信为WeChat.app,包括了APP所有需要的执行和资源文件。

微信ipa主要文件夹为WeChat.app

对比两个安装文件,微信APP的主执行文件为WeChat,文件大小为132MB,其它文件其实只有54MB。Android的主执行文件包括classes.dex文件和lib目录,微信APP里面这些文件大小为52.6MB,而其它文件为41.7MB。

iOS版微信主执行文件大小

Android版微信主执行文件大小

由此可见,两个系统的同样一个APP,安装包里面除开主要的执行文件,其它资源文件占用空间大小相差不多,并非是文章开头所说的不同苹果设备需要不同的套图,导致安装文件巨大。

但仅从安装文件来看,iOS的APP确实要比Android版的大好几倍,那下面还要讲到两个系统的APP安装机制。

APP安装机制

以前Android主要采用Dalvik虚拟机,执行apk中的classes.dex文件,但后来为了提高APP启动和运行速度。从4.4.4版本开始,Android换用了ART虚拟机,apk安装到系统的过程中会进行预编译,把apk中的dex文件编译成oat文件,把字节码经过JIT即时编译器转换为机器识别码,所以apk安装包中有关程序部分的文件更像是一堆代码,占用空间较小。

iOS则不一样,由于iOS最早是基于mac电脑上的OS X同源开发,所以在APP的安装方式上也相似,简单来说iOS的APP本身就是一个大文件夹,类似Windows上解压即用的绿色软件,当你从App Store中下载安装到iPhone上,更像是一个复制文件的过程。

Android的安装机制,使得APP安装文件的大小,不代表安装到手机上之后的大小,而在iOS上则是安装文件有多大,安装完后基本上也是多大。那么实际情况如何呢?

实测APP安装后占用空间

这里在基于Android 7.1.2的Lineage 14.1和iOS 10.3.2系统上,对比微信和网易云音乐两个APP在应用商店上文件大小和安装后文件大小。

在应用商店上,微信APP的标注大小仅为44.1MB,但事实上APP安装完成后,查看大小却增大到104MB。网易云音乐APP标注大小为29.8MB,安装后为54.33MB。

Android上微信

Android上网易云音乐

App Store上微信APP的标注大小为123MB,下载安装完后为121.3MB,应用大小却变小了,网易云音乐APP同样更是标注103MB,安装完成后为89.8MB,这是由于测试使用的是iPhone SE,App Store上标注的大小应该是以iPhone 7 Plus作标准的。

这也说明在App下载安装过程中,App Store会根据设备型号来适配必要的文件。

iOS上微信


iOS上网易云音乐

可以明看到,Android在安装APP后大小出现翻倍的情况,因为前面提到,现在Android系统安装APP过程中会进行编译,所以装完后APP真正的占用空间大小就出来了,这也解答了不少网友向我们询问,在Android上安装一个才十几MB的APP,装完后存储空间不见了上百MB的疑问。

Android应用商店上只是显示APK安装文件的大小,而在App Store上显示的APP大小是安装到手机后的占用空间大小。

这样的好处是,用户们会很直观地知道自己手机还够不够容量安装新的APP,而不会出现明明手机设置里面显示还有几十MB空余存储,却连个十几MB的APP都安装不进的困惑。

当然Android更小的安装文件方便下载到手机上,现在最新Android 7.1.2已经大幅提升安装APP速度,只是在安装之前,大家要注意预留2-3倍于安装文件的存储空间。

总结来看,“为什么iOS上APP比Android大几倍”其实是个伪问题,真实的情况是:

App Store上标注的APP大小是安装之后的大小,Android应用商店大多只是显示安装文件的大小

Android安装APP后,占用空间其实和iOS版相差不大

标签: 为什么iOS的APP比安卓大好几倍

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
胜达这款车百公里油耗多少? 胜达节能油加盟办厂可靠吗是不是骗子 河南洛阳胜达就是骗子,我把钱交了也不来人了,他们一个老总说了爱咋办... 胜达油是个骗局吗 胜达节能油是什么? 叩解度关于叩解的论述 湿重跟湿重有关的打浆磨片 戴尔XPS M1330-950重要参数 如果到别的单位去面试的话 如果人家问起为什么会选择这家公司而离开另外... 学生会被两个部门同时面试怎么办 ios系统记录app活动是什么意思? 安卓手机怎么投屏电脑 苹果ios系统有哪些免费好用的app值得推荐? 苹果IOS系统上免费的交友软件有哪些? 孜然肥牛卷的做法 孜然牛板筋的做法 孜然牛打了怎么做? 孜然牛心管的做法,孜然牛心管怎么做好吃,孜然牛 孜然牛肉怎么做? 孜然牛排怎么做好吃,孜然牛排的家常做法 孜然牛肉片怎么炒 爆炒孜然牛肉怎么做好吃,爆炒孜然牛肉的家常做法 孜然牛生筋怎么做 孜然牛肉片怎么炒好吃 孜然牛肉粒的原材料都有哪些?在家如何制作? 孜然牛肉怎么炒才最软嫩呢? 做孜然牛肉选哪个部位肉比较好? 孜然牛肉的做法 正宗孜然牛肉怎么做 非常好吃的孜然牛肉,要怎么做才能超级下饭? iOS系统里有哪些app最好用? 苹果iOS14APP更新了哪些新体验? 安卓手机投屏的方法有哪些? ios与安卓系统设备的APP的可用性有哪些不同? ios系统app图标怎么换 ios14显示所有app ios系统app总是卡住更新不了是怎么回事? 晚上吃方便面会发胖吗 晚上吃泡面会胖么? 晚上吃方便面会发胖吗?是干脆面 晚上吃方便面会发胖是真的吗 晚上吃泡面会发胖吗? 晚上吃方便面会长胖吗? 晚上吃方便面会发胖吗? 吃宵夜方便面会变胖,对此你怎么看? 半夜吃方便面会不会发胖 热水壶生锈危害大吗 晚上12点吃泡面特别容易发胖吗??? 晚上吃方便面会胖吗 热水壶,水里,底部的杂质,铁锈颜色的,是什么东西?