0% found this document useful (0 votes)
7 views66 pages

Chapter 1 Programming Mobile

The document outlines a course on mobile terminal programming, covering topics such as mobile terminal definitions, the evolution of mobile devices, and the Android and iOS operating systems. It details the characteristics of mobile platforms, types of mobile terminals, and the elements of embedded programming, along with development tools and frameworks for mobile application creation. The course is structured into chapters that provide a comprehensive understanding of mobile application development and the technologies involved.

Uploaded by

temo guidel
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views66 pages

Chapter 1 Programming Mobile

The document outlines a course on mobile terminal programming, covering topics such as mobile terminal definitions, the evolution of mobile devices, and the Android and iOS operating systems. It details the characteristics of mobile platforms, types of mobile terminals, and the elements of embedded programming, along with development tools and frameworks for mobile application creation. The course is structured into chapters that provide a comprehensive understanding of mobile application development and the technologies involved.

Uploaded by

temo guidel
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

COURSE OUTLINE: PROGRAMMING OF MOBILE TERMINALS

Credits: 2
Teaching Methods: Lectures (L), Tutorials (T), Practical (P), Self-Personal Work (SPW)

Lecture By: KAMGA TEMO ANGE G


Chapter 1: Generalities on Mobile Terminals

 Definition of mobile terminals


 Evolution of mobile devices
 Characteristics of mobile platforms
 Constraints in mobile programming (battery, memory, screen size, connectivity)
 Overview of mobile application types
o Native applications
o Web applications
o Hybrid applications

Chapter 2: Android Operating System

 Introduction to Android
 Android architecture
o Linux Kernel
o Android Runtime
o Libraries
o Application Framework
 Android application components
o Activities
o Services
o Broadcast Receivers
o Content Providers
 Android application lifecycle
 Overview of Android development tools (Android Studio, SDK, Emulator)

Chapter 3: Elements of Embedded Programming

 Definition of embedded systems


 Difference between embedded systems and mobile systems
 Embedded programming constraints
 Sensors and actuators in mobile devices
 Interaction between mobile applications and hardware components

Chapter 4: iOS Application Development Environment

 Introduction to iOS operating system


 Apple ecosystem overview
 iOS architecture
 Development tools
o Xcode
o iOS Simulator
 Programming languages for iOS
o Swift
o Objective-C (overview)
 Overview of iOS application lifecycle

Chapter 5: Types of Mobile Terminals

 Smartphones
 Tablets
 Feature phones
 Wearable devices (smart watches, bands)
 Embedded mobile terminals (POS, industrial devices)
 Comparison of mobile terminals based on hardware and OS
Chapter 1: Generalities on Mobile Terminals
A mobile terminal refers to a versatile and portable electronic device designed to facilitate a
range of functions such as communication, data input, processing, and display. These devices are
integral to modern operations, offering flexibility and efficiency across various industries and
applications.

From enhancing productivity in logistics and retail to improving patient care in healthcare and
streamlining processes in transportation, mobile terminals have become indispensable tools in
the digital age. Examples of mobile terminals include mobile data terminals (MDTs), portable
data terminals (PDTs), and smartphones, each tailored to meet specific industry needs while
supporting seamless connectivity and functionality.

Mobile terminals are multifunctional devices that support a wide range of activities. They enable
communication through voice calls, messaging, and internet access via cellular and Wi-Fi
networks. They also allow data processing, where users can collect, store, and analyze
information in real-time. With built-in GPS(Global Positioning System), mobile terminals
provide navigation capabilities for tracking locations and optimizing routes. Additionally, they
support various industry-specific applications, such as inventory management or dispatching, and
integrate seamlessly with other systems like ERP(Enterprise Resource Planning) or
CRM(Customer Relationship Management) for efficient data exchange.

1.1 Evolution of mobile devices

After the Second World War, the evolution of mobile phone technology began to accelerate
rapidly. Engineers like Martin Cooper from Motorola were instrumental in moving the
technology forward. Cooper is widely recognized for creating the first handheld cellular phone.
What followed the development of this first phone, the Motorola DynaTAC, marked a significant
step in the mobile phone revolution.

While the first handset was a major breakthrough, it was the creation of the second phone which
signaled the start of a new era. This subsequent model took the fundamental principles of the first
mobile phone and aimed to enhance its design and functionality. Advancements in technology
allowed for improvements in battery life, signal strength, and overall usability.

Mobile phones have transformed from bulky, single-purpose devices into sleek, powerful mini-
computers that run our daily lives. Let’s walk through the key stages of this evolution.

1. The First Generation (1G) – Analog Voice (1973–1989)

 1973: Motorola engineer Martin Cooper made the first mobile phone call on
the Motorola DynaTAC.

 Phones were huge, heavy (“brick phones”), and only supported analog voice calls.

 Battery life: ~30 minutes talk time.

 Extremely expensive and mainly used by business elites.

2. The Second Generation (2G) – Digital Voice & SMS (1990s)

 Switched from analog to digital networks (GSM, CDMA).

 Introduced SMS (text messaging) — first sent in 1992 (“Merry Christmas”).

 Phones became smaller and more affordable.

 Popular models: Nokia 3210, Motorola StarTAC.


 Basic games like Snake became iconic.

3. The Third Generation (3G) – Mobile Internet (2000s)

 Enabled mobile internet browsing, email, and multimedia messaging (MMS).

 Phones gained color screens, polyphonic ringtones, and basic cameras.

 Example devices: Nokia Communicator, BlackBerry, Motorola Razr V3.

 BlackBerry became the business phone of choice thanks to secure email.

4. The Fourth Generation (4G/LTE) – Smartphones & Apps (2010s)

 iPhone (2007) revolutionized mobile phones with touchscreens and the App Store.

 Android (Google) emerged as the main competitor, leading to today’s Apple vs.
Android market.

 4G LTE brought fast internet speeds, enabling:

 Video streaming (YouTube, Netflix).

 Social media (Facebook, Instagram, Twitter).

 Mobile payments.

 Phones became multimedia hubs with HD cameras, GPS, and powerful processors.

5. The Fifth Generation (5G) – AI & Foldables (2020s)

 5G networks rolled out, offering gigabit speeds and low latency.

 Enabled cloud gaming, AR/VR, and IoT integration.

 Rise of foldable phones (Samsung Galaxy Z Fold/Flip, Motorola Razr).

 AI became central:

 Google Assistant, Siri, Bixby.

 On-device AI for photography, translation, productivity.

 Phones became all-in-one devices: wallet, ID, entertainment, work tool.


6. The Future (6G & Beyond) – Immersive & Intelligent (2030s)

 Expected around 2030, 6G will bring:

 Holographic communication.

 Seamless AR/VR integration.

 AI-driven personalization at a deeper level.

 Phones may evolve into wearables or implants, blurring the line between device and
user.

1.2 Characteristics of mobile platforms

A mobile application platform is a comprehensive framework that allows developers to


create, deploy, and manage mobile apps across various devices and operating systems. These
platforms provide essential tools, libraries, and frameworks, enabling the development of
apps with ease and efficiency. Over the years, the rise of smartphones has spurred the growth
of mobile app platforms, making them crucial in the tech ecosystem.

In the early 2000s, mobile applications were basic, often restricted to specific devices. However,
the launch of iOS and Android revolutionized the industry, introducing app stores and extensive
development tools that made app creation accessible to a broader audience. Today, Android and
iOS dominate the market, accounting for over 99% of global mobile operating system market
share, according to StatCounter.

A robust mobile application platform offers cross-platform development capabilities, allowing


apps to run seamlessly on different operating systems. This is particularly important given that
mobile app usage continues to surge; as of 2024, there are over 7 billion mobile users worldwide,
with the average person spending over 4 hours a day on their smartphone. The rapid growth in
mobile users and their demand for high-quality apps have made mobile application platforms
indispensable for businesses seeking to engage with their audience effectively. As technology
evolves, these platforms will continue to play a pivotal role in the development and distribution
of mobile applications.

What are the key components of a mobile application platform?

A mobile application platform is a comprehensive environment that supports the entire lifecycle
of a mobile app, from development to deployment and maintenance. To effectively serve
developers and businesses, a mobile application platform must include several key components,
each playing a vital role in ensuring that apps are built efficiently, perform well, and can be
distributed and maintained effectively. Below are the key components of a mobile application
platform:

1. Integrated Development Environment (IDE)

The IDE is the primary tool that developers use to write, test, and debug their applications. It
often includes a code editor, a compiler or interpreter, and a debugger.

Examples: Xcode for iOS, Android Studio for Android, and Visual Studio for MAUI (formerly
Xamarin).

Importance: A robust IDE streamlines the development process by providing tools and features
like code autocompletion, syntax highlighting, and integrated testing environments. This allows
developers to focus on writing code and solving problems rather than configuring their tools.

2. Software Development Kits (SDKs)


SDKs are a collection of software tools, libraries, documentation, and sample code that
developers use to create applications for a specific platform.

Examples: Android SDK, iOS SDK.

Importance: SDKs provide developers with the necessary resources to access native features of
a platform, such as cameras, GPS, and sensors. They also include APIs that simplify complex
tasks like networking, data storage, and user interface design.

3. Application Programming Interfaces (APIs)

APIs are sets of protocols and tools that allow different software components to communicate
with each other. In mobile application platforms, APIs are used to connect apps with external
services or platform-specific features.

Examples: Google Maps API, Facebook Login API, Apple Pay API.

Importance: APIs enable developers to integrate third-party services and functionalities into
their apps, such as social media sharing, payment processing, and cloud storage. This not only
extends the capabilities of an app but also saves development time by leveraging existing
solutions.

4. User Interface (UI) Frameworks

UI frameworks provide the tools and libraries needed to create the visual elements and layout of
an app, including buttons, menus, and navigation structures.

Examples: SwiftUI for iOS, Jetpack Compose for Android, React Native for cross-platform
development.

Importance: A good UI framework simplifies the process of designing and implementing user
interfaces, ensuring that the app is both visually appealing and easy to use. These frameworks
often include pre-built components that are optimized for performance and consistency across
different devices.

5. Testing and Debugging Tools

These tools help developers identify and fix issues in their apps before they are released. They
can simulate different devices, test app performance under various conditions, and detect bugs.
Examples: Xcode’s Simulator, Android Emulator, Appium for automated testing.

Importance: Testing and debugging tools are critical for ensuring that apps are stable, secure,
and perform well across different devices and operating system versions. They help developers
catch and fix issues early in the development process, reducing the risk of costly errors in
production.

6. App Store/Distribution Channels

These are platforms where developers can publish their apps, making them available for
download by users. They also handle app updates, user reviews, and monetization.

Examples: Apple App Store, Google Play Store.

Importance: Distribution channels are the primary way that apps reach users. They also provide
valuable analytics and feedback that developers can use to improve their apps.

Additionally, app stores often enforce quality and security standards, ensuring that only safe and
reliable apps are available to users.

7. Backend as a Service (BaaS)


BaaS platforms provide cloud-based backend services like data storage, user authentication, push
notifications, and server management, which are essential for many mobile apps.

Examples: Firebase, AWS Amplify.

Importance: BaaS simplifies backend development by offering ready-to-use services that scale
with app demand. This allows developers to focus on frontend development and user experience,
rather than managing servers and databases.

8. Security Tools

Security tools are used to protect apps from threats like data breaches, unauthorized access, and
malware.

Examples: SSL/TLS encryption, OAuth for secure authentication, mobile security suites like
AppScan.

Importance: Security is a top priority for mobile apps, especially those handling sensitive user
data. Security tools help ensure that apps comply with industry standards and regulations,
protecting both the developer and the end-user.

9. Analytics and Monitoring Tools

These tools provide insights into how users interact with an app, tracking metrics such as user
engagement, retention rates, and in-app behavior.

Examples: Google Analytics for Firebase, Mixpanel.

platforms?

Mobile application platforms can be categorized into several types based on their underlying
technology and the environments they support. Each type has its own advantages and
disadvantages, making it suitable for different kinds of projects and business needs. Here are the
main types of mobile application platforms:

1. Native Platforms
Native platforms involve developing apps specifically for a single operating system, such as iOS
or Android. These apps are written in languages that are native to the platform—Swift or
Objective-C for iOS, and Java or Kotlin for Android.

Examples of Native Platforms

 iOS: Apple’s native platform for iPhone and iPad apps. Apps are developed using Swift
or Objective-C in Xcode.

 Android: Google’s native platform for Android devices. Apps are developed using Java
or Kotlin in Android Studio.

Advantages:

 Superior performance due to direct access to device hardware and system resources.

 Enhanced user experience as the apps are optimized for the specific platform.

 Full access to all native APIs and features.

Disadvantages:

 Higher development costs due to maintaining separate codebases for each platform.

 Increased time-to-market when developing for multiple platforms.

2. Cross-Platform Development Platforms

Cross-platform development platforms allow developers to write code once and deploy it on
multiple platforms, such as iOS, Android, and sometimes even web. Popular frameworks include
React Native, Flutter, and Xamarin.

Examples of Cross-Platform Development Platforms

 React Native: Developed by Facebook, React Native allows developers to build mobile
apps using JavaScript and React, with a single codebase that runs on both iOS and
Android. React Native app development remains the most popular form of building cross
platform apps worldwide.
 Flutter: Created by Google, Flutter uses the Dart programming language and allows
developers to create natively compiled applications for mobile, web, and desktop from a
single codebase.

 .NET MAUI: Owned by Microsoft, .NET MAUI is the successor of Xamarin and uses
C# and .NET, allowing developers to build cross-platform apps for iOS, Android, and
Windows.

Advantages:

 Cost-effective and time-saving, as a single codebase serves multiple platforms.

 Easier maintenance and updates across platforms.

Disadvantages:

 May not offer the same level of performance or access to native features as native apps.

 User experience might not be as polished compared to native apps.

3. Hybrid Platforms

Hybrid platforms blend elements of native and web apps. They are built using web technologies
like HTML, CSS, and JavaScript and are wrapped in a native container that allows them to be
deployed as mobile apps. Frameworks like Apache Cordova and Ionic are popular for hybrid
development.

Examples of Hybrid Platforms

 Apache Cordova: An open-source mobile development framework that allows


developers to use standard web technologies—HTML, CSS, and JavaScript—to create
apps that can be installed on various platforms.

 Ionic: A popular hybrid platform that builds on top of Apache Cordova and Angular.
Ionic allows developers to create apps with a single codebase that can be deployed across
multiple platforms.

Advantages:

 Faster development and easier to build for multiple platforms.


 Can leverage web development skills and tools.

Disadvantages:

 Performance is inferior to native or even cross platform apps.

 Limited access to native device features and less optimized user experience.

4. Web-Based Platforms (Progressive Web Apps – PWAs)

Progressive Web Apps or PWA is a web applications that behave like a mobile app. They run in a
web browser but offer features like offline access, push notifications, and the ability to be
installed on a device’s home screen.

Examples of Web-Based Platforms

 Google Lighthouse: A tool by Google that helps developers build Progressive Web Apps
(PWAs). PWAs run in a web browser but offer app-like experiences.

 Workbox: Another Google tool that simplifies the creation of PWAs by handling
caching, routing, and other key functionalities.
Advantages:

 No need for app store distribution, which can simplify the release process.

 Works across all devices and platforms with a single codebase.

Disadvantages:

 Limited access to native device features compared to native or hybrid apps.

 Performance may not match that of native or cross-platform apps.

5. Game Development Platforms

Specialized platforms and engines like Unity and Unreal Engine are used to develop mobile
games. These platforms offer tools and libraries specifically designed for creating high-
performance, interactive games.

Examples of Game Development Platforms

 Unity: A widely-used game development engine that allows developers to create 2D, 3D,
and VR games for various platforms, including mobile (iOS and Android), consoles, and
PCs.

 Unreal Engine: Developed by Epic Games, Unreal Engine is a powerful game


development platform known for its high-quality graphics and is used to create both
mobile and console/PC games.

 Cocos2d-x: Open-source game engine for creating 2D and 3D games.

Advantages:

 Optimized for graphics-intensive applications and games.

 Access to a wide range of tools and resources for game development.

Disadvantages:

 Not ideal for non-gaming applications due to their specialized focus.

Each type of mobile application platform has its own set of strengths, making them more or less
suitable depending on the project’s specific needs, budget, and target audience.
6. Low-Code/No-Code Platforms

These platforms allow users to create apps with minimal or no coding knowledge. They use
visual interfaces and pre-built components to assemble apps.

Examples of Low code/ No code app development platforms

 Appy Pie: Offers a drag-and-drop interface for building various types of apps.

 BuildFire: Focuses on mobile app development with a user-friendly interface.

 Mendix: Enterprise-grade platform for complex app development.

Advantages:

 Faster Development Time: No-code/low-code platforms significantly speed up the


development process by allowing users to build apps using pre-built templates, drag-and-
drop interfaces, and visual tools.

 Lower Development Costs: These platforms reduce the need for extensive coding
expertise, enabling non-developers or small teams to create applications.

Disadvantages:

 Limited Customization: No-code/low-code platforms often come with predefined


templates and components, which can limit the level of customization available. For
complex or highly specific applications, this lack of flexibility can be a significant
drawback.

 Scalability and Performance Issues: Applications built on no-code/low-code platforms


may face scalability challenges, especially as the app grows in complexity or user base.
Additionally, because these platforms often abstract away the underlying code,
performance optimization may be harder to achieve.

One of the defining characteristics of mobile application is their emphasis on user-centric


design. Developers prioritize creating intuitive interfaces and seamless experiences to cater to an
audience. Accessibility is a primary focus, ensuring that apps are visually appealing and
inclusive, accommodating users with diverse needs and preferences.

Mobile applications today extend beyond basic functionality with cutting-edge technology
integration, including artificial intelligence, augmented reality, and machine learning. This
incorporation enhances the capabilities of mobile apps, offering users innovative and
personalized experiences.

1. User-Centric Design

User-centric design is pivotal in shaping successful mobile applications, ensuring they meet
the needs and preferences of users seamlessly. Firstly, Intuitive Navigation is a characteristic
that allows users to explore the app without confusion. Clear and concise menus, well-
defined buttons, and logical flow contribute to an optimal user experience, reducing the
learning curve and enhancing overall usability.

Another crucial aspect is Responsive Design, ensuring the application adapts to various
screen sizes and resolutions. Mobile users engage with devices of diverse specifications, and
a user-centric design prioritizes responsiveness, guaranteeing a consistent and enjoyable
experience across different devices. This adaptability enhances user satisfaction and
addresses the dynamic nature of the mobile landscape.

2. Efficient Performance

Efficient performance in a mobile application is marked by swift responsiveness and


seamless user interactions. It is achieved through optimized code and well-designed
algorithms, prioritizing speed and resource utilization. Moreover, effective caching
mechanisms and minimalistic UI contribute to a fluid user experience, ensuring the
application performs tasks swiftly without draining device resources.

Furthermore, regular updates and performance monitoring are crucial for maintaining
efficiency over time. By staying attuned to user feedback and technological advancements,
developers can continuously refine the application's performance, ensuring it meets the
evolving user expectations and leverages the latest capabilities of mobile devices.
3. Reliable Security Measures

Reliable security measures are paramount in mobile application development to safeguard


user data and privacy. Incorporating robust encryption protocols ensures that sensitive
information, such as login credentials and personal data, is securely transmitted and stored.
Moreover, implementing biometrics or two-factor authentication adds an extra defense layer
against unauthorized access.

Continual monitoring and timely updates are essential characteristics of mobile


application. They regularly patch vulnerabilities and address security flaws through updates
to help mitigate potential risks and keep the application resilient to evolving threats.
Proactive monitoring for unusual activities and potential breaches allows for swift responses
to security incidents, minimizing the user impact and ensuring a reliable and secure mobile
experience.

4. Cross-Device Compatibility

Cross-device compatibility is a crucial characteristic of modern mobile applications, ensuring


seamless user experiences across various devices. In today's diverse tech landscape, where
users switch between smartphones, tablets, and wearables, a mobile app's ability to adapt to
different screen sizes, resolutions, and operating systems is paramount. Developers prioritize
responsive design and use technologies like Flutter or React Native to create apps that
function consistently.

Furthermore, robust Cross-device compatibility goes beyond just adapting to different


platforms; it extends to data synchronization and user preferences across devices.
Applications that excel in this aspect enable users to start an activity on one device and
seamlessly continue it on another without disruptions. It enhances user convenience and
fosters loyalty by providing a flexible and integrated experience.

5. Offline Functionality

In the realm of mobile applications, one of the characteristics of mobile application is the
offline functionality. It has emerged as a crucial characteristic, providing users uninterrupted
access to essential features even when internet connectivity is limited or nonexistent. This
capability enables users to engage with the application seamlessly, ensuring a consistent and
reliable user experience regardless of the location or connectivity status.

Moreover, offline functionality enhances the versatility of mobile applications by catering to


users in diverse scenarios, such as during travel, in areas with weak network signals, or when
data costs are a concern. By prioritizing offline capabilities, developers empower users to
make the most of the application's features without being tethered to a stable internet
connection, contributing significantly to user satisfaction and the overall usability of the
mobile application.

6. Intuitive Navigation

Intuitive navigation is a fundamental characteristic that significantly influences the user


experience of a mobile application. A well-designed mobile app seamlessly guides users
through its features, employing an easily understandable layout and straightforward menu
structures. Intuitive navigation minimizes the learning curve, ensuring users can effortlessly
access the app's functionalities, ultimately enhancing user satisfaction and retention.

Effective intuitive navigation encompasses clear and concise labels, logical placement of
essential elements, and a user-friendly flow. Visual cues such as icons, color coding, and
gesture-based controls contribute to a more intuitive experience, allowing users to understand
how to navigate the application instinctively.

7. Effective Onboarding

Effective onboarding is one of the crucial characteristics of mobile application, ensuring a


seamless user experience. Firstly, a user-friendly interface is essential, guiding users through
the app's features with clear, concise instructions. Simplicity in design and navigation helps
users quickly grasp the app's functionality, reducing the learning curve and fostering a
positive initial interaction.

Furthermore, personalized onboarding experiences contribute significantly to user retention.


Tailoring onboarding sequences based on user preferences and behavior creates a more
engaging and relevant introduction to the app. Incorporating interactive elements, such as
tutorials or tooltips, can further enhance the onboarding process, encouraging users to
explore and maximize the app's capabilities.

8. Scalability

Scalability is one of the vital characteristics of mobile application, ensuring they can adapt
and handle varying workloads effectively. Firstly, horizontal scalability is vital as it enables
the app to efficiently distribute tasks across multiple servers, accommodating a growing user
base without sacrificing performance. This approach ensures that as user demand increases,
the application can seamlessly scale by adding more resources and maintaining
responsiveness and reliability.

Furthermore, vertical scalability is equally crucial, allowing the mobile application to handle
increased load by enhancing the capabilities of individual servers. It involves optimizing the
performance of each server component, such as increasing processor speed or memory
capacity. Vertical scalability ensures that the application can efficiently manage spikes in user
activity and resource-intensive tasks.

9. Clear and Concise Communication

Clear and concise communication is crucial in mobile application development, ensuring


users easily understand its features and functionalities. One key characteristic is an intuitive
user interface where navigation is straightforward, aside from information being presented
logically. Additionally, concise on-screen instructions and tooltips can guide users seamlessly
through the app, reducing confusion and enhancing the overall user experience.

Another essential aspect of clear and concise communication in mobile applications is the
succinct and jargon-free language use. Error messages and prompts should be transparent,
providing users with actionable information to resolve issues quickly. By prioritizing
simplicity in design and language, developers can foster positive user interaction, making the
mobile application more accessible and user-friendly.

. Data Privacy and Transparency


Data Privacy is a paramount concern in the mobile application realm, emphasizing the need
for robust security measures to safeguard user information. A transparent mobile application
exhibits clear and concise privacy policies detailing how user data is collected, utilized, and
protected. Features such as end-to-end encryption, secure authentication mechanisms, and
user-friendly privacy settings contribute to building trust among users, assuring them that
their personal information is handled responsibly.

Transparency in mobile applications involves open communication between developers and


users regarding data practices. Ethical mobile apps disclose their data usage practices
upfront, offering users insight into the types of information collected and for what purpose.
Implementing granular permission controls empowers users to make informed decisions
about sharing specific data, fostering a sense of control over their digital footprint.

11. Continuous Improvements through Updates

Continuous improvements through updates are pivotal in enhancing the characteristics of


mobile application, ensuring its relevance and efficiency. Regular updates allow developers
to address bugs and security vulnerabilities; thus, they enhance the application's overall
stability. Furthermore, updates provide an avenue for introducing new features, improving
user experience, and adapting to evolving technological trends.

Aside from addressing technical issues, continuous updates contribute to performance


optimization and speed. By staying attuned to user feedback, developers can refine the
application's interface and functionality, creating a seamless and enjoyable user experience.
This iterative continuous improvement process fosters customer satisfaction and establishes a
dynamic relationship between developers and users.

1.3 Constraints in mobile programming

Battery Constraints
Mobile devices operate on limited battery capacity, typically between 2,000 to 5,000 mAh,
which must power all components for an entire day. This finite energy source fundamentally
shapes mobile application design. Unlike desktop applications that assume unlimited power from
wall outlets, mobile apps must treat battery life as a precious, rapidly depleting resource. Every
computation, every network call, and even keeping the screen illuminated contributes to battery
drain. The challenge is compounded by the fact that users carry their phones everywhere and
expect them to remain functional throughout their waking hours, often without access to
charging during the day.

Real-World Example:
Consider a fitness tracking application that monitors a user's morning run. If the app
continuously uses GPS at high accuracy, keeps the screen brightly lit, and constantly processes
sensor data from the accelerometer and gyroscope, it might drain 30-40% of the battery during a
one-hour run. This leaves the user with significantly less battery for the rest of their day's
activities. A well-designed app, however, might sample GPS data at intelligent intervals rather
than continuously, use the ambient light sensor to dim the screen when not actively viewed, and
process sensor data in batches rather than real-time. These optimizations could reduce the same
run's battery consumption to just 10-15%, dramatically improving the user's overall device
experience.

Memory Constraints
Mobile devices, despite their increasing sophistication, operate with significantly less RAM than
desktop computers—typically 4GB to 12GB compared to a desktop's 16GB to 32GB. This
limited memory must be shared between the operating system, background services, and all
running applications. When an app exceeds its memory allocation, the operating system may
terminate it abruptly, causing data loss and poor user experience. Memory management is further
complicated by the diversity of device capabilities—developers must create apps that function
well on both budget devices with minimal RAM and premium devices with more generous
allocations.

Real-World Example:
A photo editing application demonstrates memory challenges effectively. When a user opens a
high-resolution 12MP image (approximately 36MB uncompressed), the app must load this into
memory along with its editing tools, filters, and undo history. On a device with 4GB RAM where
the system and other apps already consume 3GB, the photo editor has only about 1GB to work
with. A poorly optimized app might load the entire image at full resolution immediately,
consuming most available memory and risking crashes when the user applies filters (which
create additional memory buffers). A well-architected app might instead use pyramid tiling—
loading only the portion of the image currently being viewed at full resolution while keeping
other parts at lower resolution—or implement intelligent caching that purges unused filter effects
from memory when pressure increases.

Screen Size Constraints


Mobile screens present information in a dramatically smaller physical space than desktop
monitors, with typical phone screens measuring 5-7 inches diagonally and tablets 8-12 inches.
This limited real estate creates a fundamental tension between displaying sufficient information
and maintaining readability and touch-target sizes. The challenge is multiplied by the incredible
diversity of screen dimensions, resolutions, and aspect ratios across devices—from small, low-
resolution budget phones to large, high-density flagship devices. Furthermore, screen orientation
changes (portrait to landscape) require completely different layout considerations, and foldable
phones introduce dynamic screen size changes during a single usage session.

Real-World Example:
An email client application illustrates screen size challenges perfectly. On a desktop application,
designers have the luxury of showing the folder list, email list, and email content all
simultaneously in a three-pane layout. On a mobile device's 6-inch screen, displaying all three
elements simultaneously would make each panel too small to read and the touch targets too tiny
to accurately press. A well-designed mobile email client must therefore implement adaptive
navigation—perhaps showing only the email list initially, then expanding to show content when
an email is selected, with a hamburger menu to access folders. The app must also handle
landscape orientation intelligently, possibly showing two panels (list and content) side-by-side
when space allows, but reverting to single-panel in portrait mode. These adaptations must work
seamlessly across devices ranging from a 4.7-inch iPhone SE to a 7.6-inch Galaxy Fold
unfolded.

Connectivity Constraints
Mobile devices experience fundamentally different network conditions than their wired
counterparts. Connectivity is intermittent—moving between Wi-Fi and cellular networks,
entering buildings with poor reception, traveling through tunnels or remote areas, and constantly
switching between different cellular towers. Bandwidth fluctuates dramatically, from high-speed
5G connections delivering hundreds of megabits per second to 2G edge networks struggling with
dial-up speeds. Latency varies unpredictably, and data transfer often incurs monetary costs for
users on metered plans. These conditions demand applications that can function without constant
connectivity and handle network failures gracefully.

Real-World Example:
A ride-sharing application like Uber or Lyft faces extreme connectivity challenges. When a user
requests a ride, they might start with strong 5G connectivity, but as they move toward the pickup
location, they could enter an underground parking garage with no signal, then emerge to spotty
3G coverage, and finally connect to a free but unreliable public Wi-Fi network. A poorly
designed app might fail completely when connectivity drops, leaving the user uncertain if their
ride is still coming and unable to contact their driver. A robust implementation, however, would
use offline-first architecture—confirming the ride booking immediately and storing it locally,
continuing to show the user's location and route on cached maps even without connectivity,
queuing messages to the driver for when connectivity resumes, and providing clear status
indicators about connection quality. The app might also minimize data usage by sending only
essential location updates at intelligent intervals rather than constant streaming.

Additional Critical Constraints

Processing Power Limitations


Mobile processors, while remarkably powerful for their size and power envelope, cannot match
desktop or server CPUs for sustained computational workloads. Thermal constraints prevent
mobile chips from maintaining peak performance for extended periods—a phenomenon known
as thermal throttling where the processor deliberately slows down to prevent overheating. This
creates a "race to idle" paradigm where apps should complete tasks quickly and return the
processor to low-power states. The diversity of processors across devices—from entry-level
chips with limited cores to high-end multi-core processors with dedicated AI engines—further
complicates development, requiring code that scales appropriately across this performance
spectrum.

Real-World Example:
A mobile video editing application trying to render a 4K video faces processing limitations
starkly. On a desktop with active cooling (fans) and a 65W+ processor, this task might complete
in minutes. On a mobile device with a passive cooling system (no fan) and a 5W processor, the
same task could take much longer and cause the device to become uncomfortably hot to hold. A
sophisticated mobile video editor would therefore implement progressive rendering—allowing
the user to preview effects at lower resolution first, using hardware-accelerated codecs
specifically designed for mobile processors, and breaking the rendering into chunks with cooling
periods between them. It might also detect when the device is getting too hot and suggest
pausing the export until it cools down, preventing thermal throttling from degrading performance
even further.

Storage Limitations
Mobile devices offer limited storage compared to computers—typically 64GB to 512GB, with a
significant portion already occupied by the operating system and pre-installed apps. Unlike
desktops where users can easily add external hard drives, mobile storage is generally fixed
(though some Android devices support expandable storage via microSD cards). Storage speed
varies dramatically between devices, with some using faster UFS storage and others slower
eMMC. Additionally, apps must respect user choice regarding storage location—internal storage
versus external SD card—and handle the case where external storage might be unexpectedly
removed.

Real-World Example:
A podcast application that downloads episodes for offline listening demonstrates storage
challenges. If the app automatically downloads every new episode from subscribed podcasts
without management, it could quickly consume tens of gigabytes on a device with only 64GB
total storage. This might prevent the user from taking photos or installing other applications. A
well-designed podcast app would implement intelligent storage management—allowing users to
set storage limits, automatically deleting played episodes, offering different quality settings for
downloads (lower bitrate for smaller files), and warning users when storage is running low. It
would also handle the technical complexity of allowing downloads to an SD card while
maintaining proper database tracking of file locations, even if the SD card is temporarily
removed.
Security and Privacy Requirements
Mobile devices contain extremely sensitive personal data—location history, messages, photos,
financial information, biometric data—and are vulnerable to physical theft or loss in ways
desktop computers rarely are. This creates extraordinary security requirements: data must be
encrypted both in transit and at rest, applications must authenticate users appropriately, and
permissions must be granted granularly. Privacy expectations have also escalated dramatically,
with users demanding transparency about data collection and the ability to control it. Platform-
specific requirements like Apple's App Tracking Transparency and Google's Privacy Sandbox
add additional compliance layers that vary between ecosystems.

Real-World Example:
A mobile banking application operates under extreme security constraints. The app must
authenticate users securely without making the process overly cumbersome—often using
biometric authentication (fingerprint or face recognition) backed by secure hardware elements
like the Trusted Execution Environment. It must encrypt all communication using TLS with
certificate pinning to prevent man-in-the-middle attacks. Sensitive data like account balances and
transaction histories must be stored encrypted on the device. The app must also handle scenarios
like device theft by implementing remote wipe capabilities and detecting when the device has
been jailbroken or rooted (which compromises security). All this must be accomplished while
maintaining a smooth user experience—if security measures are too intrusive, users may
abandon the app for a competitor with better UX.

Platform Fragmentation
Unlike desktop development where developers might target Windows 10 and 11, or web
development where standards are relatively consistent across browsers, mobile development
faces extreme platform fragmentation. On Android alone, developers must account for thousands
of device models from hundreds of manufacturers, each with different hardware capabilities,
screen dimensions, and custom Android modifications. Multiple Android versions remain in
active use simultaneously, from several years old to the latest release. iOS is more controlled but
still requires supporting multiple generations of iPhones and iPad models with different
capabilities. This fragmentation requires extensive testing and often results in code complexity to
handle different device capabilities gracefully.
Real-World Example:
A mobile game developer releasing a graphically intensive game faces fragmentation challenges
at every level. The game might use Vulkan graphics API for best performance, but many older
Android devices don't support Vulkan, requiring a fallback to OpenGL ES. Some devices have
powerful GPUs capable of rendering at 90Hz or 120Hz refresh rates, while others struggle with
30Hz at lower resolutions. Device-specific bugs are common—a particular phone model might
have a driver bug that causes graphical artifacts unless a specific workaround is implemented.
Audio systems vary between devices, with some supporting advanced spatial audio and others
having basic stereo output. The developer must either limit their audience to high-end devices or
invest significant engineering time creating adaptive graphics settings, multiple rendering paths,
and extensive device-specific testing and workarounds.

User Interaction Paradigms


Mobile interaction differs fundamentally from desktop computing. The primary input mechanism
is touch—imprecise fingers rather than precise mouse pointers—requiring larger touch targets
and different interaction patterns. Gestures like swiping, pinching, and long-pressing have
become standard expectations. Devices also incorporate numerous sensors absent from
traditional computers: accelerometers, gyroscopes, magnetometers, proximity sensors, ambient
light sensors, barometers, and more. These sensors enable rich interactions but also create
complexity in handling sensor data appropriately across different device capabilities.
Furthermore, mobile usage patterns differ—users interact in short bursts throughout the day
rather than extended sessions, often while multitasking or in motion.

Real-World Example:
A navigation application like Google Maps or Apple Maps exemplifies adaptive interaction
design. The app must accommodate one-handed use with thumb-accessible controls placed in the
lower half of the screen, while also supporting two-handed interaction for more complex tasks. It
interprets various gestures: a single finger drag to pan the map, two-finger pinch to zoom, two-
finger rotate to change orientation, and potentially harder-to-discover gestures like two-finger tilt
to change perspective. The app uses multiple sensors simultaneously: GPS for location,
accelerometer and gyroscope to determine which direction the user is facing (for augmented
reality walking directions), magnetometer to calibrate the compass, and ambient light sensor to
adjust screen brightness in tunnels. All these interactions must feel intuitive and responsive
despite the computational complexity happening in the background, and the app must handle
interruptions gracefully when a phone call comes in or the user switches momentarily to another
app.

Chapter 2: Android Operating System


Introduction to Android Development

Android represents one of the most significant technological ecosystems of the 21st century,
transforming how billions of people interact with technology daily. At its core, Android is an
open-source, Linux-based operating system designed primarily for touchscreen mobile devices
such as smartphones and tablets. However, its reach has expanded far beyond phones to power
smartwatches, televisions, cars, home appliances, and even embedded systems. Understanding
Android is not just about learning a mobile platform—it's about engaging with a global
technological phenomenon that has democratized access to computing worldwide.

Android operating system is the largest installed base among various mobile platforms across
the globe. Hundreds of millions of mobile devices are powered by Android in more than 190
countries of the world. It conquered around 71% of the global market share by the end of 2021,
and this trend is growing bigger every other day. The company named Open Handset
Alliance developed Android for the first time that is based on the modified version of the Linux
kernel and other open-source software. Google sponsored the project at initial stages and in the
year 2005, it acquired the whole company. In September 2008, the first Android-powered device
was launched in the market. Android dominates the mobile OS industry because of the long list
of features it provides. It's user-friendly, has huge community support, provides a greater extent
of customization, and a large number of companies build Android-compatible smartphones. As a
result, the market observes a sharp increase in the demand for developing Android mobile
applications, and with that companies need smart developers with the right skill set. At first, the
purpose of Android was thought of as a mobile operating system. However, with the
advancement of code libraries and its popularity among developers of the divergent domain,
Android becomes an absolute set of software for all devices like tablets, wearables, set-top
boxes, smart TVs, notebooks, etc.

Features of Android

Android is a powerful open-source operating system that open-source provides immense features
and some of these are listed below.
 Android is an Open Source Project so we can customize the OS based on our
requirements.

 Android supports different types of connectivity for GSM, CDMA, Wi-Fi, Bluetooth, etc.
for telephonic conversation or data transfer.

 Using wifi technology we can pair with other devices while playing games or using other
applications.

 It contains multiple APIs to support location-tracking services such as GPS.

 We can manage all data storage-related activities by using the file manager.

 It contains a wide range of media supports like AVI, MKV, FLV, MPEG4, etc. to play or
record a variety of audio/video.

 It also supports different image formats like JPEG, PNG, GIF, BMP, MP3, etc.

 It supports multimedia hardware control to perform playback or recording using a camera


and microphone.

 Android has an integrated open-source WebKit layout-based web browser to support User
Interfaces like HTML5, and CSS3.
 Android supports multi-tasking means we can run multiple applications at a time and can
switch between them.

 It provides support for virtual reality or 2D/3D Graphics.

Android Versions

Google first publicly announced Android in November 2007 but was released on 23
SEPTEMBER 2008 to be exact. The first device to bring Android into the market was the HTC
Dream with the version Android 1.0. Since then, Google released a lot of android versions such
as Apple Pie, Banana Bread, Cupcake, Donut, Éclair, Froyo, Gingerbread, Jellybeans, Kitkat,
Lollipop, marshmallow, Nougat, Oreo, etc. with extra functionalities and new features.

Code Name Version API Release date


level

- Android 1.0 1 September 23, 2008

- Android 1.1 2 February 9, 2009

Cupcake Android 1.5 3 April 30, 2009

Donut Android 1.6 4 September 15, 2009

Eclair Android 2.0 - 2.1 5-7 October 26, 2009

Froyo Android 2.2 - 2.2.3 8 May 20, 2010

Gingerbread Android 2.3 - 2.3.4 9-10 December 6, 2010

Honeycomb Android 3.0.x - 3.2.x 11 - 13 February 22, 2011

Ice Cream Sandwich Android 4.0 - 4.0.4 14 - 15 October 18, 2011

Jelly Bean Android 4.1 - 4.1.2 16 - 18 July 9, 2012

Kitkat Android 4.4 - 4.4.4 19 July 9, 2012

Lollipop Android 5.0 - 5.1 21 - 22 October 17, 2014


Marshmallow Android 6.0 - 6.0.1 23 October 5, 2015

Nougat Android 7.0 - 7.1 24 - 25 August 22, 2016

Oreo Android 8.0 26 August 21, 2017

Pie Android 9.0 27 August 6, 2018

Android Q Android 10.0 29 September 3, 2019

Android 11 Android 11.0 30 September 8, 2020

Snow Cone Android 12.0 - 12.1 31-32 October 4, 2021

Tiramisu Android 13 33 August 15, 2022

Upside Down Cake Android 14 34 October 4, 2023

Vanilla Ice Cream Android 15 35 May 15, 2024

1.1 Android architecture

Android architecture contains a different number of components to support any Android device's
needs. Android software contains an open-source Linux Kernel having a collection of a number
of C/C++ libraries which are exposed through application framework services. Among all the
components Linux Kernel provides the main functionality of operating system functions to
smartphones and Dalvik Virtual Machine (DVM) provide a platform for running an Android
application.

Components of Android Architecture

The main components of Android architecture are the following:-

 Applications
 Application Framework
 Android Runtime
 Platform Libraries
 Linux Kernel

Pictorial representation of Android architecture with several main components and their sub-
components

Understanding Android's architecture is essential for building efficient applications. For those
looking to master this structure and move from beginner to advanced skills in Kotlin,
the Android Mastery with Kotlin: Beginner to Advanced course offers a comprehensive
guide

1. Applications

Applications is the top layer of android architecture. The pre-installed applications like home,
contacts, camera, gallery etc and third party applications downloaded from the play store like
chat applications, games etc. will be installed on this layer only. It runs within the Android run
time with the help of the classes and services provided by the application framework.
2. Application framework

The Application Framework is a core part of Android that gives developers the tools and services
they need to build apps. It provides access to device features like hardware, screen display, and
system resources. It includes several important services that make it easier to build powerful and
consistent Android apps without having to create everything from scratch. The services are as
follows:

1. Activity Manager - Manages the app’s activities and their life cycle (like opening,
pausing, or closing screens).
2. Notification Manager - Allows apps to show alerts or updates to the user.
3. Package Manager - Keeps track of all the apps installed on the device.
4. Window Manager - Handles the placement and appearance of windows on the screen.
5. Content Providers - Help apps share data with other apps (like contacts or photos).
6. View System - Controls how things (like buttons or text) appear on the screen.
3. Application runtime
Android Runtime environment is one of the most important part of Android. It contains
components like core libraries and the Dalvik virtual machine(DVM). Mainly, it provides the
base for the application framework and powers our application with the help of the core libraries.
Like Java Virtual Machine (JVM), Dalvik Virtual Machine (DVM) is a register-based virtual
machine and specially designed and optimized for android to ensure that a device can run
multiple instances efficiently. It depends on the layer Linux kernel for threading and low-level
memory management. The core libraries enable us to implement android applications using the
standard JAVA or Kotlin programming languages.

4. Platform libraries
The Platform Libraries includes various C/C++ core libraries and Java based libraries such as
Media, Graphics, Surface Manager, OpenGL etc. to provide a support for android development.
 Media library provides support to play and record an audio and video formats.
 Surface manager responsible for managing access to the display subsystem.
 SGL and OpenGL both cross-language, cross-platform application program interface
(API) are used for 2D and 3D computer graphics.
 SQLite provides database support and FreeType provides font support.
 Web-Kit This open source web browser engine provides all the functionality to display
web content and to simplify page loading.
 SSL (Secure Sockets Layer) is security technology to establish an encrypted link
between a web server and a web browser.

5. Linux Kernel

Linux Kernel is heart of the android architecture. It manages all the available drivers such as
display drivers, camera drivers, Bluetooth drivers, audio drivers, memory drivers, etc. which are
required during the runtime. The Linux Kernel will provide an abstraction layer between the
device hardware and the other components of android architecture. It is responsible for
management of memory, power, devices etc. The features of Linux kernel are:

 Security: The Linux kernel handles the security between the application and the system.
 Memory Management: It efficiently handles the memory management thereby
providing the freedom to develop our apps.

 Process Management: It manages the process well, allocates resources to processes


whenever they need them.

 Network Stack: It effectively handles the network communication.

 Driver Model: It ensures that the application works properly on the device and hardware
manufacturers responsible for building their drivers into the Linux build.

Other Commonly Used Architectures in Android

There are few commonly used Android Architectures used mentioned below:

1. MVC ( Model View Controller )

MVC or Model View Controller breaks the model into three main components Model that stores
the application data , View UI layer that holds the component visible on the screen
and Controller that establishes the relationship between Model and the View.

2. MVP ( Model View Presenter )


To avoid complexities like maintainability, readability, scalability, and refactoring of
applications we use MVP model. The basic working of this model relies of the points mentioned
below:

 Communication between the View-Presenter and Presenter-Model happens with the help
of Interface (also called Contract).

 There is One to One relationship between Presenter and View , One Presenter Class only
manages One View at a time.

 Model and View doesn't have any knowledge about each other.

3. MVVM ( Model View ViewModel ) :

MVVM or Model View ViewModel as the name suggest like MVC model it contains three
components too Model , View and ViewModel. Features of MVVM model are mentioned below:

 ViewModel does not hold any kind of reference to the View.

 Many to-1 relationships exist between View and ViewModel.

 No triggering methods to update the View.

And we can achieve this using 2 methods:

 Using DataBinding library of Google.

 Using Tools like RxJava for Data Binding.

Benefits of Architecture

Using Architecture solves many problems for us few of them are:

 Improves the Maintainability , quality and robustness of the application


 Scalability of the Application is increased using Architecuture as , users and developers
bot the engamenents on the application can be increased.

 Testing of Application gets easy because of it.

 Bugs can be identified and removed easily with the well defined process.

1.2 Components of an Android Application

There are some necessary building blocks that an Android application consists of. These loosely
coupled components are bound by the application manifest file which contains the description of
each component and how they interact. The manifest file also contains the app’s metadata, its
hardware configuration, and platform requirements, external libraries, and required permissions.
There are the following main components of an android app:

1. Activities

Activities are said to be the presentation layer of our applications. The UI of our application is
built around one or more extensions of the Activity class. By using Fragments and Views,
activities set the layout and display the output and also respond to the user's actions. An activity
is implemented as a subclass of class Activity.

2. Services

Services are like invisible workers of our app. These components run at the backend, updating
your data sources and Activities, triggering Notification, and also broadcast Intents. They also
perform some tasks when applications are not active. A service can be used as a subclass of class
Service:
3. Content Providers

It is used to manage and persist the application data also typically interacts with the SQL
database. They are also responsible for sharing the data beyond the application boundaries. The
Content Providers of a particular application can be configured to allow access from other
applications, and the Content Providers exposed by other applications can also be configured.
A content provider should be a sub-class of the class ContentProvider.

4. Broadcast Receivers

They are known to be intent listeners as they enable your application to listen to the Intents that
satisfy the matching criteria specified by us. Broadcast Receivers make our application react to
any received Intent thereby making them perfect for creating event-driven applications.

To read more, refer to the article: Broadcast Receiver in Android With Example

5. Intents

It is a powerful inter-application message-passing framework. They are extensively used


throughout Android. Intents can be used to start and stop Activities and Services, to broadcast
messages system-wide or to an explicit Activity, Service or Broadcast Receiver or to request
action be performed on a particular piece of data.
To read more, refer to the article: Intent and Intent Filters

6. Widgets

These are the small visual application components that you can find on the home screen of the
devices. They are a special variation of Broadcast Receivers that allow us to create dynamic,
interactive application components for users to embed on their Home Screen.

7. Notifications

Notifications are the application alerts that are used to draw the user’s attention to some
particular app event without stealing focus or interrupting the current activity of the user. They
are generally used to grab user’s attention when the application is not visible or active,
particularly from within a Service or Broadcast Receiver. Examples: E-mail popups, Messenger
popups, etc.

1.4 Processes and Application Lifecycle in Android

As an android developer, if one does not know the application lifecycle of android application or
does not have in-depth knowledge about it, there are very high chances that the application will
not have a good user experience. Not having proper knowledge of the application lifecycle will
not affect the working of that application but it will lead to poor user experience. Let's take one
example where the user is using the application, which takes a high amount of battery usage and
on the other hand there is one another same application providing the same functionalities
offered by the previous app, then there are very high chances that the user will shift to later
application and will not be using the previous app. Having a lot of battery usage by the app can
be the indication that the android developer of that app does not have proper knowledge of the
application lifecycle.

This is an important topic and mandatory need to have proper knowledge of the processes in the
android and application lifecycle and how different processes can affect the application state.
The knowledge of the Application Lifecycle in Android is also a must because without having
proper knowledge many times the process can be crashed while doing some important work
which will ultimately lead to a bad impression of the app on the users. The lifecycle of the
application's process is not solely controlled by the application itself, but the application's
process lifetime depends on the various numbers of factors such as memory taken by the
application, memory available in the system, how important is the process from the perspective
of the user, how long it had been since the user not used that application.

Importance Of Having Knowledge of Process and Application Lifecycle

Knowing the Application lifecycle is necessary as though it will not affect the working of the
app, but it will affect the user experience. Let say the user has two option in which user has the
choice to choose one app of out two, in which both the application offers the same functionality,
and involving the same type of task, but one app consumes more battery usage than the other, so,
surely, the user will go for the application which consumes less battery. Thus developers need to
understand the application is not holding resources and services when it is not in use, as it can be
the cause of more battery usage. Thus developers should handle each application state of the
android app and should release the resources when the app is in the background state.

LRU Cache Role in Optimization Of Android Applications

As it is known that a particular android device has limited storage capacity and processing speed,
but since there are so many applications running on the user device, it becomes challenging for
the android operating system to manage the resource properly so that none of the resources
become a deficit of resource. So android operating system pushes the least used application in a
cache called as LRU (Least Recently Used) Cache, if the application has not been used for the
very long time, it will be pushed to the queue of the LRU and will be present at the front of the
queue. If the application comes into use in the near time, it will be near to the back of the queue,
and if the application is most recently used it will be present at the back of the queue. For
example, if the user has not used Facebook for a very long time, then the Facebook application
will be present at the front of the queue and if let's suppose the user has used WhatsApp recently,
then it will be present at the back of the LRU Cache queue. The LRU Cache Queue can be
diagrammatically represented as:

The Priority of Processes In Android Application

To determine which process should be killed to proper memory and battery management, the
Android operating system maintains a hierarchy in which all the processes are placed in order of
their priority. The less priority is the process which can be killed first when the system wants to
free up some resource. Android uses some set of rules and regulations to decide the priority of
the processes based on the running state of the applications. Below are the process states that a
process may have at any time in android applications. The priority of these processes
decreases from top to down in order in which they are listed.

1. Foreground process

A foreground process is a process with which the user is currently interacting and using it. A
process is considered to be in the foreground state if any of the below conditions hold:

 If the process is running an activity with which the user is interacting


 If it has a broadcast receiver which is currently in execution to receive any system update.

Example: Imagine the user is using Whatsapp, so the Whatsapp app will be said to be in the
foreground state. This process is of the highest priority and they can only be killed by the system
if the memory is so low that even this process cannot continue their execution.
2. Visible process

A visible process is a process when the activity can be visible to the user. The user does not
directly interact with this process, as the activity corresponds to this process would be covered
partially by another activity and the process will be in the onPause() lifecycle state. This process
cannot be killed unless there is so much lack of memory in the system that the execution of these
processes cannot be possible. Killing these processes will create a negative impact on user
experience, as a user can see the activity corresponding to this process. These processes would
be killed only when keeping them alive make it impossible for the foreground process to
continue their execution.

Example: When some application needs permission like camera access, storage access, etc a
prompt or dialog box will appear and ask for the required permission. So at this time, the process
corresponding to the activity of the app which is running previously will go in the visible state.

3. Service Process

A process is said to be a service process if it is in running state and neither a foreground process
and a visible process. These processes are not directly visible to the user of the application. This
process is helpful for the applications which perform the background tasks such as background
network data upload or download. The system will keep the service process alive until it
becomes impossible for the system to keep the foreground process and visible process running.

Example: Uploading a PDF on the Whatsapp from the desktop is a service process that is done
in the background.

4. Background process

A background state in which the onStop() lifecycle method of android is called by the system.
Let's suppose the user is using an app and suddenly presses the home button, so because of this
action, the process goes from foreground state to background state. When the app goes from
foreground state to background state, it goes to the LRU cache queue and will be placed in the
front of the [Link] the user returns to that app, the process will return from background
state to foreground state. So having knowledge of the process and application lifecycle in
android along with how processes can decide the lifecycle time of the application is a must for an
android developer which can lead to good user experience.

Battery Usage Of Phone When Using the Same Type Of Applications

From the above image, it can be said that applications that offer the same type of services lead to
near about the same amount of battery consumption. (Consider the usage time of application to
be equal) From the above image, it can be seen that as Youtube and Google meets are both
Video Streaming and Linkedin and Whatsapp are both the same kinds of messaging app, though
a little bit different, but these apps use the same kind of data-transport and services, thus
consumes the same amount of battery.

Chapter 3: Elements of Embedded Programming


1.1 Introduction of Embedded Systems

Before going to the overview of Embedded Systems, Let's first know the two basic things i.e.,
embedded and system, and what actually do they mean.

System is a set of interrelated parts/components which are designed/developed to perform


common tasks or to do some specific work for which it has been created.

Embedded means including something with anything for a reason. Or simply we can say
something which is integrated or attached to another thing. Now after getting what actual
systems and embedded mean we can easily understand what are Embedded Systems.

What is Embedded System?

Embedded system is a computational system that is developed based on an integration of both


hardware and software in order to perform a given task. It can be said as a dedicated computer
system has been developed for some particular reason. But it is not our traditional computer
system or general-purpose computers, these are the Embedded systems that may work
independently or attached to a larger system to work on a few specific functions. These
embedded systems can work without human intervention or with little human intervention.

Components of Embedded Systems

1. Hardware 2. Software 3. Firmware

Examples of Embedded Systems

 Digital watches
 Washing Machine

 Toys

 Televisions

 Digital phones

 Laser Printer

 Cameras

 Industrial machines

 Electronic Calculators

 Automobiles

 Medical Equipment

Application of Embedded System

 Home appliances

 Transportation

 Health care

 Business sector & offices

 Defense sector

 Aerospace

 Agricultural Sector

1.2 Characteristics of an Embedded System

 Performs specific task: Embedded systems perform some specific function or tasks.

 Low Cost: The price of an embedded system is not so expensive.

 Time Specific: It performs the tasks within a certain time frame.

 Low Power: Embedded Systems don't require much power to operate.


 High Efficiency: The efficiency level of embedded systems is so high.

 Minimal User interface: These systems require less user interface and are easy to use.

 Less Human intervention: Embedded systems require no human intervention or very


less human intervention.

 Highly Stable: Embedded systems do not change frequently mostly fixed maintaining
stability.

 High Reliability: Embedded systems are reliable they perform tasks consistently well.

 Use microprocessors or microcontrollers: Embedded systems


use microprocessors or microcontrollers to design and use limited memory.

 Manufacturable: The majority of embedded systems are compact and affordable to


manufacture. They are based on the size and low complexity of the hardware.

Block Structure of Embedded System


Embedded System

Advantages of Embedded System

 Small size.

 Enhanced real-time performance.

 Easily customizable for a specific application.

Disadvantages of Embedded System

 High development cost.

 Time-consuming design process.

 As it is application-specific less market available.

Top Embedded Programming Languages: Some of the programming languages used in the
development of embedded systems include, Embedded C, Embedded C + +, Embedded Java,
Embedded Python etc. But it completely rests on the developer which programming language he
selects for the development of the embedded systems.

1.3 How does an Embedded System Work?

Embedded systems operate from the combination of hardware and software that focuses on
certain operations. An embedded system at its heart has microcontroller or microprocessor
hardware on which user writes the code in form of software for control of the system. Here is
how it generally works:

 Hardware Layer: Some of the hardware elements that are incorporated in an embedded
system include the sensor, actuator, memory, current I/O interfaces as well as power
supply. These components are interfaced with the micro controller or micro processor
depending up on the input signals accepted.

 Input/Output (I/O) Interfaces: They to give the system input in form of data from
sensors or inputs made by the users and the microcontroller processes the data received.
The processed data is then utilized to coordinate the output devices such as displays,
motors or communication modules.

 Firmware: Firmware which is integrated within a system’s hardware comprises of


certain instructions to accomplish a task. Such software is often used for real time
processing and is tuned to work in the most optimal manner on the system hardware.

 Processing: Depending on the given software and the input data received from the
system’s inputs the microcontroller calculates the appropriate output or response and
manages the system’s components.

 Real-time Operation: Some of the most common systems are real time, this implies that
they have the ability to process events or inputs at given time. This real time capability
makes sure that the system accomplishes its intended function within stated time
demands.

For instance therein an embedded system in a washing machine, the microcontroller would
interface with the buttons (selections made by a user), sensors, for instance water levels,
temperature and timers; it would control outputs such as motors, heaters and displays among
others based on the program intended for washing cycles.

1.4 Difference between embedded systems and mobile systems

Embedded systems are special-purpose computers built into a larger device or product to
perform dedicated functions.
Mobile systems are general-purpose computers designed for portability and a wide range
of user applications.

Key Differences

Feature Embedded Systems Mobile Systems

Primary Dedicated, single-function or fixed- General-purpose computing,


purpose function tasks multitasking, user
applications

Examples Washing machine controller, car ECU, Smartphones, tablets,


IoT sensor, medical device, router smartwatches (when running
OS like Android/iOS)

User interface Often minimal or none (buttons, Rich UI (touchscreen, voice,


LEDs, simple display) or invisible gestures)

Operating Often RTOS (Real-Time OS) or bare- Full OS (Android, iOS,


System metal, sometimes Linux embedded iPadOS) with rich
frameworks

Performance Predictability, reliability, real-time Performance,


constraints response, low power responsiveness, battery life,
user experience

Processing Can range from microcontrollers Typically high-performance


power (MHz, KB RAM) to powerful SoCs multicore CPUs/GPUs (GHz,
(e.g., in car infotainment) GB RAM)

Connectivity May have wired or limited wireless Multiple radios (Wi-Fi,


(Bluetooth LE, Zigbee) cellular, Bluetooth, GPS)

Upgradability Firmware updates possible, but Frequent OS and app updates,


hardware/software often fixed user-installable apps

Development Hardware-near programming (C, C++, App development (Java,


focus Rust), drivers, low-power Kotlin, Swift), UX, cloud
optimizations integration

Power source Often mains-powered or long-life Rechargeable battery (hours


battery (years) to days of use)

Overlap & Convergence

 Embedded mobile devices: Smartwatches (like Wear OS or watchOS) blend embedded


constraints (size, power) with mobile OS features.

 High-end embedded systems: Automotive infotainment systems run Android


Automotive or Linux but are still considered embedded due to fixed function and
integration.

 IoT devices: Many are embedded systems, but smartphones act as their mobile
interface/control point.

Simple Analogy

 Embedded system → The computer inside your microwave that controls timing and
power.

 Mobile system → Your smartphone that you use to call, browse, play games, and also
control the microwave via an app.

1.5 Embedded programming constraints


1. Real-Time Performance & Determinism

What it is: The system must guarantee a response within a strict deadline (real-
time). Determinism means the worst-case execution time is known and predictable.

 Why it's a constraint: You can't trade speed for convenience. A missed deadline is a
system failure.

 Real-Life Example:

o Airbag Deployment System in a Car. From the moment a crash sensor detects
an impact, the airbag must inflate within ~10-50 milliseconds. The software
cannot afford to wait for a garbage collector to run, get stuck in a loop, or be
preempted by a less-critical task. Every line of code, every interrupt service
routine, is analyzed for its worst-case execution path. Using dynamic memory
allocation (malloc) is typically forbidden because its timing is unpredictable.

 Programmer's Reality: They use Real-Time Operating Systems (RTOS) or bare-metal


programming with careful prioritization of interrupts. They avoid unbounded loops,
perform worst-case execution time (WCET) analysis, and use static, pre-allocated
memory.

2. Constrained Memory (RAM & ROM/Flash)

What it is: Embedded processors often have kilobytes (KB) of RAM and maybe a few
megabytes (MB) of Flash, not gigabytes (GB).

 Why it's a constraint: Every byte costs money (in chip price, board size, and power).
Large memory is physically impossible in small, cheap, or low-power devices.

 Real-Life Example:

o Smart Thermostat (e.g., Nest or a simpler model). It runs on a microcontroller.


It might have 256KB of Flash to store the entire program and constants,
and 32KB of RAM to hold all run-time variables, sensor data, and
communication buffers. There is no room for a full Linux OS or heavy libraries.
 Programmer's Reality: They count bytes. They use data types like uint8_t instead
of int. They store constant data (like UI strings, lookup tables) in Flash, not RAM. They
avoid deep recursion, large local arrays, and dynamic data structures. They pack data into
bit-fields. They must be intimately aware of the memory map.

3. Limited Processing Power

What it is: Clock speeds are often in the tens or hundreds of MHz (not GHz), and the CPU
may lack advanced features like floating-point units (FPU).

 Why it's a constraint: More processing power equals more heat and more power
consumption. The goal is to use the minimum capable processor to reduce cost and energy
use.

 Real-Life Example:

o Digital Kitchen Scale. The microcontroller reads a strain gauge sensor signal,
filters the noise, averages the readings, and displays the weight on a simple LCD.
It runs at 16 MHz. Performing complex floating-point math for unit conversions
would be incredibly slow. Instead, it uses fixed-point arithmetic (treating
integers as decimals) for all calculations.

 Programmer's Reality: They write highly optimized algorithms. They often use look-
up tables instead of complex calculations (e.g., for trigonometric functions). They
disable compiler optimizations that increase code size at the expense of speed, or vice
versa, depending on the primary constraint.

4. Power Consumption & Energy Efficiency

What it is: Many embedded systems are battery-powered or must operate on minimal
energy. Power is a primary design driver.

 Why it's a constraint: The device might need to run for years on a single coin-cell
battery, or it might be solar-powered.

 Real-Life Example:
o Wireless Soil Moisture Sensor in a farm field. It's in the middle of a field,
powered by a small battery and a solar panel. It sleeps 99.9% of the time,
drawing microamps (µA) of current. Every few hours, it wakes up
(drawing milliamps (mA)), reads the sensor, transmits a small packet of data via
LoRaWAN radio, and goes back to sleep. If the software gets stuck in an active
loop, the battery dies in days instead of years.

 Programmer's Reality: The dominant design pattern is "Sleep as much as


possible." They use low-power modes of the microcontroller aggressively. They turn off
peripherals (ADCs, communication modules) when not in use. Interrupts are used to
wake the system. Code is structured around short bursts of activity followed by deep
sleep.

5. Hardware-Specific & Direct Hardware Manipulation

What it is: Embedded software directly reads from and writes to physical memory addresses
that control hardware peripherals (registers). There is no generic "Open File" abstraction.

 Why it's a constraint: The software is married to the specific circuit board (PCB) it was
designed for. Changing the hardware pin a sensor is connected to requires a software
change.

 Real-Life Example:

o Drone Motor Controller (ESC - Electronic Speed Controller). The software


must generate precisely timed pulse-width modulation (PWM) signals to control
the brushless motors. This involves:

1. Configuring a timer peripheral's registers to count at a specific


frequency.

2. Configuring an output compare register to set the pulse width.

3. Writing directly to a GPIO (General Purpose Input/Output) register to


toggle a pin high/low.
This is all done by writing specific bit patterns to specific memory
addresses defined in the chip's datasheet.
 Programmer's Reality: They live in datasheets and reference manuals. They
use Hardware Abstraction Layers (HAL) or write their own drivers. A significant part
of the code is initialization: setting up clocks, configuring pins for specific functions
(UART, I2C, PWM), and setting up interrupt controllers.

6. Reliability, Safety, and Long Lifespans

What it is: Systems are expected to run continuously for years without crashing and must
often fail safely.

 Why it's a constraint: You can't just "reboot" a pacemaker, an industrial machine, or a
satellite. A failure can be catastrophic.

 Real-Life Example:

o Industrial PLC (Programmable Logic Controller) controlling a conveyor


belt. It runs 24/7 for a decade in a dirty, electrically noisy factory. The software
must include watchdog timers (a hardware circuit that resets the CPU if the
software gets stuck), implement checksums on critical data, and have graceful
degradation modes. If a sensor fails, it should enter a safe state (stop the belt)
rather than continue erratically.

 Programmer's Reality: They design for fault tolerance. They implement defensive
programming (checking inputs, validating states). Code is often written to MISRA C or
similar safety standards that forbid risky language features. They perform extensive
testing, including stress testing and fault injection.

1.6 Sensors and actuators in mobile devices

To put it simply:

 Sensors are devices that detect and measure physical properties like temperature, light,
pressure, motion, or sound, and convert them into digital signals.

 Actuators are devices that perform an action based on the signals they receive, such as
turning on a light, opening a valve, or moving a motor
Together, they form the backbone of sensing and actuation in IoT. Sensors provide the data,
and actuators respond to that data by taking action.

How Do Sensors and Actuators Work in IoT Systems?

Here’s how the process typically works in an IoT system:

1. Sensing: A sensor collects data from the environment (for example, a temperature sensor
reads the room temperature).

2. Processing: The data is sent to a controller or cloud platform where it is analyzed.

3. Decision Making: Based on the analysis, a decision is made (e.g., if the temperature is
too high).

4. Actuation: The actuator receives the signal and performs an action (for example,
switching on the air conditioner).

This cycle of sensing and actuation in IoT enables devices to not only observe but also
interact with their surroundings in real time.

Purpose of Sensors and Actuators in IoT

The main purpose of sensors and actuators in the Internet of Things is to connect the digital
and physical worlds.

 Sensors collect real-world data.

 Actuators convert that data into meaningful actions.

For example, in a smart irrigation system, soil moisture sensors detect dryness, and actuators
activate water pumps to irrigate the field. Without this cycle, IoT devices would just sit idle,
unable to make real changes.

Difference Between Sensors and Actuators in IoT

It’s easy to confuse the two, so let’s make the di difference between sensors and actuators in
the Internet of Things clear:

Feature Sensor Actuator


Function Detects changes in the Performs an action based on input
environment

Input/ Takes input from the Produces output (movement, signal, or


Output environment mechanical change)

Example Temperature sensor, light Motor, heater, servomotor


sensor

Role in IoT Collects data Executes actions

In short, sensors are the “eyes and ears” of IoT, while actuators are the “hands and legs.”

Types of Sensors and Actuators in IoT

Now let’s look at the types of sensors and actuators in the Internet of Things.

Types of Sensors:

1. Temperature Sensors: Used in smart thermostats, weather stations, and refrigerators.

2. Proximity Sensors: Detect nearby objects, common in parking systems and smartphones.

3. Pressure Sensors: Monitor air or water pressure in industrial machines and medical
devices.

4. Motion Sensors: Detect movement in security systems or smart lighting.

5. Light Sensors: Used in smartphones (auto-brightness) and streetlights.

6. Gas Sensors: Detects harmful gases in industries and homes.

7. Humidity Sensors: Found in weather monitoring and greenhouse farming.

These are just a few common sensor types used in IoT. To get a deeper understanding of
overall sensor categories and examples, check out this guide on the types of sensors in IoT

Types of Actuators:

1. Electrical Actuators: Convert electrical energy into movement (motors, relays).

2. Hydraulic Actuators: Use liquid pressure to move heavy equipment.


3. Pneumatic Actuators: Work with compressed air for fast mechanical movement.

4. Thermal Actuators: Use heat to trigger mechanical action (like in fire sprinklers).

5. Mechanical Actuators: Simple devices like levers, gears, or springs.

These categories show how sensor and actuator in IoT cover a wide range of applications.

Examples of Sensors and Actuators in IoT

Let’s see some examples of sensors and actuators in the Internet of Things in real-world
systems:

 Smart Home:

o Sensors: Motion detectors, temperature sensors, light sensors.

o Actuators: Smart bulbs, door locks, heating systems.

 Healthcare:

o Sensors: Heart rate monitors, glucose sensors.

o Actuators: Insulin pumps, alert alarms.

 Smart Agriculture:

o Sensors: Soil moisture sensors, weather sensors.

o Actuators: Water pumps, irrigation systems.

 Industrial IoT (IIoT):

o Sensors: Pressure sensors, vibration sensors.

o Actuators: Robotic arms, valves, motors.


These examples highlight how sensors and actuators in the Internet of Things are not just
theoretical but are already shaping everyday life.

Applications of Sensors and Actuators in IoT

The applications are vast and expanding every day. Some common ones include:

 Smart Homes: Automated lighting, energy management, and security.

 Healthcare: Patient monitoring and emergency alerts.

 Agriculture: Precision farming and smart irrigation.

 Industrial Automation: Robotics, predictive maintenance, and safety systems.

 Transportation: Smart traffic lights, connected cars, and fleet management.

Every IoT system you see today is built on the backbone of sensing and actuation in IoT.

Understanding sensors and actuators in IoT is just the beginning, what makes IoT truly
powerful is learning how devices, data, and actions come together to create smart systems.
An Internet of Things course can guide you through real-world applications like smart
homes, healthcare, and industrial automation, helping you see the bigger picture beyond
theory. With practical projects and hands-on learning, such a course makes complex IoT
concepts simple and prepares you to apply them effectively in different domains.

1.7 Interaction between mobile applications and hardware components

Mobile phones are intricate devices built from both hardware and software components that
work together to enable seamless functionality. Hardware components include the processor,
memory, display, battery, and camera, each playing a vital role in a phone’s performance,
durability, and usability.

On the software side, the operating system (OS) and various applications provide the interface
and capabilities that users experience daily. Understanding these components helps us appreciate
how modern mobile phones deliver powerful, high-speed performance while maintaining
portability and convenience.
Mobile Phone Hardware Components

Typically, hardware components of a mobile phone include:


 Display (LCD, touch screen)

 Keypad
 Microphone
 Speaker
 SIM card
 Battery
 USB port
 Antenna
 Memory unit (RAM, ROM)
 Camera
 CODEC
 RF part
 DAC/ADC
 Baseband part (L1/Layer1/physical layer) running on DSP
 Application/protocol layers running on CPU
 ON/OFF switch
 Bluetooth/GPS features
Mobile Phone RF Transceiver
As shown in the figure, every mobile phone will have an RF part which consists of an RF
frequency up-converter and RF frequency down-converter.
For the GSM system, the up-converter converts the modulated baseband signal (I and Q) either at
zero IF (Intermediate frequency) or some IF to RF frequency (890-915 MHz).

The RF down-converter converts the RF signal (935 to 960 MHz) to the baseband signal (I and
Q).
For GSM, GMSK modulation is used. There are two approaches employed in GSM Mobile
phone receiver, i.e., heterodyne or homodyne. The basic component used for frequency
conversion is the RF mixer.

Mobile Phone Antenna and Tx/Rx SW (Switch)


The antenna is the metallic object which converts the electromagnetic signal to an electric signal
and vice versa.
Commonly used antennas in mobile phones are of various types such as helix type, planar
inverted F type, whip, or patch type.
Microstrip-based patch-type antennas are popular among mobile phones due to their size, easy
integration on the PCB, and multi-frequency band of operation.
Today’s mobile phones support various GSM bands and also various technologies such as
CDMA, LTE, WiMAX, and also WLAN, Bluetooth, and so on. In these scenarios, this type of
patch antenna does the job.
Tx/Rx Switch: As there is only one antenna used for both transmit and receive at different times,
the Tx/Rx Switch is used to connect both the Tx path and Rx path with the antenna at different
times.
The Tx/Rx Switch is controlled automatically by DSP based on the GSM frame structure with
respect to the physical slot allocated for that particular GSM mobile phone in both downlink and
uplink.
For FDD systems, a diplexer is used in place of a switch which acts as a filter to separate various
frequency bands.

Mobile Phone Baseband Part


This part basically converts voice/data to be carried over the GSM air interface to the I/Q
baseband signal.
This is the core part which changes modem to modem for various air interface standards viz.
CDMA, Wimax, LTE, HSPA, and more.
It is often named as the physical layer or Layer 1 or L1. It is ported usually on DSP (Digital
Signal Processor) to meet the latency and power requirements of the mobile phone.
For Speech/audio, a codec is used to compress and decompress the signal to match the data rate
to the frame it has to fit in. The CODEC converts speech at an 8 KHz sampling rate to a 13 kbps
rate for the full-rate speech traffic channel.
To do this, RELP (Residually Excited Linear Predictive coder) speech coder is used which packs
260 bits in 20 ms duration to achieve a 13 kbps rate.
The baseband or physical layer will add redundant bits to enable error detection as well as error
correction. Error detection is obtained with CRC and error correction with forward error
correction techniques such as convolutional encoder (used at the transmit part) and viterbi
decoder (used at the receive part).
Other than this, interleaving is done for the data of one burst which helps in spreading the error
over the time hence helps the receiver de-interleave and decode the frame (consecutively data
burst) correctly.

ADC and DAC


ADC (Analog to Digital Converter) and DAC (Digital to Analog Converter) are used to convert
analog speech signals to digital signals and vice versa in the mobile handset.
At the Transmit path, the ADC converted digital signal is given to the speech coder.
There are various ADCs available, among them the popular one is sigma delta type.
AGC (Automatic Gain Control) and AFC (Automatic Frequency Control) are used in the
receiver path to control gain and frequency. AGC helps maintain the working of DAC
satisfactorily, as it keeps the signal within the dynamic range of DAC. AFC keeps the frequency
error within a limit to achieve better receiver performance.

Mobile Phone Software | Protocol stack


Other than the physical layer there are other layers involved in the GSM mobile phone to make it
work with the GSM network/base station.
The entire protocol stack is ported on the CPU of ARM or of any other type of processor.
Application layer
It also runs on the CPU. Various applications run in GSM mobile phones. It includes audio,
video, and image/graphics applications. It supports various audio formats such as MP3, MP4,
WAV, rm. JPEG image formats are usually available.

It supports video formats e.g., MPEG-1 to MPEG-5. Mobile phones support CIF, and QCIF
video standard resolutions.
Mobile Phone OS (Operating System)
Mobile phone operating systems (OSs) are the software platforms that enable smartphones to
perform a wide range of tasks, from running apps to managing system resources.
The two most popular mobile OSs are Android and iOS. Android, developed by Google, is an
open-source platform used by various manufacturers like Samsung, Google, and Xiaomi,
providing extensive customization options and compatibility with numerous hardware
configurations.
Apple’s iOS, on the other hand, is a proprietary OS exclusive to iPhone devices, known for its
seamless integration with Apple’s ecosystem and a focus on security and user experience.
Mobile OSs rely on powerful CPUs to handle complex processes, multitasking, and high-
performance applications. Android devices typically run on CPUs like Qualcomm’s Snapdragon,
Samsung’s Exynos, and MediaTek’s Dimensity series, all designed for optimized speed,
graphics, and power efficiency. iPhones, meanwhile, run exclusively on Apple’s A-series Bionic
chips, such as the A17 Bionic, which deliver industry-leading performance tailored to iOS.
These processors enable mobile OSs to provide smooth experiences in gaming, multimedia, and
productivity tasks.
Battery
It is the only major source of power to make/to keep the mobile phone functional.
There are various types of batteries made of Nickel Cadmium (NiCd), Nickel Metal Hydride
(NiMH), based on lithium, Li-ion, and so on.
The major factors for designers are to reduce battery size, last for more talk time, and increase
battery life.
The battery comes usually with 3.6 or 3.7 voltage and 600mAh or 960 mAh ratings.
A Battery Charger is usually provided with the mobile phone to charge the mobile phone battery.
The Battery charger is an AC to DC converter.
Connectivity
To make data transfer fast enough between the mobile phone and other computing devices
(laptop, desktop, tablet) or between mobile and mobile, various technologies have evolved which
include WLAN, Bluetooth, USB, etc.
GPS (global positioning system) is used for location assistance and will enable google maps to
work efficiently.
Microphone and Speaker
Microphone: A microphone or mic converts air pressure variations (result of our speech) to an
electrical signal to couple on the PCB for further processing. Usually, in mobile phones, mics of
types condenser, dynamic, carbon, or ribbon are used.
Speaker: It converts the electrical signal to an audible signal (pressure vibrations) for human
beings to hear. This is often coupled with an audio amplifier to get the required amplification of
the audio signal.
It is also tied with a volume control circuit to change (increase or decrease) the amplitude of the
audio signal.
Camera
Now-a-days with almost all the mobile phone camera feature is available for one to click pictures
at various occasions. It is the major specification in increasing the cost of a mobile phone.

There are various mega pixel cameras for mobile phones available such as 12 mega pixels, 14
mega pixels, and even 41 mega pixels available in smartphones. This has become evident
because of advancements in sensor technology. If one wants to buy a low-cost mobile phone,
they usually go for a non-camera mobile phone.
Display and Keypad
Display: There are various display devices used in mobile phones such as LCD (liquid crystal
display), TFT (Thin-film transistor) screen, OLED (organic light emitting diode), TFD (thin film
diode), touch screen of capacitive and resistive type, etc.
Keypad: Earlier days keypad was simple matrix type keypad which contains numeric digits (0 to
9), alphabets (a to z), special characters and specific function keys. These has been designed for
various applications such as accepting call, rejecting call, cursor movement(left, right, top,down)
dialling number, typing name/sms/mms and so on.
Now-a-days keypad has been removed from the phone design and it has become part of mobile
phone software. It pops on the display screen itself which can be operated by user using touch of
a finger tip.

You might also like