产品研究:安装程序 或 移动端APP 为什么这么占用空间?

一群产品经理讨论应用为何这么占内容,PMcaff产品经理社区潜伏的一大批技术能人给出了很好的答案。该问题的贡献者:原猎豹产品总监 胡国中,Google 资深RD 春哥,百度浏览器 资深RD 杨坤

有些硬盘比较小的用户或者是苹果手机容量比较小的的用户可能经常抱怨app或者安装的应用程序太大导致设备空间不够用。特别是微软Outlook为何要1G安装包,而foxmai只要60M,为何同样的竞品APP有的点160M手机空间,有的只占5M?下面为大家简单解释一下为什么有些app或者应用程序总是那么大。

1. 历史原因

为了兼容老版本或者一些旧有的用户习惯,可能会有一些旧的特性包含在里面,但是有的时候可能项目开发周期短,程序员哥哥是不会去动旧有的东西的,因为一旦牵涉到修改代码,成本是很高的;随便去掉一个功能点,需要考虑整个业务流程逻辑是否通顺完整,改完以后还需要QA再进行回归测试,就好像是从一整栋完整的大厦里面抽掉一块砖,一不小心就有瞬间崩塌的危险。

2. 为了适应不同的用户群体

比如像office光安装包就1G多,安装完成之后发现各种组件都已经给你装过了,包括什么ppt啊,visio啊各种乱七八糟的组件,excel里面甚至还包含了vbscript这类开发者用到的组件;正常人类只希望用一个文档或者excel的功能,office就会给你安装了这么一大堆东西。

3. 追求炫酷

有些app为了追求狂拽酷炫屌炸天的界面效果会使用一些精度比较高的资源(图片、音频、视频),让你看起来好像觉得很牛X的样子,但是这些资源图片占用了整个app容量的大头,其实二进制文件编译出来之后,把符号文件去掉,二进制的执行文件本身就是非常小的。

4. 第三方库

有些开发者为了图省事,会直接使用一些开源框架,比如做游戏需要用cocos2d, unity3d等,应用程序可能会用到reactjs等,这样子的好处是直接一套代码跨平台,节省了开发时间,提升了开发效率,但是这些第三方库本身是非常大的,因为第三方库它不知道你要用哪些功能,干脆把所有的东西一股脑都给你。

5. 用户数据

当用户使用这些app(应用程序)的时候会产生很多使用痕迹的,有些app(应用程序)就索性直接用完之后扔在某个地方不管了,比如说产生一些日志文件或者一些临时性的配置文件或者是一些数据记录,就跟随地扔垃圾的人一样讨厌,毫无节操可言。

看完上述种种,作为一个PM/RD肯定会有各种理由:我项目周期紧张啊、我的程序员哥哥不甩我啊、占用空间大小的事情只要不影响功能就行了啊、、、等,但是。。。这些都不能成为合理非法大量占用用户使用空间的理由,如何让自己的app更加轻快,更加好用,这才是作为一个有情怀的互联网人所需要追求的,而且是需要PM和RD共同努力的,下面给出我自己针对上述问题的一些建议:

1. 解耦你的程序:现在大家都是用的面向对象语言,如果你的程序的类不能拆分成一个最简单的功能,或者类依赖过多的类,肯定是很有问题的,需要程序员哥哥在写代码之前就要考虑清楚该如何做扩展,如何写基础模块,如何写业务模块,哪些功能做成一个单独的模块,模块里面每个类负责最小化什么样的解耦功能;最好把工具类拆分出来,工具类有可能又分为业务型工具类和通用型工具类,说不定可以用到以后的项目中。
类似Chrome的插件模型永远是客户端程序最经典的架构。推荐没事多看看《设计模式》,尽管你可能觉得过时了,不管时代怎么变化,有些基础的思想永远不会变。

2. 动态的加载所需要的库:如果做到了上一点,第二点就很好解决了,因为所有的模块都是热插拔模式的,可以根据用户的需要把一些不需要的功能模块删掉,保持占用空间最小化。

3. 尽量多用绘制库:现在的绘制库都是很牛X的了,各种算法都给你写好了,而且优化的非常好,只要运用得好,就不要去用一些图片去解决问题,经常用图片解决问题的程序员是很懒的,懒得去了解绘制库的用法,只要稍微多了解一下你的绘制库,基本上秒杀各种特效了。

4. 削减第三方库: 很多第三方库都包含了很多用不到的功能,把这些功能都去掉吧,这些东西哪天要用到再加上也是可以的,如果你不会削减证明你根本不了解你的生产环境,这样子是很可怕的;赶紧动起来,去了解你的底层。

5. 尽量把一些重要的用户数据自动上传到云端:比如一些最近的聊天记录,聊天记录中一些图片文件等最好也要存成ID号上传到业务服务器,图片另外用图床存都是可以的。还有一些用户的使用偏好配置等信息也要保存到云端,本地可以留少许的数据;我有一个朋友前两天发朋友圈说自己某信所有聊天信息都没有了(是个美女),不知道是咋回事,结果各种倒腾了一天终于搞好,但是损失的时间成本和沟通成本是无法估量的,由此可见像这种极端异常情况如果处理好了,带来的价值远远是高于做这些优化所付出的成本的。

最后建议一点,PM在日常开发过程中也需要把这些细节作为整个项目的一个需求去认真的落地,因为只有像这样才能够打磨出真正的精品。

注意:本文为PMcaff产品经理社区原创,转载请标明出处


更多推荐

回复“61”——马化腾内部分享:三个问题说透如何做产品

回复“62”——鸟哥笔记VS知乎刘锤:一个运营牛人的进化论

回复“63”——前苹果副总裁:20-40-60法则

回复“64”——鹅厂顶级产品课程:产品细节中的情感化设计

回复“65”——如何用互联网思维卖辣条

回复“66”——马化腾亲身分享:腾讯兵法教你做一款高口碑的产品

回复“67”——去哪儿产品总监:先解构,再设计,把握产品经理的核心竞争力

回复“68”——一份优秀的竞品分析报告的撰写方法

回复“69”——阿里收购惊人内幕,支付宝出大招颠覆式创新-人人都是ATM

回复“70”——你的微信朋友圈让你焦虑了吗?

原创或推荐文章请发送至邮箱:xiaoxi@pmcaff.com

PMcaff合作媒体:Chinaz

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值