NOBLE COLLEGE
MAD NOTES
UNIT 1
CHAPTER 1: Introduction to Mobile Technologies and Key Services
1.1 INTRODUCTION
Mobile application development is the process of creating software applications that run on mobile devices
like smartphones and tablets. These apps allow users to perform a variety of tasks such as messaging,
gaming, e-commerce, banking, fitness tracking, and more.
Mobile apps are developed using mobile technologies such as:
• Programming Languages: Java, Kotlin, Swift
• Frameworks: Android Studio, Flutter, React Native
• Communication Networks: 4G, 5G, Wi-Fi, Bluetooth
What is a Mobile Application?
A Mobile Application (App) is a software application designed specifically to run on mobile devices like
smartphones and tablets. These apps are downloaded from app stores like Google Play Store (Android) and
Apple App Store (iOS).
Example: WhatsApp – a messaging app that allows sending text, images, voice, and videos over the
internet.
What is Mobile Application Development?
It refers to the process of designing, coding, testing, and deploying applications for mobile platforms.
Who is the Father of Android?
Andy Rubin is known as the father of Android. He co-founded Android Inc. in 2003, which was later
acquired by Google in 2005.
1.2 BRIEF HISTORY OF MOBILE TECHNOLOGIES
Generation Key Features Examples
1G Analog voice calls Motorola DynaTAC 8000X
2G Digital signals, SMS GSM, Nokia 3310
3G Video calling, internet UMTS, CDMA2000
4G HD streaming, LTE Jio 4G, Airtel 4G
5G Ultra-fast speed, IoT support Real-time surgery, Smart cities
1973: First mobile phone call by Martin Cooper using a Motorola prototype.
1992: IBM Simon – First smartphone with a touchscreen, email, and apps.
1.3 DIFFERENT MOBILE TECHNOLOGIES
1.3.1 Cellular Networks
Cellular networks form the backbone of mobile communication.
• 1G – Analog voice
• 2G – Digital voice + SMS
• 3G – Internet, video calls
• 4G LTE – High-speed broadband
• 5G NR – Real-time streaming, AR/VR
1.3.2 Mobile Operating Systems (OS)
OS is software that manages hardware and software resources on mobile devices.
• Android (Google) – Open source, dominant worldwide.
• iOS (Apple) – Secure, smooth UI.
• Others: Tizen (Samsung), HarmonyOS (Huawei), BlackBerry OS (discontinued)
1.3.3 Mobile Development Frameworks
Type Examples Advantages
Android Studio (Kotlin/Java), Xcode
Native High performance, full hardware access
(Swift)
Cross-
Flutter, React Native, Xamarin Single codebase for Android & iOS
Platform
Built using HTML/CSS/JS, quick
Hybrid Ionic, Cordova
development
1.3.4 Mobile Web Technologies
• HTML5: Rich multimedia websites (e.g., YouTube)
• PWA: Progressive Web Apps like Twitter Lite – installable web apps that work offline
1.3.5 Connectivity & Communication
• Bluetooth 5.0: Connect wireless devices like headphones
• Wi-Fi 6: High-speed, low latency
• NFC: Contactless payments like Google Pay, Apple Pay
1.3.6 Sensors and Hardware Innovations
• Accelerometers & Gyroscopes: Motion sensing (used in games and fitness)
• Biometric Sensors: Face ID, fingerprint sensors
• Proximity Sensors: Turn off screen during calls
• Ambient Light Sensors: Auto screen brightness
• Infrared Blaster: Remote control apps
1.3.7 Location-Based Services (LBS)
• GPS: Satellite-based location detection (Google Maps)
• Geofencing: Virtual boundaries for apps to trigger actions (e.g., turning on lights when arriving
home)
1.3.8 Cloud Storage
Stores data online and syncs across devices.
• Examples: Google Drive, iCloud, Dropbox
1.3.9 Emerging Technologies
• Augmented Reality (AR): Overlays digital content on the real world (e.g., Pokémon GO)
• Virtual Reality (VR): Immersive digital experience using headsets (e.g., Oculus VR)
• IoT (Internet of Things): Smart devices that communicate (e.g., Smart TVs, Wearables)
• AI (Artificial Intelligence): Machine learning, voice recognition, image processing (e.g., Google
Assistant)
1.4 KEY MOBILE APPLICATION SERVICES
Service Description Example
Push Notifications Sends alerts even when app is closed Instagram notifications
In-App Messaging Real-time communication inside the app WhatsApp, Messenger
Analytics & Tracking Tracks user activity & app performance Firebase Analytics
User Authentication Login via email, Google/Facebook Facebook Login
Payment Processing Handles in-app purchases Google Pay, Apple Pay
Cloud Storage Online file storage & sync Google Drive, iCloud
Location Services GPS-based services Uber, Google Maps
Social Media Integration Share content via social media TikTok share
Cloud Messaging Real-time message delivery Firebase Cloud Messaging
Voice Recognition Converts speech to text Google Assistant, Siri
Offline Access Works without internet Google Maps offline mode
Personalization Tailors content to user Spotify recommendations
AR Integration Immersive experience IKEA Place app
Biometric Authentication Secure login Face ID, Fingerprint scan
Service Description Example
Deployment App store publishing Google Play Store, App Store
CHAPTER 2: Introducing Android
2.1 INTRODUCTION
Android is an open-source mobile operating system developed by Google. It is designed primarily for
touchscreen mobile devices such as smartphones and tablets. Android runs millions of apps that power
phones, smart TVs, wearables, and even automobiles.
2.1.1 BRIEF HISTORY OF ANDROID
Year Milestone
2003 Android Inc. founded by Andy Rubin
2005 Google acquires Android Inc.
2007 Google forms Open Handset Alliance
2008 First Android phone (HTC Dream) launched
2023 Android 14 released on Feb 8, 2023
2.1.2 WHAT IS ANDROID?
Android is a Linux-based, open-source software stack that includes:
• Operating System (OS)
• Middleware (services and libraries)
• Key mobile applications
It is “the first complete, open, and free mobile platform.”
Definitions:
• Andy Rubin: Envisioned Android to bring internet power into everyone’s hands.
• Google: Android is a mobile OS for touchscreen devices like smartphones/tablets.
2.1.3 KEY FEATURES OF ANDROID
1. Open-Source Platform
o Based on the Linux kernel, released under Apache License.
o Example: LineageOS, Paranoid Android.
2. Customizable User Interface
o Widgets, launchers, wallpapers.
o Example: Nova Launcher.
3. Google Services Integration
o Gmail, Google Maps, Google Drive, Google Assistant.
4. Extensive App Ecosystem
o Over 3 million apps in Google Play Store.
5. Multi-Device Support
o Phones, TVs (Android TV), watches (Wear OS), cars (Android Auto).
6. Multitasking & Split-Screen Mode
o Run two apps at the same time.
7. Advanced Notifications
o Actionable messages with reply/quick actions.
8. Connectivity Options
o Bluetooth, NFC, Wi-Fi Direct, USB OTG.
9. Google Assistant Integration
o "Hey Google" for hands-free control.
10. Security & Regular Updates
o Monthly patches and Google Play Protect.
2.1.4 MOBILE APP DEVELOPMENT USING ANDROID
• Languages: Java, Kotlin
• Tools: Android Studio, SDK, Emulator
• Output: APK (Android Package)
• App distribution via Google Play Store or third-party markets.
2.1.5 ARCHITECTURE OF ANDROID
4-Layered Architecture:
1. Linux Kernel
o Hardware abstraction, device drivers, power management
2. Libraries and Android Runtime (ART)
o SQLite, SSL, WebKit
o ART: Executes Android bytecode
3. Application Framework
o APIs for app components
o Managers: ActivityManager, PackageManager
4. Applications Layer
o Gmail, Calendar, Camera, Third-party apps
2.1.6 NATIVE ANDROID APPLICATION
Native Android apps are built using Android SDK and run directly on Android OS.
Advantages:
• High performance
• Access to full device features
• Seamless integration with hardware
2.1.7 ADVANTAGES AND DISADVANTAGES OF ANDROID
Advantages Disadvantages
Free and Open Source Fragmentation (many device models)
Large App Ecosystem Security concerns with third-party apps
Developer Support Hardware inconsistency
Customization Performance can vary
2.2 ANDROID APPLICATION COMPONENTS
2.2.1 Primary Components
1. Activity – Single screen UI (e.g., Login screen)
2. Service – Background processing (e.g., music player)
3. Broadcast Receiver – Listens to system events (e.g., SMS received)
4. Content Provider – Data sharing (e.g., Contacts)
2.2.2 Secondary Components
• Fragments – Modular UI blocks
• Intents – Message-passing mechanism
• Resources – Strings, layouts, drawables
• AndroidManifest.xml – App configuration
2.3 EXPLORING THE DEVELOPMENT ENVIRONMENT
2.3.1 Android SDK
Includes tools, emulator, libraries, and debugger.
2.3.2 Android Studio
Official IDE with layout editor, Logcat, Gradle, Emulator.
2.3.3 Android Emulator
Simulates device to test apps.
2.3.4 ADB (Android Debug Bridge)
Command-line tool to install/debug apps on devices/emulators.
2.3.5 Gradle
Build automation system for dependencies, build variants.
2.4 OBTAINING REQUIRED TOOLS
• Download Android Studio from developer.android.com
• Install SDK, configure virtual devices.
2.5 INSTALLING ANDROID STUDIO
1. Run installer
2. Select SDK components
3. Create new project
4. Test on emulator/phone
2.6 YOUR FIRST ANDROID APPLICATION – "HELLO WORLD"
• Project structure includes:
o Java file (MainActivity.java)
o Layout file (activity_main.xml)
o Manifest (AndroidManifest.xml)
2.6.1 FLOW OF EXECUTION
1. Launch via Manifest → Main Activity
2. Lifecycle: onCreate() → onStart() → onResume() … etc.
3. UI Load: Set using setContentView() in onCreate()
2.7 EXPLORING ANDROID STUDIO IDE
• Project View: Shows files like Java, resources, manifest
• Code Editor: Intelligent suggestions, error checking
• Logcat: Debugging tool
• AVD Manager: Manages virtual devices
2.8 DEBUGGING IN ANDROID STUDIO
• Logcat: Real-time logs
• Breakpoints: Pause app to inspect
• Step Execution: Line-by-line debugging
2.9 PUBLISHING YOUR APP
Steps:
1. Create Google Developer Account
2. Generate signed APK/AAB
3. Login to Google Play Console
4. Upload app details (title, screenshots, APK)
5. Publish
Chapter 3: Using Activities, Fragments, and Intents in Android
3.1 Introduction
This chapter explains the building blocks of Android apps:
• Activities (each screen)
• Intents (used to communicate between components)
• Fragments (reusable parts of a UI within activities)
Each activity, fragment, and intent plays a role in creating interactive, modular, and dynamic Android
applications.
3.2 Working with Activities
What is an Activity?
An Activity is a screen that contains the user interface (UI) for user interaction.
Each screen in an app like WhatsApp (Chats, Contacts, Settings) is implemented as a separate activity.
Key Characteristics:
• Subclass of Activity or AppCompatActivity
• Must be registered in AndroidManifest.xml
• Has its own lifecycle
3.2.1 Creating an Activity
Steps:
1. Create a Java/Kotlin class that extends Activity
2. Override onCreate() method
3. Set content view using setContentView()
4. Design XML layout and link UI elements using findViewById()
Example: MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
3.2.2 Activity Lifecycle
Method Description
onCreate() Initialization of activity
onStart() Activity becomes visible
onResume() Activity ready to interact
onPause() Activity partially hidden
onStop() Activity completely hidden
onDestroy() Activity about to be destroyed
onRestart() Called before restarting an activity
3.2.3 Features of Activity
• Displays UI using layouts
• Handles user interaction
• Manages navigation using intents
• Responds to system and user events
• Supports configuration changes like rotation
3.3 Using Intents
What is an Intent?
An Intent is a messaging object used to request actions from another component (like Activity, Service,
BroadcastReceiver).
3.3.1 Features of Intents
• Launch other activities or components
• Pass data between screens
• Interact with other apps (Maps, Browser, etc.)
3.3.2 Creating an Intent
Intent intent = new Intent(CurrentActivity.this, TargetActivity.class);
startActivity(intent);
Optional:
java
CopyEdit
intent.putExtra("USER_NAME", "Srikanth");
3.3.4 Types of Intents
Type Use
Explicit Launches a specific component
Implicit Requests a component that can handle an action (like opening browser)
3.3.5 Intent Methods
• putExtra(), getExtras()
• setAction(), setData()
• resolveActivity()
3.3.9 Passing Data
intent.putExtra("key", "value");
On target activity:
String value = getIntent().getStringExtra("key");
3.3.10 Using Intent to Open Built-in Apps
Open Contacts:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(ContactsContract.Contacts.CONTENT_URI);
startActivity(intent);
3.4 Fragments in Android
What is a Fragment?
A Fragment is a modular section of an activity that has:
• Its own UI
• Its own lifecycle
• Can be reused across activities
Used to support multi-pane UI in tablets and dynamic UI in phones.
3.4.2 Fragment Lifecycle
Method Purpose
onAttach() Linked to activity
onCreate() Non-UI setup
onCreateView() Inflate layout
onActivityCreated() Final initialization
Method Purpose
onStart() Visible to user
onResume() Interactive
onPause() Partially visible
onStop() Hidden
onDestroyView() Clean view
onDestroy() Cleanup
onDetach() Detached from activity
3.4.3 Implementing Fragments
1. Create Fragment Class
public class MyFragment extends Fragment {
@Override
public View onCreateView(...) {
return inflater.inflate(R.layout.fragment_my, container, false);
2. Add Fragment
• Static (XML): Use <fragment> tag in activity XML
• Dynamic (Java): Use FragmentManager and FragmentTransaction
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.container, new MyFragment());
ft.commit();
3.5 Back Stack
The Back Stack stores activities/fragments for back navigation.
Use addToBackStack() to maintain navigation history.
3.7 Combining Intents & Fragments
Create buttons to launch:
• Explicit intent for second activity
• Implicit intent for browser
• Contact viewer using content provider
This demonstrates communication between:
• Activities ↔ Fragments
• App ↔ System component