http://blog.csdn.net/u010961631/article/details/48970107
在前一节《Framework中的连接管理机制》中简单介绍了连接管理的大致框架,包括ConnectivityManager、ConnectivityService、NetworkAgent等对象之间的关系以及消息流走向,本节在这些知识的基础上介绍连接管理的核心机制,即连接管理中的评分机制。
Android可以提供数据业务的对象主要有:移动数据网络、WIFI、蓝牙、网线等,这些连接本身都可以独立使用,但是对于用户来说,每一时刻又最多只能使用一种方式接入网络,那么当这些功能同时打开时,究竟如何选择最佳的接入环境呢?
连接管理通过一个评分机制来实现不同接入方式的选择。
具体来说就是,每一种上网方式在初始化时,都向ConnectivityService标明自己网络的分值(比如数据连接50,WIFI60,蓝牙69,网线70),当有更高分数的网络就绪时,就将当前分值低的连接断开。
而当当前网络被断开时,就寻找当前就绪的其他网络连接,选取分值高的进行接入。
并且,每一个网络接入时,都会进行有效性检测,如果检测不通过,将会被扣掉一定分数,此时该网络的优先级也会相应的下降。
下面我们利用四个小节来分别分析评分机制的原理:
《网络连接评分机制之NetworkFactory》
《网络连接评分机制之NetworkAgent》
《网络连接评分机制之NetworkMonitor》
《网络连接评分机制之再谈WIFI与数据切换过程》