
Network
文章平均质量分 84
LoneHugo
寻寻觅觅,暮然回首~
展开
-
Android WiFi Dhcp 获取到 IP 和配置的过程
在 ConnectivityService 中负责配置,由updateLinkProperties 来完成: private void updateLinkProperties(NetworkAgentInfo networkAgent, LinkProperties newLp, LinkProperties oldLp) { int netId = networkAgent.network.netId; // The Network.原创 2021-04-28 16:01:32 · 1993 阅读 · 0 评论 -
Android WiFi 扫描并选择网络进行连接
在 WifiConfigManager 中通过createNewInternalWifiConfigurationFromExternal 创建新的 WifiConfiguration 配置项,并且创建合法的 networkId 信息,通过 mNextNetworkId 参数递增的方式对新创建的 Network 赋值 Id; 创建过程发生在addOrUpdateNetworkInternal 接口中,进行网络的添加,其中传入的 config 为空或者是新的 config 信息,networkId 为 ..原创 2021-04-25 12:10:56 · 2450 阅读 · 2 评论 -
NetworkManagementService 解读
在前面文章介绍了其自身定义的接口功能提供给客户端:https://blog.youkuaiyun.com/Vince_/article/details/115203280在与底层 netd 通信过程中实际上采用了NetdUnsolicitedEventListener 内部类定义的接口进行,它自身作为服务端,netd 作为客户端对该功能进行引用调用。NetdUnsolicitedEventListener 的 定义在 NetworkManagementService.java 中,不过其继承实现了接口类IN..原创 2021-03-27 10:49:47 · 1015 阅读 · 0 评论 -
Android 网络服务类提供的服务接口
1.NetworkManagementService继承了INetworkManagementService.Stub,因此提供对应的 AIDL 定义的服务:在 frameworks/base/core/java/android/os/INetworkManagementService.aidl 中定义interface INetworkManagementService{ /* Register and unregister an observer to receive ev...原创 2021-03-25 14:28:09 · 3159 阅读 · 0 评论 -
Android WiFi 获取 IP 过程
FdEventsReader 类在其 start 接口中调用了 createAndRegisterFd(),调用了 createFd 接口创建了 mFd 对象,并将对应的对象通过 MessageQueue() 的addOnFileDescriptorEventListener 方法加入到监听队列中;其中要求 Subclasses 必须实现createFd 接口并且重载 handlePacket 方法;PacketReader 类继承FdEventsReader 类它作为抽象类需要子类作...原创 2021-01-28 16:28:58 · 1437 阅读 · 1 评论 -
WifiConfiguration 的各字段的填充和修改
新建在 WifiConnectivityManager 处理消息进行 handleScanResults 操作的过程中,会通过 ScoredNetworkNominator 进行 nominateNetworks 操作,从中调用 ScanResultUtil::createNetworkFromScanResult 方法创建新的 WifiConfiguration 对象,并且对其进行必要的初始化ScanResultUtil::setAllowedKeyManagementFromScanResult原创 2021-01-26 23:02:34 · 1035 阅读 · 0 评论 -
FwmarkServer 实现以及功能分析
创建还是在 main 函数中:int main() { ... FwmarkServer fwmarkServer(&gCtls->netCtrl, &gCtls->eventReporter, &gCtls->trafficCtrl); if (fwmarkServer.startListener()) { ALOGE("Unable to start FwmarkServer (%s)", strerror(e原创 2021-01-07 14:36:15 · 1207 阅读 · 1 评论 -
Netd 中 NetworkManager 分析
NetlinkManager 管理 netd 中 NetlinkHandler 的初始化并启动监听和处理;NetlinkHandler 处理和转发 Kernel 的相应事件;SocketListener 监听 socket,启动监听并接收 socket 事件;SocketClient 实际的消息处理者,他将 event 通过 socket 发送给 java 层进行处理;NativeDaemonConnector java 层的 socket 通讯端,用于接收和下发事件;NetworkMa原创 2021-01-06 21:05:00 · 957 阅读 · 2 评论 -
Netd 服务的 netd 套接字创建
在上一篇分析android_get_control_socket 获取 UNIX 域套接字 FD中留下一个问题:netd UNIX 域套接字何时创建的呢?现在来分析这个问题。前面分析了在 netd 中是通过 android_get_control_socket 接口查询到对应的 UNIX 域套接字的 fd,而实际上netd 后台服务进程的同名套接字 “netd” 的创建是在 Framework 层的 NetworkManagementService 部分,以后简称 NMS,关于 NMS 的详细内容后..原创 2020-12-29 12:17:09 · 1133 阅读 · 0 评论