Android Push哪家强——分析豌豆荚1400个APP

背景

因为国内 Android 生态百家争鸣(其实TM就是混乱),各个手机厂家对 Android Rom 进行了深度定制,衍生出了各类 Android 系统。因为国内没法使用 Google GCM 服务,Push 消息没法送达。再加上各个 Android Rom 对后台的严苛管理,致使自建通道的长链接进程没法正常存活,如极光推送、友盟推送在 oppo 和小米手机上也没法作到及时推送。Android绿色联盟看来现现在也期望不上。可是公司业务迫切须要Push,让咱们作一个技术选型。为了保持一个严谨的态度咱们爬取了豌豆荚商店14种分类,每种分类前100名的APP,分析看看常见的几个push通道哪个是接入率最高的。(原本爬取的是APP排行榜前200名,结果发现阿里系的基本都是接入友盟,腾讯系是接入信鸽,这样样本太少分析不够准确)android

获取APP下载数据

咱们打开豌豆荚APP的分类,点击影音播放分类 git

经过Charles抓包工具抓取数据
这样就能够获得APP的具体数据了,因为豌豆荚的request有一个 sign加密字段咱们没法经过Python编写自动请求脚本,因为我也懒得研究这个加密的md5是怎么来的,就直接把Charles的抓包response保存为json文件放在相应的目录,经过一个脚本去解析咱们须要的数据。 经过获取APP json的 downloadUrl字段获取下载连接下载全部APP。1400个所有下载完成以下:
`

分析APP

咱们经过apktool逆向工具解压apk文件,而后检索相应的特征就能够了,例如github

  • 极光推送的检测->判断AndroidManifest.xml中的关键字: cn.jpush.android.service.PushService
  • 个推的检测->判断AndroidManifest.xml中的关键字: com.igexin.sdk.PushService
    ......
  • OKHttp的检测->文件存在publicsuffixes.gz或者smali/ smali_classes*/okhttp

这里添加了一个OKHttp SDK的分析主要是做为一个基准,看一个成熟的SDK会有多少的接入率。还有一个缘由是看看该分类的APP对网络的依赖性是否比较大,好比系统工具分类下的APP显然没有新闻阅读网上购物分类对网络的依赖性大。
因为apk文件被apktool解压后文件会变得超级大,因此咱们只能逐个分类分析,每分析完一个分类删除全部解压文件后再分析下一个分类,最后再整合数据。(其实就是特么穷逼,只能买得起256G的MAC,放不下这么多数据=-=)
咱们经过Python csv将分析结果输出为csv文件,便于后面导入到Excel后进行图形化数据分析。json

各类分类的分析结果

因为在下载或者apktool解压的过程当中可能有个别apk下载或者解压失败,咱们就直接跳过,由于个别样本的错误并不会影响咱们总体数据的分析。 网络

经过14种分类的数据横向对比咱们得出一些结论:

  • 系统工具分类的APP对网络的依赖性果真是最低的。好比一个文件管理APP要啥网络权限
  • push的占有率也能够从侧面反映一个分类行业的成熟度,如新闻阅读网上购物成熟度较高
  • 育儿亲子分类下面的APP成熟度最低,可是也是如今比较热门的互联网+行业。
  • 育儿亲子分类下的极光推送明显优点,这估计是他们主打的营销方向,即新生和小型客户。

汇总后分析结果

  • 咱们能够看到在友盟、信鸽、极光和个推等这些第三方通道中,极光推送以极其微弱的优点领先。
  • 厂商通道中确实仍是华为大佬第一,不太小米也不差。
  • 信鸽推送多是起步比较晚,数据相差其余通道一大截。

其余

  • 为何没有分析vivo和oppo通道?由于这两个通道起步太晚,接入APP应该比较少,分析对比的意义也不是很大
  • 之后咱们技术选型须要采用某一个开源库的时候是否是能够先分析市场上APP的占有率,再作决定?
  • 是否是能够分析竞品的占有率?好比我是一个个推的员工,我分析极光和友盟的市场占有率以及客户名单,定向推销。

项目地址

github.com/LitterSun/S…
第一次写Python,简直稀烂,请轻虐……工具

你们若是从数据中看到了什么其余的东西,欢迎评论留言!

相关文章
相关标签/搜索