Back to Home

Mobile OS architecture. User Trends and Impressions / Intel Blog

mobile os

Mobile OS architecture. User Trends and Impressions

Original author: Xiao-Feng Li, Yong Wang, Jackie Wu, Kerry Jiang, Bing Wei Liu
  • Transfer

We bring to your attention a free shortened translation of an article written by engineers from the Chinese division of Intel and devoted to the analysis of trends in the field of operating systems for smartphones.
The world around us is becoming wider. We travel long distances with our mobile devices that help us keep in touch with family and colleagues and provide a huge number of different services. The basis of any functionality of a mobile device is its operating system. Based on our own experience in developing such OSs and our vision of the current market situation, we single out several parameters by which, in our opinion, any future OS will be evaluated - user experience, energy management, cloud support and openness. In this article, we will show the results of our research on current mobile OSs, based on the given group of criteria.

Introduction

The design of mobile OS has evolved from a desktop OS via embedded OS to the products that we see in smartphones now. During this process, the OS architecture changed from complex to simple and stopped somewhere in the middle. Evolution itself was driven by technological advances in hardware and software, as well as in Internet services.

In the recent past, the model for using mobile devices has been quite simple. The user launched applications for managing data or offline games, sometimes downloaded static web pages or used mail. Now the situation has changed dramatically: there are no more "pre-installed" functions, the device acts as a kind of portal on Wednesday, where many players are service providers, independent developers, etc. - provide a huge number of services.


Models of using mobile devices

From the point of view of consumption models, all representatives of today's mobile OS (such as Apple iOS, Google Android, Microsoft Windows) have more similarities than differences:
  • All of them have documented SDKs with prescribed APIs, which allows developers to create applications for these OSs;
  • All of them have online application catalogs, where developers publish their applications and from where users download them;
  • Each implements multitasking and 3D-graphics support, sensors and touch screens are widely used;
  • In all systems, much attention is paid to smoothness and responsiveness in user interaction;
  • Using the Internet has gone far from static pages; HTML5 is becoming the default platform for Web applications;
  • All operating systems support mobile payment systems;
  • All systems are focused on optimizing energy consumption.

The commonality of current mobile OSs is due to the global technological trends in the hardware and software fields, as well as in communications. Let us now analyze the new generation OS from the point of view of the criteria given above. We note immediately that to a large extent they are in conflict with each other.

User experience

The traditional concept of performance is hardly applicable to mobile devices. Instead of static performance in relation to smartphones, it is more logical to operate with the concept of comfort for the user, the ability to respond optimally to his actions, expressed in sensitivity, smoothness, consistency and accuracy. It is quite common that device A is inferior to B in the aggregate of benchmarks, however, from the point of view of user perception, it is valued higher, because tests measuring certain subsystems of a smartphone do not take into account interaction with the user, and a person estimates this first of all.

Take for example a video. Traditional tests operate on a number of metrics, such as FPS or the number of frames lost. There are at least two problems with this approach. First: video playback is only one action from the whole complex, including launching the player, loading video data into it, the rewinding process, etc. From the user's point of view, you need to evaluate everything together. Another problem is that FPS, as a key value for smooth interaction, does not always reflect the user's experience. For example, when scrolling images in the Gallery3D application on device B, we see noticeable slowdowns, and on device A everything goes smoothly, although the FPS on it is lower. In order to understand what the problem is, we plotted a frame to draw on the time axis. Now, probably, the reason is visible to everyone: in addition to FPS as such, we must take into account its stability,



Framerates in the Gallery3D application on devices A and B

As a comparison, we give a graph of the frame rate of device B after its optimization. As you can see, the average FPS has not changed much, which can not be said about the user’s feelings.


Framerate on device B after optimization

We should not forget that the feeling of users is a subjective concept. In modern science, several methods are used to track the reaction of users: monitoring eye movement, heart rate, etc. When creating software, we must approach the issue systematically, using all possible analysis methods. Having developed a system of metrics (say, the already mentioned sensitivity, smoothness, consistency and accuracy), it is necessary to determine the boundaries of their comfort for the user. The table below shows some experimental values.
ExcellentGoodValid
Delay time≤100 ms≤200 ms≤500 ms
Graphic animation≥120 fps≥60 fps≥30 fps
Play video≥60 fps≥30 fps≥20 fps

Obviously, these data are statistical in nature and should be applied with an eye to human nature.
Based on our experience in developing for Android, we came to the conclusion that user-optimized (software) applications are largely similar to parallelization optimization, only more difficult to implement for the following reasons:
  • The software affects many software and hardware components, as well as their interaction;
  • The software has to reckon with energy issues, as this also affects the user experience;
  • The software operates with tight time frames; the application should work with a comfortable user speed, not faster and not slower;
  • The software is largely subjective, and much depends on the instinct of the developer.

Power management

Energy efficiency has always been a headache for mobile OS developers. Gluttony of applications is constantly growing, and progress in battery technology does not chronically keep pace with it. That's why the importance of power management is growing all the time, and a truly global approach is needed to solve this problem.

Over the past decade, mobile processors have made significant strides in energy conservation. Modern models support dynamic voltage and frequency changes such as Enhanced Intel SpeedStep. On the OS side, special kernel components, such as, for example, cpufreq on Linux, are involved in controlling the operating modes of the processor. We are currently witnessing the process of moving the front line of the struggle for energy efficiency from processors (where much has already been done) to other systems of mobile devices. For example, the introduction of dynamic control of the graphic processor (similar to that used in the CPU) allows in some cases to save up to 50% of energy. I / O systems also deserve attention; increasing their intelligence,

In current operating systems, the situation with power consumption is as follows. Android OS professes the principle of "flexible suspend." Having no means of controlling the device’s working power consumption, Android aggressively tries to put the system in suspend state if nothing interesting happens in it, which is determined by the absence of locks (wakelock). Windows 8 offers a fundamentally new device state called “connected standby”. Unlike the traditional S3 standby mode, in which all system processes are suspended, here the system continues to work in an extremely economical mode, allowing, for example, to receive e-mail. The connected standby mode is implemented hardware in the processor and software in the kernel of the system.

The correct operation of applications in terms of energy consumption remains the Achilles heel of both described approaches to saving. Recent studies have shown that free Android applications consume 75% of their energy in vain, showing ads in minimized mode and not giving up blocking. The same is true for Windows 8, where even one application, written incorrectly in terms of energy efficiency, will not allow the entire system to go into a connected standby mode. There is currently no clear understanding of how to deal with this kind of “crooked” applications.

Openness

Another important feature of the mobile OS is its openness. By openness we mean a measure of freedom in the use, distribution, customization and improvement of the OS for our needs. There is a separate study on the openness of the OS from the point of view of the developer; here we consider it within the framework of the ecosystem, that is, of all parties, one way or another connected with the operation of this OS.

More recently, most phones had closed software within themselves, which third-party developers did not have access to; users had to be content with built-in tools. In the process of evolution, smartphones appeared with operating systems that allow the installation of third-party software that interacted with the OS via the API; developers were provided with appropriate programming tools (SDKs). A good example of this kind of OS is Apple iOS. Greater freedom for the entire ecosystem is provided by open source OSs, such as Android; the benefits of open source can be felt even by an end user who is not related to programming - they are, for example, in the number of manufacturers using this OS and, ultimately, in the number of models.

Cloud support

Cloud technologies are becoming more widespread in mobile OS; for the most part, applications that use them are websites that open in a browser or web applications. Very often applications are written in HTML5, so the implementation of this technology in the mobile OS is the focus of attention of its developers. The site html5test.com quantifies HTML support on various platforms, we present the results in a table (outdated data are presented in the article, we publish the most relevant ones - translator comment) . We are especially pleased that Tizen, a newcomer to the world of mobile OS, ranks first in this ranking.
BrowserPlatformScore + Bonus
Tizen 2492 + 16
Blackberry 10BlackBerry Q10 or Z10485 + 11
Dolphin engine betaAndroid 2.2 or higher469 + 3
Opera Mobile 14Android448 + 11
Tizen 1426 + 16
Firefox Mobile 22Various platforms422 + 14
Chrome 25Android 4417 + 11

Third-party browsers are in a less advantageous situation compared to those built into the OS, because they do not have such control over the system and its development process. Ideally, the browser should work in its own environment, all developers are striving for this; Many have heard about Firefox OS now, but on this video you can see a preview of Opera OS . Note, however, that independent developers are still easily held in the top, another breakthrough is the Chinese browser Dolphin Engine (approx. Translator).

Web applications, that is, local programs using web technologies, require support from the mobile OS (and not only) in the form of a runtime, frameworks, and development tools.
  • The runtime provides the health of the application. It originates from the browser, but is more integrated into the OS environment itself;
  • The web framework provides functionally rich libraries for application development, for example, jQueryMobile or Sencha;
  • Development tools must be flexible so that developers can use them for their diverse needs.

HTML5 is declared as a cross-platform standard, but in reality, HTML5 support is not the same across platforms and the standardization process is in full swing. To overcome the incompatibility, the PhoneGap framework was created, which is supported by all major mobile operating systems. All ecosystem participants have a desire to have common HTML5 for all, but implementing it is not so simple, since mobile OS developers are constantly introducing their own ideas into it.

The performance issue worries all developers dealing with HTML5. In our opinion, the most relevant aspects of optimization for mobile operating systems are as follows:
  • Hardware acceleration. Graphics and video should have hardware acceleration;
  • Multithreading support. Web Worker must certainly be supported in HTML5;
  • JavaScript engine optimization. JIT (Just In Time) is included in all major JavaScript implementations;
  • Support for native or hybrid applications - the ability to use existing system libraries will be another approach when creating web applications

Summarizing all of the above, we note once again that despite some differences in approaches, all mobile OSs are developing in the same direction, to some extent getting closer to each other. It seems that this trend will continue in the future, which only benefits both users and application developers.

Read Next