The number of mobile users with a variety of applications that require on demand video content is growing rapidly. However, bandwidth insufficiency is an obstacle in providing high quality smooth video playout in cellular networks. There are two kinds of solutions in the literature that provide high bandwidth communication channels. One is bandwidth aggregation that aggregates the bandwidth from multiple radio access technologies (RATs) on a single device to create a high-bandwidth logical link for an application. Another is collaboration with peers. This kind of content distribution solutions originated from content sharing in peer-to-peer networks, and then evolved through BitTorrent (which maximises the downloading performance) to the mobile environment. To provide effective collaborative streaming to mobile devices, several functionalities are required including e.g. device discovery, activity recognition and bandwidth estimation.In the current approaches to collaborative streaming, the first step of collaborative streaming has not been fully addressed, because unlike traditional device discovery methods in P2Pand BitTorrent in which peers share the same network, the discovery of devices in heterogeneous wireless networks is a very challenging problem. These devices access the Internet via heterogeneous wireless networks without pre-knowledge of the existence of nearby devices, and no effective solution exists except for very energy costly GPS based methods that track device locations all the time. In addition, in mobile environments user mobility and available bandwidth directly affect the performance of collaborative streaming. For example, the connection between a stationary user and a user in vehicle drops within a few seconds. Thus finding the collaborative devices with similar mobility pattern and high-bandwidth is important for collaborative streaming, but the existing solutions on activity recognition and on bandwidth estimation perform poorly on mobile devices. As for activity recognition, there exist solutions for smart environments and wearable sensor networks, however they cannot be simply applied to mobile devices. Google published its activity recognition service on Android phones in 2013, and it is the first publicly available service providing activity recognition on Android phones. However its recognition accuracy is not very high and needs to be improved. Bandwidth estimation is important for collaborative streaming as the quality of the streamed video depends to a large extent on the bandwidth of the selected collaborating devices. Most of the existing bandwidth estimation approaches designed for wired and wireless computer networks fail in cellular networks, due to the bandwidth fluctuation in these networks and the cost of servers and user's data quota.i The research on the functionalities of collaborative streaming for mobile devices are still in early stages. The primary goal of the research presented in this thesis is to develop new algorithms and mechanisms for collaborati...