android13(T) 网络比分机制

2023-11-21 10:44
文章标签 网络 机制 android13 比分

本文主要是介绍android13(T) 网络比分机制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

网络比分核心类

packages\modules\Connectivity\framework\src\android\net\NetworkScore.java
packages\modules\Connectivity\framework\src\android\net\NetworkAgent.java
packages\modules\Connectivity\service\src\com\android\server\ConnectivityService.java

1、WIFI 默认分数 60

packages\modules\Wifi\service\java\com\android\server\wifi\WifiScoreReport.java

// Cache of the last score
private int mLegacyIntScore = ConnectedScore.WIFI_INITIAL_SCORE;//60private NetworkScore.Builder getScoreBuilder() {// We should force keep connected for a MBB CMM which is not lingering.boolean shouldForceKeepConnected =mCurrentRole == ActiveModeManager.ROLE_CLIENT_SECONDARY_TRANSIENT&& !mShouldReduceNetworkScore;int keepConnectedReason =shouldForceKeepConnected? NetworkScore.KEEP_CONNECTED_FOR_HANDOVER: NetworkScore.KEEP_CONNECTED_NONE;boolean exiting = SdkLevel.isAtLeastS() && mWifiConnectedNetworkScorerHolder != null? !mIsUsable : mLegacyIntScore < ConnectedScore.WIFI_TRANSITION_SCORE;return new NetworkScore.Builder().setLegacyInt(mShouldReduceNetworkScore ? LINGERING_SCORE : mLegacyIntScore).setTransportPrimary(mCurrentRole == ActiveModeManager.ROLE_CLIENT_PRIMARY).setExiting(exiting).setKeepConnectedReason(keepConnectedReason);}

packages\modules\Wifi\service\java\com\android\server\wifi\ConnectedScore.java

 /** Maximum NetworkAgent score that should be generated by wifi */public static final int WIFI_MAX_SCORE = 60;/** Initial Wifi score when starting up NetworkAgent. */public static final int WIFI_INITIAL_SCORE = WIFI_MAX_SCORE;

2、4G 默认分数 50

frameworks\opt\telephony\src\java\com\android\internal\telephony\data\TelephonyNetworkFactory.java


private static final int TELEPHONY_NETWORK_SCORE = 50;public TelephonyNetworkFactory(Looper looper, Phone phone, PhoneSwitcher phoneSwitcher) {super(looper, phone.getContext(), "TelephonyNetworkFactory[" + phone.getPhoneId()+ "]", null);mPhone = phone;mInternalHandler = new InternalHandler(looper);mSubscriptionController = SubscriptionController.getInstance();mAccessNetworksManager = mPhone.getAccessNetworksManager();setCapabilityFilter(makeNetworkFilter(mSubscriptionController, mPhone.getPhoneId()));setScoreFilter(TELEPHONY_NETWORK_SCORE);mPhoneSwitcher = phoneSwitcher;.......// apply or revoke requests if our active-ness changesprivate void onActivePhoneSwitch() {logl("onActivePhoneSwitch");if (mSubscriptionId == mSubscriptionController.getActiveDataSubscriptionId()) {logl("onActivePhoneSwitch: set primary flag for phoneId: " + mPhone.getPhoneId());setScoreFilter(new NetworkScore.Builder().setLegacyInt(TELEPHONY_NETWORK_SCORE).setTransportPrimary(true).build());} else {setScoreFilter(new NetworkScore.Builder().setLegacyInt(TELEPHONY_NETWORK_SCORE).setTransportPrimary(false).build());}

3、以太网 默认分数 Integer.MIN_VALUE

packages\modules\Connectivity\service-t\src\com\android\server\ethernet\EthernetNetworkFactory.java

 private static NetworkScore getBestNetworkScore() {return new NetworkScore.Builder().build();}private void setCapabilities(@NonNull final NetworkCapabilities capabilities) {mCapabilities = new NetworkCapabilities(capabilities);mLegacyType = getLegacyType(mCapabilities);if (mLinkUp) {// registering a new network offer will update the existing one, not install a// new one.mNetworkProvider.registerNetworkOffer(getBestNetworkScore(),new NetworkCapabilities(capabilities), cmd -> mHandler.post(cmd),mNetworkOfferCallback);}}

这篇关于android13(T) 网络比分机制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/401843

相关文章

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

MySQL中的锁机制详解之全局锁,表级锁,行级锁

《MySQL中的锁机制详解之全局锁,表级锁,行级锁》MySQL锁机制通过全局、表级、行级锁控制并发,保障数据一致性与隔离性,全局锁适用于全库备份,表级锁适合读多写少场景,行级锁(InnoDB)实现高并... 目录一、锁机制基础:从并发问题到锁分类1.1 并发访问的三大问题1.2 锁的核心作用1.3 锁粒度分

Redis的持久化之RDB和AOF机制详解

《Redis的持久化之RDB和AOF机制详解》:本文主要介绍Redis的持久化之RDB和AOF机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述RDB(Redis Database)核心原理触发方式手动触发自动触发AOF(Append-Only File)核

PostgreSQL中MVCC 机制的实现

《PostgreSQL中MVCC机制的实现》本文主要介绍了PostgreSQL中MVCC机制的实现,通过多版本数据存储、快照隔离和事务ID管理实现高并发读写,具有一定的参考价值,感兴趣的可以了解一下... 目录一 MVCC 基本原理python1.1 MVCC 核心概念1.2 与传统锁机制对比二 Postg

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

Jvm sandbox mock机制的实践过程

《Jvmsandboxmock机制的实践过程》:本文主要介绍Jvmsandboxmock机制的实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、背景二、定义一个损坏的钟1、 Springboot工程中创建一个Clock类2、 添加一个Controller

Linux网络配置之网桥和虚拟网络的配置指南

《Linux网络配置之网桥和虚拟网络的配置指南》这篇文章主要为大家详细介绍了Linux中配置网桥和虚拟网络的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、网桥的配置在linux系统中配置一个新的网桥主要涉及以下几个步骤:1.为yum仓库做准备,安装组件epel-re