Android Wifi开发——评分规则(十二)
上一章节我们最后拿到了 WiFi 的评分以及获取评分的整个流程,这一章节我们看一下他的评分规则是怎样的。当前安卓 WiFi 框架中已实现的评分器有 CompatibilityScorer、ScoreCardBasedScorer、BubbleFunScorer、ThroughputScorer 这四种,分别表示这不同的评分策略,但是四种评分器都是基于热点信号和热点频率的前提下进行的有策略的倾斜评分。首先看一下最后获取评分的方法。
源码位置:/packages/modules/Wifi/service/java/com/android/server/wifi/CompatibilityScorer.java
@Override
public ScoredCandidate scoreCandidates(@NonNull Collection<Candidate> candidates) {ScoredCandidate choice = ScoredCandidate.NONE;for (Candidate candidate : candidates) {ScoredCandidate scoredCandidate = scoreCandidate(candidate);if (scoredCandidate.value > choice.value) {choice = scoredCandidate;}}return choice;
}
这里主要调用 scoreCandidates() 方法,而 scoreCandidates() 方法中会调用评分器中的 scoreCandidate() 方法对候选热点列表进行遍历评分,然后保存分数最高的一个热点。下面看一下每个评分器中对应的 scoreCandidates() 方法。