因为国内 Android 生态百家争鸣(其实TM就是混乱),各个手机厂家对 Android Rom 进行了深度定制,衍生出了各类 Android 系统。因为国内没法使用 Google GCM 服务,Push 消息没法送达。再加上各个 Android Rom 对后台的严苛管理,致使自建通道的长链接进程没法正常存活,如极光推送、友盟推送在 oppo 和小米手机上也没法作到及时推送。Android绿色联盟看来现现在也期望不上。可是公司业务迫切须要Push,让咱们作一个技术选型。为了保持一个严谨的态度咱们爬取了豌豆荚商店14种分类,每种分类前100名的APP,分析看看常见的几个push通道哪个是接入率最高的。(原本爬取的是APP排行榜前200名,结果发现阿里系的基本都是接入友盟,腾讯系是接入信鸽,这样样本太少分析不够准确)android
咱们打开豌豆荚APP的分类,点击影音播放分类 git
sign
加密字段咱们没法经过Python编写自动请求脚本,因为我也懒得研究这个加密的md5是怎么来的,就直接把Charles的抓包response保存为json文件放在相应的目录,经过一个脚本去解析咱们须要的数据。 经过获取APP json的
downloadUrl
字段获取下载连接下载全部APP。1400个所有下载完成以下:
咱们经过apktool逆向工具解压apk文件,而后检索相应的特征就能够了,例如github
这里添加了一个OKHttp SDK的分析主要是做为一个基准,看一个成熟的SDK会有多少的接入率。还有一个缘由是看看该分类的APP对网络的依赖性是否比较大,好比系统工具
分类下的APP显然没有新闻阅读
和网上购物
分类对网络的依赖性大。
因为apk文件被apktool解压后文件会变得超级大,因此咱们只能逐个分类分析,每分析完一个分类删除全部解压文件后再分析下一个分类,最后再整合数据。(其实就是特么穷逼,只能买得起256G的MAC,放不下这么多数据=-=)
咱们经过Python csv将分析结果输出为csv文件,便于后面导入到Excel后进行图形化数据分析。json
因为在下载或者apktool解压的过程当中可能有个别apk下载或者解压失败,咱们就直接跳过,由于个别样本的错误并不会影响咱们总体数据的分析。 网络
系统工具
分类的APP对网络的依赖性果真是最低的。好比一个文件管理APP要啥网络权限新闻阅读
和网上购物
成熟度较高育儿亲子
分类下面的APP成熟度最低,可是也是如今比较热门的互联网+行业。育儿亲子
分类下的极光推送明显优点,这估计是他们主打的营销方向,即新生和小型客户。github.com/LitterSun/S…
第一次写Python,简直稀烂,请轻虐……工具