The challenge of this project was to design a solution for virtualization for Android Operating System and create the environment for mobile application development with multiple functions.
The main difficulty lied in the fact that Android did not support virtualization the way we needed it to, as it failed to support a multi-instance environment, and a lot of problems we faced stemmed from this issue.
For instance, the existing Binder Framework could not be used in the multi-instance environment and we needed to make a number of changes due to its context specific static variables. As a result, we developed a number of new instance management components to manage the multi-instance environment and integrated these components with the Android operating system.
In addition, to prevent the delivery of input messages to inactive instances, we modified the controller of input events, so that all incoming input events were added only to the queues of active container processes.
We then designed a user-friendly interface, improved power management that had a low impact on battery consumption and network capabilities of the product.
In the end, the product’s multiple functions included the protection of private data, physical and virtual device access management, system resource effective usage and restriction of application access to system services.