为什么安卓国产APP的体积越来越大?

lxvvx


手机的硬件和软件是相辅相成的,硬件推动软件,软件倒逼硬件,手机内存随着技术的发展做的越来越大,每GB内存价格也在降低,所以这也推动了手机APP和各类软件可以做的更大,功能更多,毕竟内存太大的话用不了也是浪费,手机软件顺其自然增加功能和界面美观度也是非常正常的。

手机软件因为功能和界面的加强提高内存占用量是正常的,同一款APP我们可以看到数年前的版本和最新版差距非常大,占用的内存量也可能相差好几倍,如果是正常的增加还可以理解,但是问题在于国内大量的APP开发公司对程序的优化工作做的不足,也就是说仗着手机内存容量的大幅度增加,开发者们为了节省时间和成本放松了代码优化工作,这样就会使软件的内存占用不合理的大幅增加。

毕竟不是谁都会频繁更换手机,对于老手机用户来说,很多新版本的软件内存占用过大,尤其是每次更新版本几乎都会增加占用量,但是用起来却没什么差别,这样自然就会导致网友们的吐槽。毕竟操作系统本身不会频繁更新,但是手机上大部分的APP都会三天两头的进行更新,手机越用越卡当然有它们的问题。

也正因为此,国产手机大部分都会配备较大的内存容量,即使是便宜的千元级在存储容量上也不会太吝啬,这就是为了应对大量不注意优化、频繁更新的国产软件,就软件生态环境和优化程度来看,国外普遍做的比国内要好。


嘟嘟聊数码


楼主都说“他们”是流氓了,当然就干点流氓的勾当呗!

我觉得吧,滋生这些流氓的土壤是关键作用。只要有强大的约束肯定流氓也不敢耍流氓了!

相对而言Googleplay下载的的APP要好些,下面上截图(前三个截图图片是用的截图拼接APP拼接的,可能有点错位,请大家见谅。),至于这款视频类APP,国内APP(国内这类APP我手机里没有)的权限需求我敢打包票肯定不止这么几个!


下面再插两个纯国产的


说个题外话:自从限制了同花顺的所有权限,现在我的账户根本不存在经常在异地登录导致逼迫我的账户下线(而且打同花顺客服电话也不管用),之前没限制权限的时候,一天都能逼迫我账户下线n次,而且最憎恨的就是要下单交易的时候被迫下线。

下面就贴出我手机里所有(包括手机自带)APP截图的缓存占用情况!












完毕,谢谢阅读!


谁遇而按


我是做Android的,我给大家说说原因吧。Android软件大主要是以下几方面造成的。 1 Android界面功能的实现难度。Android相对于apple在某些方面实现起来很困难。比如Android的广告推送。苹果有自己的服务器可以用,而谷歌的服务器却不能用。咋办,于是有了n 种办法,有的人会用第三方比如百度。但更多的公司会自己实现。广告推送是与盈利挂钩的,这是一个很重要的功能。一个广告推送就会让app 多产生七八个类,几百行甚至几千行代码。但这不是最重要的,最重要的是因为这个功能太重要了,以至于每一个Android APP都会有。而这个功能因为需要推送,所以这个功能需要后台24小时运行。这导致无数个pushService在后台运行,他们占用内存,占用cpu 有的甚至索要权限进行电话录制,复制个人信息。 2 android 界面相对于苹果而言,实现有点困难。这种困难从Android出生的那一刻就存在了。一个界面就有一个activity,而n 个界面就有n 个activity。n个activity里面因为某种原因造成代码冗余。于是有了fragment,但是fragment在深度嵌套时会有许多难度而最典型的难度就是传值,页面跳转。这一下字增加了其复杂度。因为要实现会产生很多冗余代码。 3 软件升级。相对于苹果,Android的升级十分的频繁。Java程序最大的特点是可重用性,特别适合二次开发。绝大部分的程序员,在软件升级时,是不会去删除那些不用的代码的。为了兼容老版本,就更不行了。这导致产生庞大的废代码。 4 界面布局文件。界面布局的碎片十分的多,而这些碎片和Java代码是相关的。一个app 页面越多,产生的垃圾布局文件越多。好多公司为了追求速度和程序的可阅读性,是不会主动去删过时的代码和布局文件。 5 图片,图标。APP的代码体积有相当大的可能是图片造成的。图片越多会造成APP体积极速扩张。与媒体相关的视频,游戏变成巨霸就成为无可厚非的事。但是还有一个重要原因就是Android的适配。因为Android手机碎片化严重,为了用户体验,常常需要2套以上的图片,图标。


希望之草


作为一名学软件开发的大学生简单说一下这个问题,科技发展真是日新月异,每天都会有很多新的革新,从功能机到半智能机到智能机,可以说手机逐渐有了替代电脑的趋势,而这取决去ios和Android的强大,越什么安卓的app越来愈大了呢?

1、软件的更新,技术的创新:随着新技术的推出,同一款手机app的软件可以说是越来越多,拿QQ来说,最开始只是聊天的工具,现在运动、支付、办公等,都集成在一起,也就相当于把几款app捆绑在一起,必然会导致软件增大。

2、国产软件碎片化:可以说安卓软件碎片化特别严重,监管松懈,广告等也成了必备,软件的背后更多的是代码的积累。

3、缺少谷歌的支持:国内没有谷歌的服务器支持,很多功能需要厂商自己想办法解决,例如:消息推送,国外的安卓可以通过谷歌服务器同意推送消息,不需要软件实时运行,而国内的只好保持软件长期处于后台运行,而这些功能的实现,必然是由代码组成。

4、技术方面:android 界面会产生部分冗余代码。一个界面对应一个activity,n 个界面就有n 个activity。这样就造成代码冗余。fragment可以解决,但fragment在嵌套时传值、页面跳转都比较困难。增加了复杂度,功能的实现会产生很多冗余代码。

随着安卓系统不断的更新,很多系统短板得到解决,当然,安卓还有很长的路需要走。同时手机app的监管也是一个有待解决的问题。


lisongye


这个你还庆幸自己不是是用iOS,iPhone 的App 动辄都是上百M,出门在外都不敢下载App。

至于Android,这个不做开发的还真不知道,效率君个大家科普一些常识吧。

一个App 安装是一个APK 包,它会包含资源文件,代码,第三方依赖的包,不同手机CPU 的兼容。具体是哪些内容,下面会详细介绍。

资源文件

就是所谓静态的资源,就是图片呀,小图标呀等等。比如像引导页的图片,还有启动Icon,布局文件等等。这还算一小部分。

代码

代码这块也算少部分啦,毕竟都是文字,也没什么问题。

第三方依赖

这个是个重头戏,也占用了很大的包,你打包也不会把它们压缩。

一般开源控件,都是依赖它们整体的代码。

一般公司很多服务都是使用第三方的东西,比如推送,定位,视频播放,登录,IM 等。有的包真的大的要命,有的一个都有几M。

不同手机CPU 的兼容

这个主要是第三方的服务,因为第三方服务有C 的代码,兼容到底层就需要对不同CPU 添加,比如arm,高通都要打,这样一来无缘无故多了这么多。

除了上面的原因,当然随着一个公司的发展,业务的复杂,引入的东西越来越多,App 的体积越来越臃肿,想要瘦身更是无从谈起。而且有的老东西不用,可能也忘记删除了,也在里面放着。

虽然也有不少瘦身APK 的方案,但是一般也没有这个需求,也很少有人做,而且很多应用市场都推出增量更新版本,而且自带的应用市场,可以自动更新新版本,也很方便,很少人会注意到这个问题。

APK 的大小只是很少的,App 的缓存内容,是个大头,会慢慢侵蚀你的手机内存,所以还是要定时清理手机内存,让你的Android 手机保持清爽不卡顿。


高效率工具搜罗


一个安卓应用越来越大的原因主要有一下几点:

1、适配不同的机型

由于安卓手机的碎片化,市场上的机型越来越多,不同的厂商,不通的屏幕大小,这些都要更具不通的设备来做不同的处理,比如同样的代码,在华为上可以运行,在小米就没有反应,所以要做两套,又比如,屏幕大一点的手机显示的内容要多一点,小一点的手机又要少一点。还有不同的系统版本,不通的推送平台等等,这样下来,一个应用的某个功能可能会有很多套代码,而你只有其中一套,自然就会冗余。

2、保存用户信息

现在基本每家公司都会有做大数据,何谓大数据,其实就是收集用户的各种操作习惯,然后保存起来,在慢慢上传到服务器。这些收集的数据,自然是先保存在手机的,有的体验差的应用可能连删都不会删,或者很久才删一次。还有就是保存一些用户的习惯,优化体验啊,比如说保存帐号密码,缓存一些网络请求等等,最后就是用户主动保存的一下图片、视频、文件等等。这样一来,应用占用的空间自然就很大。

3、功能越来越复杂

功能一多,自然应用就到了,就拿微信来说,一开始就聊天、朋友圈的简单功能,然后慢慢的支付、红包、小视频、摇一摇,还有就是最近新出的实验室的看一看、搜一艘和火了一段时间的小程序等等功能,光一个小程序,可以让用户直接打开各种样子的视图,这些视图一部分从服务器读取下来,一部分本来就写在本地的,否则你开打一个小程序不会这么快,所以占用的空间自然也会越来越大。


_贝风


希望之草 这位朋友回答的很详细,归纳起来就是全家桶、链启动、权限索取无度、安卓系统高度开源,以及代码优化不到位导致的,而且还有最重要的一点

苹果手机多年就是4.7英寸,5.5英寸,或者像iPhone SE 4英寸,APP适配起来更简单,安卓的手机尺寸,屏幕分辨率太奇葩,而且差距太大,所以很多APP厂商在做程序的时候,要针对所谓的自适应分辨率做好几套内容。


李沛超


一张图你应该就可以理解了吧,请看最中间的那个五星好评。(截图来自Google Play)



小科技大改变


他们说的都太专业了,我也不是程序员,作为普通的手机软件用户,来谈一谈我个人的看法。

比如说以前的手机浏览器,我记得我在大学的时候还用的,诺基亚的手机,手机浏览器就是用来上网搜索资料,百度资料用的,没有其他的多余的功能,当时最火的应该就是uc浏览器了,俗称上网。当时就觉得这个浏览器很良心。

刚慢慢的到了安卓手机,手机的处理能力也大大的提升,现在软件的功能也越来越多,我们还以浏览器,现在的浏览器除了上网查资料以外,进入首页之后都会有一些推送的新闻或者视频,让你打开手机浏览器,就会被这些新闻和资讯,还是支书,被首页的广告或者是新闻资讯,都可能是软件商的一部分很丰厚的收入。

还有就是以前的QQ只是用来作为一个聊天的工具,但是现在我们看一下QQ的功能,我们只能说功能太强大了,在这些功能强大的背后都是无数串的代码,而这些东西肯定是,占用手机内存的,同时这些多的功能也可以帮助到我们一些,但是绝大部分的功能都是没有用的,所以亲爱的,人间都越做越大,功能越多,肯定占的内存就越大了,

我看看现在的手机配置,运行内存,现在都到8个g了,我现在家用的普通电脑,最多也就8g,你想想,这样的情况,按着手机的软件能直接做越想吗?


数码小达人



我的也好占内存😓