A device comprising: one or more processors; a plurality of network interfaces (212, 216, 220) configured to create and maintain a plurality of different types of network connections; memory storing a policy store of the device that maintains application profiles for a plurality of applications stored on the device; and a network connection management module stored on the memory and executable by the one or more processors, the network connection management configured to: receive, from one of the plurality of applications, a request to communicate data over a network; access a current execution state in an application profile associated with the one of the plurality of applications, the application profile associating the current execution state with network performance requirements that ensure an acceptable level of service for the one of the plurality of applications; for each network interface of the plurality of network interfaces, obtain a connectivity profile associated with the network interface, the connectivity profile including one or more types of network connections, an expected power consumption associated with an individual type of network connection, an expected network performance associated with an individual type of network connection, and information of a current location of the device; determine, based at least in part on the connectivity profiles obtained and the network performance requirements for the one of the plurality of applications, an order of connectivity options, wherein an individual connectivity option comprises a network interface and a type of network connection; select a connectivity option from the order of connectivity options; and use the network interface and the type of network connection of the selected connectivity option to communicate the data. one or more processors; a plurality of network interfaces (212, 216, 220) configured to create and maintain a plurality of different types of network connections; memory storing a policy store of the device that maintains application profiles for a plurality of applications stored on the device; and a network connection management module stored on the memory and executable by the one or more processors, the network connection management configured to: receive, from one of the plurality of applications, a request to communicate data over a network; access a current execution state in an application profile associated with the one of the plurality of applications, the application profile associating the current execution state with network performance requirements that ensure an acceptable level of service for the one of the plurality of applications; for each network interface of the plurality of network interfaces, obtain a connectivity profile associated with the network interface, the connectivity profile including one or more types of network connections, an expected power consumption associated with an individual type of network connection, an expected network performance associated with an individual type of network connection, and information of a current location of the device; determine, based at least in part on the connectivity profiles obtained and the network performance requirements for the one of the plurality of applications, an order of connectivity options, wherein an individual connectivity option comprises a network interface and a type of network connection; select a connectivity option from the order of connectivity options; and use the network interface and the type of network connection of the selected connectivity option to communicate the data. receive, from one of the plurality of applications, a request to communicate data over a network; access a current execution state in an application profile associated with the one of the plurality of applications, the application profile associating the current execution state with network performance requirements that ensure an acceptable level of service for the one of the plurality of applications; for each network interface of the plurality of network interfaces, obtain a connectivity profile associated with the network interface, the connectivity profile including one or more types of network connections, an expected power consumption associated with an individual type of network connection, an expected network performance associated with an individual type of network connection, and information of a current location of the device; determine, based at least in part on the connectivity profiles obtained and the network performance requirements for the one of the plurality of applications, an order of connectivity options, wherein an individual connectivity option comprises a network interface and a type of network connection; select a connectivity option from the order of connectivity options; and use the network interface and the type of network connection of the selected connectivity option to communicate the data.