This paper proposes a new architecture for doing remote control of devices using the Android mobile platform. As a result of this research, a proof of concept was implemented in which an Android application was designed to run a group of server programs on the mobile device and connected to the network or USB interface, depending on availability. This servers can be controlled through a small client written in Java and runnable both on desktop and web systems.
The server layer is performing the services of device management and accepts the connection from different clients. The client layer, available from a remote device, performs the interaction between the control equipment and the monitored device. The architecture offers several types of connection to different clients in order to allow the remote control to all the users. The monitored devices can be aggregated on a server in order to offer the control of several devices in the same infrastructure.
The prototype project is licensed under the LGPL license to free distribution and modication of the project. The project can be used as a base for a more complete implementation.
The server application has been implemented as an Android application, designed to allow the user to activate the services provided by the server layer. The application will be available on Android Market to bedownloaded and installed.
It requires root permissions to start the remote visualization service based on Virtual Networking Computing protocol that uses a Remote Frame Buffer protocol (RFB) to remotely control other computers. Also the user will be notified when a client connects to the system, controlling the remote clients using the server application.
To perform the connection two methods are available, USB interface or Socket networking. The connection via USB will take advantage of the networking features in addition to the features implemented only to the USB connection. Thus, the USB connection will be complete.
However, the Socket networking connection does not contain the exclusive features of the USB connection, but this problem can be solved developing the server features offered by the Android Debug Bridge.
To read this external content in full, download the complete paper from the author archives.