牛牛游戏网站> 铁牛棋牌赚钱>App产品原型背后要交代的细节或要理解的原则(六)

App产品原型背后要交代的细节或要理解的原则(六)

发布时间:2019-10-23 14:08     来源: 牛牛游戏网站

使用缓存,主要是提高性能和离线访问数据(用户需求或体验)。比如,缓存可以支持离线访问、支持用户离线操作、减少用户流量损耗、提升速度、节约访问服务器成本等。

其原理就是将加载过的内容存储下来(缓存),下次读取时,首先从缓存中查找,找到了则直接执行,找不到则再从内存中找。

比如微信通讯录中用户的头像,在第一次加载的时候就全部拿到。之后刷新列表,都将基于前一次缓存的数据重新进行更新。

第三类,在产品功能基本完善的时候,将缓存作为一个系统整体机制来梳理和规范。这个时候产品经理做的是排查,然后以缓存作为方案进行补充完善。

缓存数据就是存在手机的文件夹路径中了。当然也可以存储在相册这样的地方。必要的时候产品经理要与开发定义。

外部存储并不总是可用的,往往需要请求授权,比如访问相册。当用户卸载App时,系统仅仅会删除其中相关的文件。

比如UCG的视频,App每次刷新可以加载10个,且不重复加载,那么就可以将每次加载的视频ID存储在手机中,下次加载做差异化扣减。但是显然这个量日积月累也够大的。所以可以设置为(比如)每周自动清除一次。

版本更新,通常是通过应用市场、使用时提醒用户、离线时推送消息,这三种手段分别对应三种用户与App的场景。

版本发布到应用市场,市场就会判断后提醒用户更新(当然前提是用户得来到应用市场)。如果用户不来,就需要App内弹窗提醒更新。

打开应用时,通过弹窗的方式来告诉用户有新的版本了。好处在于用户使用产品时就能够看见,有针对性。不好的是打扰到用户了。

一种常见的机制是,设置两个版本号,一个开发版本号,另一个是显示给用户的用户版本号。每个App版本都有唯一的开发版本号,就像序列号一样唯一且严格。

还有一个看不见的规则:当新版本的【开发版本号】大于用户版本的【开发版本号】,则强制更新;否则,更新,但不强制。

举个例子:用户的App的当前显示版本号是,开发版本号是。发布了更新,并在后台设置新版的显示版本号是,开发版本号是,那么启动后,会弹框提醒,但是不强制用户更新。

3.推送消息通知更新提醒更新前提是用户打开App,为避免用户长久不打开App,也可以通过发推送的方式提醒用户更新版本。

热更新就是,通过一些技术手段,直接对线上App添加新功能或者修改bug,以避开上架审核造成的麻烦或不通过。该过程所用的技术手段就统称为热更新。

热更新时候,可以通知用户手动触发,比如王者荣耀。也可以不告诉用户,直接更新。无论代码是原生还是H5,理论上都可以进行热更新。

热更新可以理解为代码版本更新的一个细分手段,只下载缺失的那部分内容,文件对比后重新合并,减少了下载量。

有时候我们需要生产和测试环境切换来来排查问题,安卓的开发员通常会写一个开发者模式,这样安装一个APK包,就可以在测试版和正式版之间切换。

正式包与测试包通常是同一份代码,分别发布在不同的环境中。但需要注意,两个版本可能不对称。比如版本的代码只在正式服务器发布了,那么切换到测试服务器的时候代码是不一样的,功能就不一样了。

安装新版本的时候,安卓可以文件传输形式进行安装。但是苹果不能。苹果需要连手机线在特定环境下安装。当然也可以申请一个临时的小版本企业账户(百十来个人的上限),因为苹果管控比较严格。

新旧安装包安装时候,压缩包签名相同的会自动覆盖,这样更新之后账号依然在,类似热更新。但最好是先卸载旧的,避免可能的冲突。

比如,删除无用的代码逻辑,删除无用的产品逻辑,混淆代码,把一些代码做内联,把代码中的类名、方法名和变量名替换成更加短小的无意义名字,测试代码分离等。

其原理就是找出里面较大的文件或数据库,进行压缩。比如封面图或字体大小,若压缩之后清晰度可以,那么就这么干了。

通常开发通过插件,对所有的图片进行遍历,自动压缩成webp,并删除原来的图片;很多png是不能进行webp化,那么可以进行tinypng压缩。

唧唧歪歪PM,公众号:唧唧歪歪PM(ID:jjyypm),人人都是产品经理专栏作家。书籍《后端产品经理宝典》作者,药学硕士转行互联网产品多年;熟悉跨境电商业务,医药领域;擅长大型后台体系,社交App。


  • 波浪
  • 波浪