App竞品技术分析 序言

      这一篇文章,我整整写了两个月,期间,我仔细研究了上百款App的技术实现,管窥到很多先进的思想,如安装包的结构和大小、开机速度、HTML5页面的打开速、性能优化、数据采集工具、ABTest、热修补、模块化拆分等。希望通过本章的介绍,能在各个公司成立这样的一个部门或者团队,从产品和技术两个维度进行竞品分析的研究工作。

1 竞品分析概述

1.1 App竞品定义

我们通常将同行业内竞争对手的产品定义为竞品,所以竞品分析通常就是分析竞争对手的产品。

对于App而言,这样定义竞品还远远不够。同行业内的竞品固然重要,但是对于行业外的优秀App。对我们而言,也是有很大参考意义的。比如说:

  • 社区类和视频类App,他们的广告系统做的是最好的,因为他们就靠在App中投放第三方公司的广告来赚取广告费,这是他们生存的手段,所以一定是花大力气做的。
  • 电商类(包括OTA和O2O)App的产品详情页和订单填写页做的是最好的,因为他们要确保订单转化率就靠产品详情页来吸引用户眼球、靠订单填写页良好的用户体验来促进用户下单。
  • 活动运营做的最好的,仍然是电商类App。就靠首页的那几个轮播广告位,能做出各种意想不到的促销效果。此外,各种秒杀、满减,也都是电商类App的拿手好戏。
  • 社交类App的聊天功能做的是最好的,尤其是高并发的架构实现,随着其他行业App陆陆续续引入在线客服系统或者支持用户和商家直接点对点沟通,一定要学习社交类App的在线聊天技术。
  • 新闻类App比拼的是推送的及时性和到达率,所以大都是自己搭建推送服务器,而不依赖于第三方推送平台。

  越来越多的App都意识到数据的重要性,开始采集用户行为数据,以助于更准确的作出战略上的决策,优化他们的产品和功能。由于这些都涉及公司机密,所以往往不使用第三方的服务,而都是自己采集数据自己分析。老牌移动互联网公司在这方面会比较有优势,毕竟做的久了,积累了很多的经验。

  综上所述,从技术层面而言,同行业内竞争对手的App产品一定要经常研究,而对于整个App应用领域,各个行业都有其优势,我们要学习他们各自的优点,用到自己的App中,这才是竞品分析的意义所在。

  因此,做竞品分析,紧盯着竞争对手固然没错,但是只盯着他们,就会把自己的逼格也降低了。一定要把眼界放大,立足于整个App行业,一步步的、不知不觉的就会超越竞争对手,自然就会让竞争对手跟着我们的节奏走了——所谓“胸有多大,舞台就有多大”,就是这个道理。

  于是,我把市面上所有优秀的App都定义为我的竞品。不气吞山河,又怎能兼济天下?

1.2 竞品分析要研究的几个方向

  对于竞品,我们要研究他们有哪些做的好的地方,从技术层面,有以下几点:

  • 为什么他们的App体积比我们小?
  • 为什么他们的App访问速度比我们快?
  • 为什么他们的App不发版也能上新功能
  • 为什么他们的App基本就不怎么崩溃?

  这些问题和答案在后续章节会陆续介绍。

1.3竞品分析与拿来主义

  第一次听到“竞品分析”这个词语,是从产品经理的口中。

  从产品层面,“竞品分析”就是把竞争对手优秀的产品仔细研究一番,然后原封不动照搬到自家产品上。这样的抄袭多了,以致于几年前有分析师在比较了某个领域的几款App首页后,得到的结论是这些App看起来都是同一个设计师设计的,因为排版风格都是一样的。

  对此我也只能呵呵付诸一笑。我观察到的情况是,这种竞品分析后抄袭得到的产品,只学习到了人家的皮毛,而没有领会到产品内在的精髓,以致于产品上线了,但效果并不如竞争对手——并没有把“为什么要这么做、这样做的好处是什么”理解透,这就是盲目抄袭的后果,短期内效果还不明显,因为移动互联网现如今是烧钱的时代,大家都是赔本赚吆喝,都追求的是用户量,但是等钱烧完了开始追求利润的时候,就会发现这种反噬。所以研究竞品,如果存粹是为了抄袭,就意义不大了。

  从技术层面,竞品分析则是为了取长补短。每个App在技术上都有做的好和不好的地方。我们看到了别人家App的长处,就要思考自家App如果取长补短。

  这就是鲁迅先生倡导的“拿来主义”,在拿来的同时,又不能生搬硬套,并不是所有外来的技术都适用与我们,要有选择地吸收。

2 App安装包的结构

2.1 Android安装包的结构

  Android的安装包是apk格式的文件。我们将其后缀名apk改为zip,就可以看到安装包中的内容。

  如图9-1所示,所有的Android安装包解压后都具有这样的目录结构:

  App竞品技术分析 序言_第1张图片

  图9-1 Android安装包解压后的目录结构

  简单介绍一下这些目录和文件的用途:

  • resources.arscz这个文件是编译后的二进制资源文件的索引,也就是apk文件的资源表(索引)。
  • lib目录下的子目录armeabi存放的是一些so文件。
  • META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。但这个目录下的文件却不会被签名,从而给了我们无限的想象空间。
  • assets目录下面可以看到很多基础数据,以及一些本地会使用到的html、css和JavaScript文件。
  • res目录下面的anim子目录很值得研究,这个目录存放App所有的动画效果。Android做动画可以使用XML来配置,而不是写代码。iOS的动画都是使用代码写出来的,这是件很费力气的事情。一种好的解决方案是,在App的Android版本中找到某个动画对应的xml,将其翻译为iOS的动画语言即可。

  注意,res目录中的很多XML文件打开后是乱码,AndroidManifest.xml也是如此,那是因为打包的时候对XML文件进行了压缩,所以看到的往往是全角的字符和乱码,不便于查找到我们想要看的内容。有一款神器用于看到apk包中正常的内容,AXMLPrinter2.jar,它可以将apk中已经处理过的XML还原为可读格式。命令如下所示:

  java -jar AXMLPrinter2.jar AndroidManifest.xml

2.2 iOS安装包的结构

  iOS的安装包是ipa格式的文件。我们将其后缀名ipa改为zip,就可以看到安装包中的内容。

  所有的iOS安装包解压后都具有如图9-2的目录结构:

  clip_image004

  图9-2 iOS安装包解压后的目录结构

  其中Payload目录下是一个包,里面有这个App所需要的所有图片、音频、布局文件、配置文件和可执行文件,bundle文件、Html5相关文件。

  很多png图片是打不开的,那是因为在iOS打包时,对一部分png图片进行了压缩。

  好了,接下来就要开始我们的竞品分析之旅了,以下是这个系列的十个主题,我每天会更新。

  • 竞品技术一瞥:开机速度
  • 竞品技术二瞥:Html5页面的打开速度
  • 竞品技术三瞥:安装包的大小
  • 竞品技术四瞥:性能优化
  • 竞品技术五瞥:数据采集工具
  • 竞品技术六瞥:热修补
  • 竞品技术七瞥:逼出来的奇思妙想
  • 竞品技术八瞥:模块化拆分
  • 竞品技术九瞥:这些第三方SDK你使用了吗?
  • 竞品技术十瞥:版本策略与App彩蛋

 

  当我们认为自己对这个世界已经相当重要的时候,其实这个世界才刚刚准备原谅我们的幼稚。

  这句话时刻警醒着我,不要沉迷于以往取得的成绩,作为技术负责人,要与时俱进,要有敏锐的嗅觉,才能跟得上时代的潮流。要永远抱着谦卑的心态,去学习竞争对手先进的技术和理念,才能在这个行业时刻占据着主动。

你可能感兴趣的:(App竞品技术分析 序言)