Android 网络 --framework层面 -three
在<<Android 网络 --framework层面 -one>>文章中提到了NetworkFactory,本章较为详细的学习介绍下
- NetworkFactory 望文生义,就是网络的工厂, 它是系统中的网络工厂,也是CS向链路网络请求的统一接口,这个工厂可以生产网络也能releaseNetwork
- Android系统启动之初,数据和WiFi就通过WifiNetworkFactory和TelephonyNetworkFactory将自己注册到CS中,方便CS迅速响应网络请求
工厂的初始化
工厂的初始化
在frameworks/opt/telephony/src/java/com/android/internal/telephony/PhoneFactory.java
中的makeDefaultPhone方法中进行了初始(数据网络)
for (int i = 0; i < numPhones; i++) {
sTelephonyNetworkFactories[i] = new TelephonyNetworkFactory(
sPhoneSwitcher, sc, sSubscriptionMonitor, Looper.myLooper(),
sContext, i, sPhones[i].mDcTracker);
}
根据卡的数量初始化对应的TelephonyNetworkFactory,一个卡一个
在frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiStateMachine.java中初始化(wifi网络)
void maybeRegisterNetworkFactory() {
if (mNetworkFactory == null) {
checkAndSetConnectivityInstance();
if (mCm != null) {
mNetworkFactory = new WifiNet