MULTI-INTERFACE CONNECTIVITY ON ANDROID - ConnectivityManager
http://varun-anand.com/publications/Thesis.pdf
2.1.1 Android Connection Management
The Network State Tracker is responsible for tracking any changes in the net- work state from the underlying kernel. This component maintains the state of an interface. Whenever an interface goes up or down, this component notifies the ConnectivityService module
which then takes appropriate action based on whether the interface got connected or disconnected.
Based on state change of a network interface, ConnectivityService module takes one of the following two actions:
handleConnect : This module manages the environment for the device to establish connectivity through the particular interface. It mainly takes care of updating DNS server entries (part of Android property system) and updates the kernel routing table with network
routes. It is also responsible for keeping only one interface active based on priority.
handleDisconnect: This module manages disconnection of network interfaces. It clears the kernel routing entries and DNS server entries from the Android property system.