In this paper we present Multi Nets, a system which is capable of switching between wireless network interfaces on mobile devices in real-time. Multi Nets is motivated by the need of smart phone platforms to save energy, offload data traffic, and achieve higher throughput. We describe the architecture of Multi Nets and demonstrate the methodology to perform switching in Linux based mobile OSes such as Android. Our analysis on mobile data traces collected from real users shows that with real-time switching we can save 27.4% of the energy, offload 79.82% of the data traffic, or achieve 7 times more throughput on average. We deploy Multi Nets in a real world scenario and our experimental results show that depending on the user requirements, it outperforms the state-of-the-art Android system either by saving up to 33.75% energy, or achieving near-optimal offloading, or achieving near-optimal throughput while substantially reducing TCP interruptions due to switching.