Mobile computing is the trend, but due to the very different nature between a traditional desktop computer and a mobile device, the process models of desktop OSes and mobile OSes are also different.
Traditional desktops are operated through a keyboard and a mouse. They have a large screen, or even multiple screens. The trend is larger and larger. 20 years ago, 14″ screens were the norm, 10 years ago, 17″ were popular, now, 20″ to 24″ are commonplace. Furthermore, the processing power also grows exponentially, not only with clock rate measured in GHz, but also with the fact that 8-core CPUs, previously only found in high-end servers, are now affordable to be installed in a desktop. People like to multitask a lot, having a lot of windows opened on a screen, or leave an app minimised and let it do something in the background.
As long-time computer users, we have learnt to open apps to do things, and also to close apps (e.g. by clicking the X button, pressing Alt-F4) when we no longer use it. We know that leaving apps running will consume system resources (e.g. power), if there are too many apps running, the system will get short of memory. If we minimise an app window, the app is still running even we cannot see what it is doing.
However, mobile computing is a completely different world. Mobile devices are resource-limited. They have limited battery life so saving power is a major concern. Also, they have limited processing power and memory. Also, the screen is small (although it is getting bigger and bigger) such that it is not meant to be multitasked. People use one app at a time and frequently switch between apps, unlike on desktops where people put many apps on the same screen.
Contrary to many people’s belief, mobile OSes are designed in a way such that, when you leave an app, including touching the home button, switching to another app, launching another app within that app to perform specific task, etc., it no longer runs in the background, unlike minimising an app window in a traditional desktop OS. The app is expected to save its current state such that when the user returns to the app, it will continue from what the user was at before leaving. For example, if a user is reading some news, gets a message and switch to the messaging app to read the message, when the user returns to the news app, he will still want to be reading that piece of news before receiving the message. However, when the user is reading the message, the news app is no longer interacting with the user, therefore, the system will tell the app the save its state and suspend its operation. When the user returns, the app will be activated from that state. However, if the system is low in memory, the news app may be killed automatically without the user consent. When the user returns, it will be loaded fresh from the storage and load the saved state, which gives the apparent effect that the app has never been closed. Although the app is killed by the system, it is still in the list of opened apps (task list) because the user did not close the app explicitly and expect the app open, and the state-saving and process killing mechanism is completely transparent to the user.
Although stated unnecessary by OS developers, users may sometimes want to close apps. It is because the user may want to start fresh, or may find the app start becoming unstable. In the previous example of a news app, after the user close the app, it will show the frontline when the user open it next time. Technically, the difference between closing an app and leaving an app is that, in the process of closing an app, the state is not saved so it will start fresh next time. The system may still choose to keep the app in memory, facilitating faster launch next time. On Android systems, the user can close the app by popping out the task stack by repeatedly tapping the back button, or showing the opened apps list (long-clicking the home button on Samsung devices, tapping the windows icon on Sony devices) and swipe it away. On Windows 8.1 systems, the user can close the app by swiping all the way from the top to the button, pointing the mouse to the top and click the X button, pointing the mouse to the top-left corner and close the app in the opened apps list, pressing Alt-F4 on the keyboard, etc. Although the app is no longer running, memory is not necessary be freed if there is plenty.
If the user still thinks that closing the app is not enough, insisting that it is completely removed from memory, the user can kill the app manually. This is a kind of violence as the user is overriding the internal mechanism of the OS and apps. Some legal reason of killing an app includes malfunctioning of the app even after closing, system extremely not responsive such that manually overriding the memory management becomes a necessity, the user planning to open a memory-intensive app and freeing memory to ensure the app will be smooth. Be aware that killing apps may result in data losses. In Android, killing an app will also kills its services (components of the app which do things in background without direct user interaction, for example, downloading files, sending notifications) to remove it from memory completely. The normal way for a user to kill an app on Android is to launch Settings -> Apps -> All -> The app to be killed -> Force stop. By doing this way, all app processes are removed from memory, and the saved state is also discarded. The private storage of the app is retained. However, if the button “Clear data” is tapped instead of “Force stop”, everything related the app, except the package itself, will be gone, and the app will behave like a fresh install the next time. If an app is not responding, the Android system will prompt the user to kill it. On Windows 8.1, the traditional way for a user to kill an app is to launch Task Manager, selecting the app to be killed and click “End task”, and the app will be removed from memory. In Windows 8, closing an app by swiping from the top to bottom kills it, like traditional desktop OSes, but in Windows 8.1, closing an app this way does not kill it. However, it the app is swiped from the top to the bottom, holding it there without taking up the finger, the app display will flip, means that the app is killed. If the app is swiped back to the display after flipping, it is restarted after killed completely. This is an easy way to fix a malfunctioning app.
I hope you have enjoyed reading this article. Next time, you will know if you want to leave, close or kill an app, and take the appropriate action.