UC浏览器的视频下载界面
QQ浏览器的视频下载界面
可以比较明显的看出来,UC浏览器的视频下载速度是比较快的,这个是为什么了?需要研究一下UC浏览器的视频下载是怎么做的?
UC浏览器竞品分析
我们简单分析一下UC浏览器的apk包:
UC浏览器的版本是UCBrowser_V12.5.4.1034.apk
使用AndroidStudio分析一下apk包的总结构:
发现有6个dex包,还有很多lib文件;
其中在classes5.dex中发现如下的代码:com.uc.vturbo包名下面有一些关键类
从名字上面已经比较清晰了,这是P2P下载的管理类,那么UC浏览器是否真的使用P2P下载了?
下载一个视频,发现在/sdcard/Android/data/com.UCMobile/files/.videocache文件夹下面有3个文件:
查看其中一个文件夹中的内容如下:
其中3f707cb48e86b496dd0708a5bdaf3b7d088a45dd_hh0039 是种子文件,3f707cb48e86b496dd0708a5bdaf3b7d088a45dd_vx00454是 M3U8索引文件。
其中种子文件如下:
这里种子文件对应的分片内容正好对应 M3U8的分片内容:
UC视频利用的了本地代理实现了边下边播的技术:
解析tracker信息,然后利用P2P下载技术去追踪视频的种子文件。
抓包发现发起了很多请求:
10.12.65.96是本机的IP,发现server端的IP不断在变化,这次这是P2P的技术将client作为资源分发的工具,所以才能发现请求同域名的资源,请求的server端的IP不断在变化。
torrent文件是怎么解析的?下回分解。
总结
- UC浏览器使用本地代理实现边下边播,请看下面的文章分析Android 平台视频边下边播技术
- UC浏览器使用P2P实现视频下载