Chapter 1
Chapter 1
Mobile Computing is a technology that allows transmission of data, voice and video via a
computer or any other wireless enabled device without having to be connected to a fixed
physical link.
• Mobile communication
• Mobile hardware
• Mobile software
Mobile communication
The mobile communication in this case, refers to the infrastructure put in place to ensure that
seamless and reliable communication goes on. These would include devices such as protocols,
services, bandwidth, and portals necessary to facilitate and support the stated services. The data
format is also defined at this stage. This ensures that there is no collision with other existing
systems which offer the same service.
Mobile hardware includes mobile devices or device components that receive or access the
service of mobility. They would range from portable laptops, Smartphone’s, tablet Pc's,
Personal Digital Assistants.
These devices will have a receptor medium that is capable of sending and receiving signals.
These devices are configured to operate in full- duplex, whereby they are capable of
sending and receiving signals at the same time. They don't have to wait until one device has
finished communicating for the other device to initiate communications.
Above mentioned devices use an existing and established network to operate on. In most
cases, it would be a wireless network.
Mobile software
Mobile software is the actual program that runs on the mobile hardware. It deals with the
characteristics and requirements of mobile applications. This is the engine of the mobile
device. In other terms, it is the operating system of the appliance. It's the essential
component that operates the mobile device.
Since portability is the main factor, this type of computing ensures that users are not tied
or pinned to a single physical location, but are able to operate from anywhere. It
incorporates all aspects of wireless communications.
Mobile computing is not only limited to mobile phones, but there are various gadgets
available in the markets that are built on a platform to support mobile computing. They
are usually classified in the following categories -
The main purpose of this device is to act as an electronic organizer or day planner that is
portable, easy to use and capable of sharing information with your computer systems.
PDA is an extension of the PC, not a replacement. These systems are capable of sharing
information with a computer system through a process or service known as
synchronization. Both devices will access each other to check for changes or updates in the
individual devices. The use of infrared and Bluetooth connections enables these devices to
always be synchronized.
With PDA devices, a user can browse the internet, listen to audio clips, watch video clips,
edit and modify office documents, and many more services. The device has a stylus and a
touch sensitive screen for input and output purposes.
Smartphones
This kind of phone combines the features of a PDA with that of a mobile phone or camera
phone. It has a superior edge over other kinds of mobile phones.
Smartphones have the capability to run multiple programs concurrently. These phones
include high-resolution touch screens, web browsers that can access and properly display
standard web pages rather than just mobileoptimized sites, and high-speed data access via
Wi-Fi and high speed cellular broadband.
The most common mobile Operating Systems (OS) used by modern smartphones include
Google's Android, Apple's iOS, Nokia's Symbian, RIM's BlackBerry OS, Samsung's Bada,
Microsoft's Windows Phone, and embedded Linux distributions such as Maemo and
MeeGo. Such operating systems can be installed on different phone models, and typically
each device can receive multiple OS software updates over its lifetime.
This mobile device is larger than a mobile phone or a PDA and integrates into a touch screen and
is operated using touch sensitive motions on the screen. They are often controlled by a pen or by
the touch of a finger. They are usually in slate form and are light in weight. Examples would
include ipads, Galaxy Tabs, Blackberry Playbooks etc.
They offer the same functionality as portable computers. They support mobile computing
in a far superior way and have enormous processing horsepower. Users can edit and
modify document files, access high speed internet, stream video and audio data, receive and
send e-mails, attend/give lectures and presentations among its very many other functions.
They have excellent screen resolution and clarity.
There are many benefits to mobile computing including the ability to get directions,
entertain you when bored, do business, and more, including:
• Social Engagement: You can interact with a variety of users via the Internet.
• Personalization: You can tailor your mobile computing to your individual needs.
Android development involves creating applications for the Android operating system. To
embark on this journey, you'll need a suitable development environment. Here's a breakdown of
the essential components:
Hardware Requirements
Computer: A computer with a decent processor, sufficient RAM (at least 4GB
recommended), and adequate storage space.
Operating System: Windows, macOS, or Linux.
Software Requirements
1. Android Studio: The official integrated development environment (IDE) from Google. It
provides a comprehensive set of tools for developing, testing, and debugging Android
apps. Key features include:
o Visual Layout Editor: Drag-and-drop interface for designing app layouts.
o Code Editor: Intelligent code completion, refactoring, and debugging tools.
o Emulator: A virtual device for testing apps on various Android versions and
screen sizes.
o Gradle: A build automation system for managing dependencies and building your
app.
2. Java Development Kit (JDK): Required for compiling Java code, which is the primary
language used for Android app development.
3. Android SDK: A collection of tools, APIs, and libraries necessary for developing
Android apps. It includes:
o Platform tools: For interacting with the Android device or emulator.
o Build tools: For compiling and packaging your app.
o System images: For creating emulators with different Android versions and
configurations.
Android Virtual Device (AVD) Manager: Used to create and manage emulators for
testing your app on various devices.
Android Debug Bridge (ADB): A command-line tool for interacting with an Android
device or emulator.
Google Play Console: For publishing your app to the Google Play Store.
Android Developer Documentation: Official documentation providing tutorials, guides,
and API references.
Online Communities and Forums: Places to ask questions, share knowledge, and
connect with other developers.
Getting Started
1. Download and Install: Download Android Studio from the official website and follow
the installation instructions.
2. Set Up SDK: Configure the Android SDK to include the desired target platforms and
tools.
3. Create a New Project: Start a new Android Studio project, choosing a template based on
your app's type (e.g., phone app, tablet app).
4. Develop Your App: Use the IDE's tools to design the UI, write code, and test your app.
5. Build and Run: Compile your app and run it on an emulator or connected device.
6. Debug and Iterate: Identify and fix issues, then refine your app based on user feedback.
Interoperability: Kotlin can seamlessly interoperate with existing Java code, making it
easy to adopt in Android projects.
Null Safety: Kotlin's type system helps prevent null pointer exceptions, a common
source of bugs in Java.
Concise Syntax: Kotlin's syntax is more concise and expressive than Java, leading to
cleaner and more readable code.
Unit Testing: Write automated tests to verify the correctness of individual components.
UI Testing: Use frameworks like Espresso to test the behavior of your app's user
interface.
Debugging Tools: Android Studio provides powerful debugging features, including
breakpoints, step-by-step execution, and variable inspection.
Performance Optimization
Profiling Tools: Use tools like Android Profiler to identify performance bottlenecks in
your app.
Memory Management: Optimize memory usage to prevent out-of-memory errors.
Efficient Code: Write efficient code by avoiding unnecessary calculations, minimizing
object creation, and using data structures appropriately.
Material Design