了解Android"无线电状态机"以获得更好的电池寿命

kiz*_*zx2 15 mobile networking android battery electronics

在Android文档页面优化下载以实现高效网络访问,要点是"唤醒收音机不好","批量转移"或"背负GCM".那篇文章为好奇留下了一些内在的工作原则:

  1. 它说:"每次创建新的网络连接时,无线电都会转换为全功率状态." 什么是连接这里的意思?那是TCP连接吗?这是否意味着发送UDP数据包不会唤醒无线电?

  2. Standby中它说:"待机:最小能量状态,在此期间没有网络连接是活动的或需要的." 这是否意味着网络模块完全关闭?如果是这样,即使设备处于睡眠模式,GCM如何工作?如果没有,与全功率模式相比,大致使用多少电池?

  3. "每次创建新的网络连接时,无线电都会转换为全功率状态." 这与长期存在的TCP连接有何关系?如果我创建TCP连接然后只是继续接收数据包,那么我将不会创建新的网络连接或发送任何数据.这是否允许网络模块进入待机模式?

  4. iPhone的工作方式几乎一样吗?

kiz*_*zx2 19

@ minhaz的链接让我开始了解网络层方面的蜂窝网络.所以这里:

这个问题主要是关于如何实施3G网络.回答这个核心问题:"那么GCM如何在'闲置状态'下接收消息"可以回答上述所有问题.

简答

是的,在空闲模式中,无线电仍然可以接收有限的"控制信号".基本上,网络运营商将要求设备切换能量状态以便能够接收实际有效载荷.他们使用的机制类似于您接听电话或短信的方式.

答案很长

事实证明,状态转换是由网络运营商控制的,而不是手机本身.来自资源无线电控制(RRC); 协议规范:

8.6.3.3通用状态转换规则取决于接收的信息元素

IE(信息元素)"RRC状态指示符"指示UE(用户设备)将进入的状态.UE应进入IE"RRC状态指示符..."所指示的状态.

当RRC处于空闲模式时,网络运营商如何做到这一点?从3G,4G及其他:将网络,设备和Web结合在一起:

2.2.3.3无线电资源控制国

...空闲状态 - 未与网络主动通信的设备处于此状态.在这里,他们定期收听寻呼信道以接收语音或视频呼叫和短信.

子弹中的LTE:

23.1 RRC连接建立过程总是由UE发起,但可以由UE或网络触发....网络通过发送寻呼消息来触发RRC连接建立过程....

因此,我们有它.现在很明显看到所有这些联系在一起.回答原始问题:

  1. 连接意味着RRC连接.由于RRC连接是第3层,所有(正常)种类的网络活动(包括TCP和UDP)将创建RRC连接(即"唤醒无线电").

  2. 由于无线电仍然需要收听寻呼信道,因此它不会完全关闭.根据经验,它仍然使用 由@minhaz提供的XMPP链接实验的能量.结果,与其他州相比,能耗降低了2个数量级.

  3. 正如在Stack Overflow上的各个地方所提到的那样,显然TCP连接在内存中维护,并且并不真正关心底层是否经历了RRC重新连接过程.如果TCP连接空闲,则可以释放RRC连接(即,UE可以变为空闲).如果它继续接收数据,则网络将不指示UE释放RRC连接,因此它不会进入空闲状态.

  4. 由于RRC属于基础3G的UMTS WCDMA,因此iPhone也可能运行类似.


笔记:

  • 我链接的资源混合了3G和4G.我怀疑4G是一种渐进式改进,所以主要概念可以在它们之间混合.

资源转储以获得更深入的理解(即上述摘要的来源):