The Layers of a Smartphone
Today's smartphones run on processors with clock speeds ranging from 100 – 624 MHz (with a 1 GHz processor looming on the horizon), which would be mind-numbingly slow if they were used to run today's desktop computers. Many smartphones use power-efficient ARM processors, which are also found in routers, printers, and other embedded devices like Smart Watches and MP3 players. They have a certain amount of on-board memory in the tens of megabytes, and many have slots for removable memory formats like SD and MMC cards as well.
Along with processors, smartphones also have computer chips that provide functionality. Phones with cameras have high-resolution image sensors, just like digital cameras. Other chips support complex functions such as real-time web browsing, sharing multimedia files or playing music without placing too great a demand on the phone’s battery. Some manufacturers develop chips that integrate multiple functions to help reduce the overall cost (fewer chips produced per phone help offset production costs).
Software for smartphones can be visualized as a software stack. The stack consists of the following layers:
- kernel - management systems for processes and drivers for hardware
- middleware - software libraries that enable smartphone applications (such as security, web browsing, messaging, etc.)
- application execution environment (AEE) - application programming interfaces, which allow developers to create their own programs
- user interface framework - the graphics and layouts seen on the screen
- application suite - the basic applications users access regularly such as menu screens, calendars and message inboxes