Nowadays, mobile users integrate multiple wireless network interfaces in their devices, like IEEE 802.11, 2G/3G/4G cellular, WiMAX or Bluetooth since these heterogeneous technologies can provide Internet access in urban areas. In this context, there is a potential for mobile users to exploit the diversity of the wireless interfaces in order to be always best connected to the networks at any given time and place. However, taking advantage of this network diversity requires an efficient mobility and multihoming management. Regarding mobility, mobile users need to discover wireless networks and perform seamless handovers between different points of attachment. In order to support multihoming and allow using multiple wireless networks simultaneously, there is a need to define network selection mechanisms to assign the applications to the different wireless interfaces in the most optimal manner. In this thesis, we first provide a characterization of the network diversity by exploring and analyzing the performance of current wireless deployments in urban areas, especially considering cellular and IEEE 802.11 community networks. Then, we focus on IEEE 802.11 mobility, particularly on the access point scanning process, by providing two adaptive algorithms that aim to set the most suitable scanning parameters for each scenario condition. We evaluate these algorithms by experimentation and compare their performance against common fixed-parameters scanning strategies. Finally, we study the network selection in such a multi-homed scenario and provide a decision-making algorithm to find optimal flow-interface assignations, considering QoS and energy consumption criteria. This decision algorithm is modelled using a multi-objective optimization problem and genetic algorithms. We evaluate, by the means of simulations, the performance of our approach against preference-based decision-making algorithms.