开发者谈 AppStore“大问题”:应用体积越来越大

王练
 王练
发布于 2017年08月14日
收藏 3

来自vadodara的技术编辑Khamosh Pathak每个月在iPhone上花费的流量数据达到了10GB以上,而这只是他为了下载新的应用程序或者进行更新。他说,在过去的几年里,他所消耗的数据流量已经大大增加了。

事实上,Pathak的观点代表了越来越多的iPhone和iPad用户的担忧,他们认为现在App Store里的应用程序体积正在变得越来越大。例如,你可以看到,Facebook应用和Uber应用的体积都在250MB以上,而在App Store更新选项上列出的数字往往更糟,比如Facebook就达到了300MB以上。

相反,在Android手机上下载Facebook只需使用70MB的数据,Uber只需30MB,而更新文件通常不超过30MB。在App Store上,微软Excel的大小为219MB,但是从Google Play下载不到60MB。同样,根据App Store上的显示,《口袋妖怪Go》(Pokemon Go)应用的大小为244MB,而在Google Play下载则在100MB以下。

尽管苹果确实为开发者提供了一些减少应用程序大小的建议,但苹果对于这个问题的更多信息依然守口如瓶,因此我们并不能确定苹果是否正在努力解决这个问题,或者它是否把它视为一个问题。

但这些说法真的站得住脚吗?gadget 360就与几个开发人员对这个问题进行了交流。

为什么这很重要?

更大的应用程序意味着某些时候你需要消耗更多的数据流量,或者占用你的设备更多的空间。这可能会使得苹果公司在印度等新兴市场推广其产品具有更大的挑战性,毕竟苹果正越来越希望iPhone能在这些国家和地区占领更多的市场。

一部分的问题在于,当我们下载和检查应用程序的大小时,我们意识到Google Play列出了下载这个应用所需要的的流量大小,如果你查看一个应用程序的信息,你会看到一个显示下载大小的标题。然而,在App Store上,这一部分被称为“体积”,它似乎是指应用程序在你的设备上所占用的空间大小,也就是说,当你从App Store下载的应用在你的手机或平板电脑上打开时是经过解压缩的,最终占据的空间大小要比下载的大小要多。

当然,这两种方法各有利弊。谷歌向你展示了你需要使用多少数据流量来获得这个应用,这在印度等国家是一个重要因素,因为这些国家对数据成本仍然很敏感。而苹果的数据则告诉你,你要获得这个应用需要占用设备的多少空间,如果你担心你的设备存储空间不够,这同样很重要。

问题的根源

除此之外,应用程序大小还存在一个真正的问题,一些开发人员告诉gadget 360,现在的应用程序规模大小正越来越大,部分原因在于开发人员添加了新功能,当然,许多用户显然也喜欢这一点。

“应用程序正变得越来越大,因为iOS设备同样也在强大,开发者们正在为他们的应用程序构建越来越复杂的东西,而不考虑这样的程序规模会对世界有什么影响”。开发者斯蒂芬·特劳顿-史密斯(Stephen troughton - smith)告诉gadget 360。史密斯是最知名的iOS开发人员之一,他经常在苹果发布新产品之前,通过挖掘相关设备的固件信息进行爆料,比如最近通过HomePod固件挖掘iPhone 8新特性的不少消息,就是出自他手。

但是,也有部分原因是由于开发人员不小心,并添加了多个文件造成的,史密斯补充道。“因此,Facebook、Twitter和其他大公司也许有数十或数百人在构建他们的iOS应用程序。这些应用程序的许多组件或框架都是独立开发的,如果你要把每一个额外的组件都整合到一个应用程序上,就会产生一些开销。有些团队会重复或复制其他团队所写的功能,比如图像或其他资源等等”。

开发人员需要添加的高分辨率图像资源同样也会造成应用程序的增大,两个来自印度的开发者以及PSPDFKit的创始人兼首席执行官彼得·斯坦伯格(Peter Steinberger)告诉gadget 360。

苹果或许也需要承担一定的“责任”,因为开发者在使用苹果于2014年推出的Swift编程语言时,需要他们在应用程序中添加几个组件,这同样会使得应用程序变得更“重”。

“例如,苹果的新Swift语言需要在每次使用时都嵌入一堆组件,因为它还没有达到‘ABI稳定’”。史密斯解释道。这意味着开发人员需要嵌入他们开发的库版本,而不是依赖于系统上可用的版本。

另一个不愿意透露姓名的开发人员称:“通常一个使用Swift语言构建的应用程序需要在程序中填充多达30个Swift运行时库。除此之外,你可能还会惊讶于一些应用程序里使用了不少在其它应用中(比如GitHub)找到的通用代码。”

“开发人员往往不关心是否去删除与应用程序无关的内容,”他补充道。

应用程序的大小增长了1100%

营销和研究公司Sensor Tower在6月份发表的一篇博客文章中写道:“安装量排在前十的iPhone应用程序已从2013年5月的164 MB增长到了上个月的大约1.9 GB,短短四年间就增加了12倍或约1,100%。”而反观iPhone的存储容量改变速度却被远远甩开,基础款的iPhone存储容量在最近才从16GB上升到了32GB。

Sensor Tower的移动负责人兰迪·尼尔森(Randy Nelson)表示,iOS应用程序仍在继续包含多个版本的资源(图像,按钮等),以满足不同屏幕尺寸的需求(iPhone 7,iPhone 7 Plus,iPhone SE或iPad),这极大地影响了用户的存储空间。

尼尔森解释说“这与Android世界的工作方式不同,即便安卓也有更多不同种类的设备,拥有不同的规格和屏幕尺寸,但通常来说,其资源都是会按比例放大或缩小的。”

“另一个原因在于这些应用程序在iOS与Android上所需的库和SDK的数量和类型。此外,iOS上的应用程式代码是加密的,并且造成的二进制文件大大超过了Android。最终,是许多方面不同的原因导致了iOS与Android应用程序之间产生的大小差异。”

较大的应用程序可能会对一些用户只造成轻微的烦恼,或者对于居住在西方市场的用户根本不成问题,但它确实会在像印度这样的市场带来不小的影响,因为这些地方无线网络并不是很发达,又或者他们手机的数据流量往往很有限。而根据市场研究公司Counterpoint的数据,16GB iPhone 5是去年在印度最受欢迎的iPhone型号,可想而知,他们所用设备的存储空间也存在着不少限制。

来自旧金山的开发人员本·桑福德斯基(Ben Sandofsky)是Twitter的iOS应用程序开发团队的一员,他对于这样的担忧产生了共鸣,并表示:“这些(西方)公司的员工生活在一个互联网和科技都最先进的地方,他们有充足的LTE数据连接,快速的wifi网络,64GB存储空间的手机,这导致了他们在考虑周边普通用户时产生了盲点。”

桑福德斯基最近为iPhone开发了流行的第三方Halide相机应用,他补充说:“在不考虑一些用户负担的情况下,确实可以让工程师和经理们的工作变得更轻松。而且在iPhone应用程序之间重复使用通用代码比以往任何时候都要容易。只要敲击几下键盘,工程师就可以在应用程序中添加数千行代码,理论上这很好,因为工程师不需要重复工作做同样的事情。但不幸的是,在过去的几年里,事情已经变得越来越疯狂了,工程师们在他们的应用程序里添加了庞大的库,这也导致了应用程序的体积越来越庞大,而原本他们就可以通过创建更小的程序来完成这个任务。”

但这也不是全部,桑福德斯基说道,公司经常增加A / B测试来推动产品开发。这意味着他们会在一个应用程序中进行小的实验性更改,比如改变一个按钮的颜色,然后观察分析,看看是否有更多的人点击它,这也就产生了一系列不会为最终用户带来任何价值的跟踪代码。而真正的关键还在于这一系列废弃的实验常常在代码中被搁置。许多公司都没有删除它们,所以代码库每天未使用的代码都在增长。

“太多的公司使用指标来推动所有的决策了,你可以测试出有没有更多的人点击了这个按钮,但你很难衡量一个用户为什么放弃了一个应用程序,或者为什么用户从来没有下载过一个应用程序。”

稿源:威锋网

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:开发者谈 AppStore“大问题”:应用体积越来越大
加载中

精彩评论

红薯的小黄瓜
红薯的小黄瓜
新浪微博,优酷毛功能都没添加,就加了个广告,体积成倍增长
久永
久永
评论很精彩,但是很多说的软件体积问题和根本不是一个问题。
这个问题造成的原因是,苹果系统结构和多代二进制兼容的问题。
和安卓不同,苹果的不同代系统的软件,二进制是不兼容的。
但是又想用户和开发者不要烦这个问题怎么办?
——请看苹果相关文档。
你好是啊
你好是啊

引用来自“Rabbits_Hi”的评论

总与了解了一点为啥 每次更新软件都是动辄几个g 要不是百兆宽带 我可能早就崩溃了
以前我用长城宽带。。。。。。算了不说了。。。
丁富贵
qq安装完都800M了
B
Barbie_Z
你们是不是开始怀念C了,哈哈哈哈哈

最新评论(20

大美bot
大美bot

引用来自“张伟斌卍”的评论

安卓的应用占用空间和苹果的差别不大,只是安卓有增量更新比较省流量

引用来自“大美bot”的评论

貌似就算不用增量更新Android apk 也才最多几十M ios 就上百了。

引用来自“张伟斌卍”的评论

apk是压缩包,运行时还会解压的文中说的就是解压完后的容量
Android 能插卡...Android 能插卡...Android 能插卡...
张伟斌卍
张伟斌卍

引用来自“你好是啊”的评论

我记得APK有几种打包方式(包括高压缩率打包),再加上某些软件一运行就下载剩余的部分进行“热更新”(苹果好像已经禁止了这个功能),最终占用的空间并不小。总体来说,同一应用不同平台相同版本相同功能的情况下(如Twitter、Instagram、LINE等),应用占用的体积应该是iOS>Android>Windows Phone(包括Windows 10 Mobile)。值得注意的是,WP基于.NET框架,编译后的是中间代码,自然小。
arm平台的安卓主要是系统版本碎片化导致应用开发的调试麻烦,由于是虚拟机机制,所以不会有太多二进制兼容问题,虚拟机会解决,比如系统位数问题。而苹果的ios由于不是虚拟机机制,代码在编译后会有二进制兼容的问题,比如32和64是无法二进制兼容的。苹果下手屏蔽32位应用估计也是为了防止碎片化问题的加剧。
张伟斌卍
张伟斌卍

引用来自“张伟斌卍”的评论

安卓的应用占用空间和苹果的差别不大,只是安卓有增量更新比较省流量

引用来自“大美bot”的评论

貌似就算不用增量更新Android apk 也才最多几十M ios 就上百了。
apk是压缩包,运行时还会解压的文中说的就是解压完后的容量
熊猫叔叔
安卓版本qq占用800多的空间比农药都多
一只囧蟹
一只囧蟹
鄙视大于10m的程序,不含资源的
大美bot
大美bot

引用来自“张伟斌卍”的评论

安卓的应用占用空间和苹果的差别不大,只是安卓有增量更新比较省流量
貌似就算不用增量更新Android apk 也才最多几十M ios 就上百了。
久永
久永
评论很精彩,但是很多说的软件体积问题和根本不是一个问题。
这个问题造成的原因是,苹果系统结构和多代二进制兼容的问题。
和安卓不同,苹果的不同代系统的软件,二进制是不兼容的。
但是又想用户和开发者不要烦这个问题怎么办?
——请看苹果相关文档。
東條・スペンサー・咲
東條・スペンサー・咲

引用来自“linshenqi”的评论

苹果现在谁管ios啊?不会是 jonathan ive,这个人又不懂开发。
Craig Federighi,软件工程高级副总裁。macOS和iOS现在全部归他管。
linshenqi
linshenqi
苹果现在谁管ios啊?不会是 jonathan ive,这个人又不懂开发。
张伟斌卍
张伟斌卍
安卓的应用占用空间和苹果的差别不大,只是安卓有增量更新比较省流量
返回顶部
顶部