背景

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

获取APP下载数据

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

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

分析APP

我们通过apktool逆向工具解压apk文件,然后检索相应的特征就可以了,例如

  • 极光推送的检测->判断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后进行图形化数据分析。

各种分类的分析结果

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

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

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

汇总后分析结果

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

其他

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

项目地址

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

大家如果从数据中看到了什么其他的东西,欢迎评论留言!

转载于:https://juejin.im/post/5cc0476ff265da0363455150

Android Push哪家强——分析豌豆荚1400个APP相关推荐

  1. 屏蔽手机网页广告哪家强,还属百度APP

    屏蔽手机网页广告哪家强,还属百度APP,为什么这么说?各大网站站长有话语权 现在很多网站站长都会给自己的网站投放一些网络广告,由于现在都是移动端用户比较多,站长的心思都用在了移动端网站上,使用各大联盟 ...

  2. android 手机 跑分榜,Android手机哪家强?安兔兔鲁大师榜单见分晓!

    影响智能手机性能强弱的最关键部件就是SoC(处理器),这颗芯片采用的制程工艺.CPU架构和频率.GPU架构和频率都是至关重要的参数. 问题来了,想让普通消费者搞明白7nm和7nm EUV工艺的差异:C ...

  3. android+平板哪家强,安卓平板哪个好

    安卓平板电脑性价比排行 1. CUBE 酷比魔方 iPlay20 2020款 10.1英寸 Android 平板电脑(1920*1200dpi.4GB.64GB.LTE版.黑色.T1011) 商品简介 ...

  4. android手机哪家强,Android智能手机充电速度哪家强

    腾讯数码讯(文心)据Android Authority网站报道,所有移动设备都需要充电,目前的技术还没有到使移动设备不需要充电的水平.这是因为它们都使用了可充电电池,在为移动设备提供数个小时电力后,电 ...

  5. 深度学习框架哪家强?MXNet称霸CNN、RNN和情感分析,TensorFlow仅擅长推断特征提取

    深度学习框架哪家强:TensorFlow?Caffe?MXNet?Keras?PyTorch?对于这几大框架在运行各项深度任务时的性能差异如何,各位读者不免会有所好奇. 微软数据科学家Ilia Kar ...

  6. 【Android工具】安卓应用市场哪家强?chrome浏览器apk下载插件,play安装包下载,妈妈再也不用担心我找不到安装包了...

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 确切的说应该是PC工具,但是下载的是安卓应用安装包,还是放[Android工具]里感觉 ...

  7. Android视频直播源码开发直播平台、点播播放器哪家强?

    Android视频直播源码开发直播平台.点播播放器哪家强? 最近在项目中要加入视频直播和点播功能,那么问题来了,我需要一个播放器来播放视频流,那该如何选择呢?除了原生的VideoView(VideoV ...

  8. 1032 挖掘机技术哪家强 (20 分)(测试点分析)

    为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第 1 行给出不超过 10 5 的正整数 N,即参赛人数.随后 N ...

  9. 技术博客哪家强:CSDN、博客园、简书、开源中国OSChina等博客的详细分析比较

    技术博客哪家强 文章目录 技术博客哪家强 前言 为什么要写博客 技术博客哪家好 几家主要网站的对比 初步结论 参考资料 前言 最近这段时间不是很忙,想干点儿什么有意义的事儿.抽空系统学学Python这 ...

最新文章

  1. 【C++】C++11 STL算法(八):对未初始化内存的操作(Operations on uninitialized memory)、C库(C library)
  2. ldap的shema
  3. 一张大图了解ASP.NET Core 3.1 中的Authentication与Authorization
  4. 【RK3399Pro学习笔记】五、ROS与USB摄像头
  5. UI控件Telerik UI for WinForms发布R1 2019|附下载
  6. python报错ValueError: invalid literal for int() with base 10解决方法
  7. java 获取域名_Java获取域名,Java从URL地址中获取域名,Java从Request 获取域名
  8. 解决Myeclipse10 Building Workspace速度慢的问题
  9. go - range
  10. sql server 触发器
  11. 专题一——递归与递推
  12. 计算机中缺少mfc100.dll怎么办,大师为你细说win7系统启动程序提示计算机中丢失mfc100u.dll的解决技巧...
  13. 数学分析教程(科大)——1-(1~10)小节
  14. IDEA相对路径没有效果的问题
  15. 一纬度横直线等于多公里_【归纳整理】高中地理必修一知识点总结
  16. Intent中putExtra()方法用法
  17. 关于解决华硕TUF B360M-PLUS GAMING在WIN10下无网卡驱动的方法
  18. mac 不显示 外接屏幕_苹果电脑外接显示器显示不出来 - 卡饭网
  19. iOS开发中的Web应用概述
  20. Ormlite的工具使用

热门文章

  1. gdal gdal2tiles.py 的使用
  2. Gradually Vanishing Bridge for Adversarial Domain Adaptation
  3. Log4j 日志配置及初始化
  4. 不用安装Excel使用PSExcel自动处理Excel文件
  5. 球半足球分析,瑞典超:哥德堡 VS 代格福什 7月5日
  6. 2020四川大学计算机考研真题,2020年四川大学计算机考研初试874真题回忆!
  7. 周鸿祎亲自站台,360年度新旗舰究竟有何特别?
  8. 关于日历点击跳转以及短信点击跳转到指定联系人界面的一些记录
  9. 〖Python 数据库开发实战 - Python与Redis交互篇⑮〗- 综合案例 - 新闻管理系统 - 更新所编辑新闻状态(根据输入内容进行保存操作)
  10. mysql 的几种缓存,数据库缓存几种方式 -解道Jdon