小米手机启动时联网

lxgwm2008 2013-10-17 04:29:37
最近在搭一个wifi,用小米手机测试,发现每次小米手机连上wifi时,都会自动发一个HTTP请求,抓到的包如下:

GET /v2/user/0/network/bucket?type=wifi&uuid=0&s=B6DC648CAE5A5EE7FA48E545F9F0D3DD HTTP/1.1
http.useragent: xmpush
Cookie:
User-Agent: Dalvik/1.6.0 (Linux; U; Android 4.0.4; MI 1SC MIUI/ICS24.0)
Host: 121.11.79.73
Connection: Keep-Alive
Accept-Encoding: gzip

我自己用浏览器试了一下这个HTTP请求,发现得到的结果是一个JSON串,内容如下:

{
"S": "Ok",
"R": {
"province": "河北",
"wifi": {
"api.micloud.xiaomi.net": [
"14.17.87.216",
"123.129.222.196",
"120.197.84.249",
"58.68.235.171"
],
"mipush": [
"14.17.87.216",
"123.129.222.196",
"120.197.84.249",
"58.68.235.171"
],
"app": [
"14.17.87.216",
"123.129.222.196",
"120.197.84.249",
"58.68.235.171"
],
"upload": [
"14.17.87.217",
"112.90.247.43",
"120.197.84.251",
"58.68.235.172"
],
"smallfiles": [
"14.17.87.216",
"123.129.222.196",
"120.197.84.249",
"58.68.235.171"
],
"market.xiaomi.com": [
"14.17.87.216",
"123.129.222.196",
"120.197.84.249",
"58.68.235.171"
],
"api": [
"121.11.79.73",
"112.90.33.211",
"120.197.84.250",
"58.68.235.172"
],
"download": [
"223.202.255.21",
"107.23.52.182",
"58.68.235.172",
"59.151.110.254"
]
},
"X-Forwarded-Ip": "119.253.46.2",
"stat-domain": "s.mi1.cc",
"ip": "119.253.46.2",
"stat-percent": 0.05,
"ttl": 3600,
"city": "廊坊",
"country": "中国",
"isp": "",
"tid": -1,
"wap": {
"api.micloud.xiaomi.net": [
"14.17.87.216",
"123.129.222.196",
"120.197.84.249",
"58.68.235.171"
],
"mipush": [
"14.17.87.216",
"123.129.222.196",
"120.197.84.249",
"58.68.235.171"
],
"app": [
"14.17.87.216",
"123.129.222.196",
"120.197.84.249",
"58.68.235.171"
],
"upload": [
"14.17.87.217",
"112.90.247.43",
"120.197.84.251",
"58.68.235.172"
],
"smallfiles": [
"14.17.87.216",
"123.129.222.196",
"120.197.84.249",
"58.68.235.171"
],
"market.xiaomi.com": [
"14.17.87.216",
"123.129.222.196",
"120.197.84.249",
"58.68.235.171"
],
"api": [
"121.11.79.73",
"112.90.33.211",
"120.197.84.250",
"58.68.235.172"
],
"download": [
"223.202.255.21",
"107.23.52.182",
"58.68.235.172",
"59.151.110.254"
]
}
}
}

有哪位知道这是在干吗?
...全文
215 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
appleibm 2013-10-17
  • 打赏
  • 举报
回复
这个手机默认是开通什么云推送服务的???
tantahe 2013-10-17
  • 打赏
  • 举报
回复
http://www.miui.com/thread-1378432-1-1.html 105楼小米开发人员的解释: 你好,我来解释一下这个事情吧。我是小米的开发人员汪轩然,负责米聊和miui中的推送服务的开发工作。 首先很佩服兄台的钻研精神,我们的专业测试也不过如此了,在此表示感谢。 然后我解释一下为什么miui中需要一个长连接。当你开通了小米云,网络短信等服务时,由于需要及时收到服务器下发的推送数据(比如你的通讯录在网页端有更新,有人给你发了网络短信等),因此miui系统需要维护一个长连接,保证这些数据的实时性。 而楼主看到的这些“莫名其妙”的http请求,其实是这个长连接中的一些数据交互。也许你会继续追问下去,长连接不一般都是基于TCP协议的吗?为什么会是http请求呢?确实,一般我们都是通过TCP来维护这个长连接的,而当碰到一些比较特殊的情况,比如网关把TCP所需访问的端口给封禁了,或者直接把我们的协议给封禁了,在这种情况下,为了让miui上的推送服务仍然工作,我们采用了使用http的long pulling来实现长连接的技术(这种技术被称为BOSH,楼主有兴趣的话可以去google一下)。因此你看到的所有的数据都是http请求。 好吧,还有最后一个疑问,为什么会这么频繁?那是因为通常在开机的时候,系统并不知道自己不在线的这段时间,数据都有哪些变化,因此需要通过这条长连接,把自己各种数据上次更新的时间点告知服务器,然后服务器根据这些时间点,推送下相关的离线数据。由于在这条长连接上的业务比较多(通讯录,短信,通话记录等),因此你看到的请求会比较频繁。而当这些同步的请求完成之后,如果没有数据,以后的请求就不会如此频繁了,而会维持在每5分钟一个请求的频率。否则,miui用户的流量早就爆了。 不知这个答案能否让楼主满意?
小米随身wifi驱动客户端(小米wifi驱动)是首次在使用小米随身WiFi的时候要下载的,是小米公司又随身wifi的驱动程序,插在台式机上,小米随身wifi驱动(小米wifi驱动)是可以做无线网卡接收Wi-Fi上网的,作为“随身Wi-Fi”,其作用是把台式机或笔记本电脑的网络发射为Wi-Fi热点,可以供手机、平板或者笔记本电脑等有Wi-Fi功能的设备使用。 小米随身wifi驱动(小米wifi驱动)使用方法: 第一步、拥有一台已经联网的PC台式机或者笔记本电脑,将小米随身WiFi插入USB插口。 第二步、使用移动设备连接小米随身WiFi创建的免费WiFi网络(如首次使用,需在官网下载驱动安装)。 OK,大功告成,用你的手机、PAD等移动设备开始免费上网吧。 小米随身wifi驱动(小米wifi驱动)更新内容: 1、支持小米账号绑定云U盘,数据随身携带更安全 2、全新的云U盘界面,可以按类别浏览文件,更加贴心 3、支持切换无线网卡模式,电脑可以通过随身WiFi扫描并连接附近的WiFi网络 4、优化了设备管理界面的默认显示策略 5、提升了打开设备管理展示设备信息的速度 6、修复了主界面与设置界面隐藏密码不同步的问题 7、修复了苹果设备重连时设备名称恢复为默认的问题 8、修复了点击任务栏图标窗口没有最小化的问题 小米随身wifi驱动(小米wifi驱动)截图:
TcStatInterface是自定义统计SDK,完全放弃第三方平台,让app拥有自主的数据统计功能,支持页面统计 自定义事件统计 APP启动退出统计,不同渠道统计。客户端SDK功能概述在使用统计服务前,开发者先要拿到本身APPID。其中AppId是客户端的身份标识,在客户端SDK初始化时使用。然后下载最新Library的 SDK压缩包,其中包括了Android SDK和AndroidDemo。Android版SDK以Module形式提供, 你的APP只需要添加少量代码和配置,即可完成接入TcInterface统计服务。统计服务AndroidSDK所有的接口都封装在TcStatInterface抽象类的静态方法中,主要功能接口请参考第3节API说明。应用在启动时,需要调用 initialize方法来初始化统计服务,之后便可按照统计的业务需求,调用统计数据上报接口上报统计打点。 SDK提供了接口给开发者来设置向统计统计服务器上报统计数据的策略,开发者可以在任意时候调用修改策略。客户端SDK上报的数据包括默认事件统计、应用 全局(AppAction)统计(用于统计app的唤醒、打开关闭频率、使用时长等)、页面访问统计(Page)和自定义事件统计(Event)。 统计SDK提供app的崩溃日志收集功能(统计SDK2.0 将会新增)。功能开启后,对于app在使用过程中的崩溃,SDK将自动采集崩溃日志,并上传到统计后台;统计后台会根据app版本,对崩溃进行聚合、展 示。开发者可以根据app实际情况情况,将该崩溃标记成已处理或者忽略状态。SDK使用配置本节主要介绍使用好房统计SDK前的准备工作,开发者也可以参照SDK中的demo来配置。2.1.  配置AndroidManifest.xml文件 SDK支持的最低安卓版本为2.2。统计服务需要的权限列表 权限 对应的5种权限,用途如下:网络访问权限,需要联网以便于向小米统计服务端上报统计数据。 查看网络状态,用于根据不同的网络环境,选择相应的上报策略。同时也需要上报当前的网络环境用于后台统计展示。 读取手机状态和身份,用于获取设备的唯一标识,为当前设备生成一个唯一设备ID。 查看Wifi状态权限,用于获取mac地址,生成设备唯一标示。 获取用户地理位置信息,用于获取精准确的地理位置,变于统计用户分布情况。2.2. 初始化统计服务 应用启动时,需要调用统计SDK中的初始化方法,传入appID(目前已定义好相关APPID,参见下表)等身份验证参数和应用对应的渠道号。在调用其他统计服务相关API前,必须调用本方法初始化统计服务, 建议您在程序的Application的onCreate中初始化Tamic统计服务。传入即可。APP常规数据统计本节主要介绍如何设置数据上报策略,如何记录页面访问行为和用户自定义事件。本节也介绍了通过集成测试模块验证SDK是否集成成功的方法。3.1. 数据上报策略统计服务SDK会先把数据记录缓存在本地,然后根据开发者设定的数据上报策略,触发上报流程。SDK中提供了一系列数据上报策略供开发者选择,这些策略包括:UPLOAD_POLICY_REALTIME 实时上报。每当有一条新的记录,就会激发一次上报。UPLOAD_POLICY_WIFI_ONLY 只在WIFI下上报。当设备处于WIFI连接时实时上报,否则不上报记录。UPLOAD_POLICY_BATCH 批量上报。当记录在本地累积超过一个固定值时(100条),会触发一次上报。UPLOAD_POLICY_WHILE_INITIALIZE      启动时候上报。每次应用启动(调用initialize方

80,359

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧