Chapter 1 (One)
Chapter 1 (One)
Mobile Hardware: Mobile hardware refers to physical devices that can move and are
used for mobile computing. This includes smartphones, tablets, laptops, and wearable
devices like smartwatches. These devices are equipped with:
Processors , Memory and Battery.
Mobile Software: Mobile software is the operating system and applications that run
on mobile devices. Common mobile operating systems include:
1.Android (developed by Google)
2.iOS (developed by Apple)
3. Windows Mobile (less common but used on some devices)
Mobile Communication: Mobile communication is the backbone of mobile
computing, enabling data transfer by using It uses various technologies such as:
Cellular Networks ,Wi-Fi and Bluetooth
Characteristics of Mobile Computing
1.Mobility: Users can move while using the mobile device without losing connectivity.
2.Ubiquity: Access to data and applications from anywhere and at any time.
3.Wireless Connectivity: Connection to networks without physical cables.
4.Location-Awareness: Many mobile applications use GPS to provide location-based services.
5.Adaptability: Mobile devices can adapt to different network conditions and seamlessly switch between Wi-Fi, 4G, and 5G.
Advantages of Mobile Computing
Accessibility: Users can access applications and data from anywhere.
Time Efficiency: Mobile devices allow for multitasking and provide the ability to work on the go.
Instant Communication: It allow for real-time communication through messaging apps, video calls, and social
media.
Wide Reach: With mobile computing, businesses can reach users across different geographical locations through
apps and services.
Challenges in Mobile Computing
Security: Mobile devices can be vulnerable to hacking, malware, and theft, making security a major concern.
Battery Life: Mobile devices rely on batteries, and heavy usage of apps and features can quickly drain power.
Bandwidth: Mobile applications that require a lot of data can be limited by available bandwidth.
User Interface Limitations: Due to the smaller screen size and input methods like touch, mobile apps require careful UI
design to ensure usability.
1.3 What Is Android?
Android is a an open source and Linux-based Operating System for mobile devices
such as smartphones and tablet computers.
Android was developed by the Open Handset Alliance (OHA),
led by Google, and other companies.
The first Android-powered phone was sold in October 2008.
Android is open source and Google releases the code under the
Apache License.
open-source code and permissive licensing allows the software to be
freely modified and distributed by device manufacturers, wireless
carriers and enthusiast developers.
Contd..
Android is a comprehensive open source platform designed for mobile
devices.
Comprehensive platform: complete software stack for mobile devices.
Open source: the entire stacks are free to use.
Google’s mobile platform
Runs Smartphone ,tablet computers , (Samsung Tablets , Similar to iPad)
Most popular
• Development platform
Multiplatform
Based on Java / Kotlin
Plugins for Eclipse
cont.…
Android is an embedded OS(different kind of machine or
HW+SW)
Android applications are written using the Java framework,
but Android is not Java. Standard Java libraries such as
Swing are not supported.
Android uses its own libraries.eg Time Picker, global
positioning.
The Android OS is open source, which means developers
can view and use any of the system source code
1.4 Android Features
Storage: Uses SQLite, a lightweight relational database, for data storage.
JavaScript engine
Media support: includes support for the following media: H.263, H.264 (in
3GP or MP4 container), MPEG-4 SP, AMR, AMR-WB (in 3GP container),
AAC, HE-AAC (in MP4 or 3GP container), MP3, MIDI, Ogg Vorbis, WAV,
JPEG, PNG, GIF, and BMP
cont.…
Hardware support: Accelerometer Sensor, Camera, Digital
wired/wireless hotspot
1.5 Android Stack
Android operating system is like a cake consisting of various
layers. Each layer has its own characteristics and purposes.
Android is built on top of Linux.
Way Linux?
Its open source
Portability-easy to integrate with different hardware
Security-Linux is highly secured system.
Features-Linux provides:
Hardware abstraction layer
Memory management
Process management
Networking
Android Stack Architecture)
The Android OS is roughly divided into five sections in four main
layers:
Linux kernel
This is the kernel on which Android is based.
This layer contains all the low level device drivers for the various hardware
components of an Android device.
Libraries
These contain all the code that provides the main features of an Android OS.
For example, the SQLite library provides database support so that an application
can use it for data storage.
The WebKit library provides functionalities for web browsing.
Native Libraries
Bionic
a super fast and small license-friendly libc library optimized for Android
Used for Technology and License purpose.
WebKit library
for fast HTML rendering(used by safari, chrome)
OpenGL
3d graphics Library
Media codecs
offer support for major audio/video codecs
SQLite
Sql Database
Dalvik Executable
(Dex)
+ Resources
=
APK
What is APK?
An application is a single application package (APK) file. An APK file
roughly has three main components. An API consists of the following
major components:
Dalvik executable
This is all your Java source code compiled down to a Dalvik executable.
This is the code that runs your application.
Resources
Resources are everything that is not code. Your application may contain a number
of images and audio/video clips, as well as numerous XML files
describing layouts, language packs, and so on. Collectively, these
items are the resources.
Native libraries
Optionally, your application may include some native code, such as C/C++
libraries. These libraries could be packaged together with your APK
file.
But This is a better approach( separating content
from display)
Android and Java
rocedural )
till We can have it the old Classic Way
Android Java
Android API
AWT/Swing
Java SE
=
+
–
Eclipse
Required Tools
In the case of Android, the recommended IDE is Eclipse, a multi-language software
development environment featuring an extensible plug-in system.
It can be used to develop various types of applications, using languages such as Java,
Ada, C, C++, COBOL, Python, etc.
Android SDK
The Android SDK contains a debugger, libraries, an emulator, documentation, sample
code, and tutorials.
Android Development Tools (ADT )
The Android Development Tools (ADT) plug-in for Eclipse is an extension to the
Eclipse IDE that supports the creation and debugging of Android applications.
Using the ADT
Create new Android application projects.
Access the tools for accessing your Android emulators and devices.
Compile and debug Android applications.
Export Android applications into Android Packages (APK).
Create digital certificates for code-signing your APK.
Installing the Android SDK
The Android Software Development Kit (SDK) is all you need to develop applications for
Android. The SDK comes with a set of tools as well as a platform to run it and see it all work.
android-sdk-windows
Linux
android-sdk-linux_86
Mac OS X
android-sdk-mac_86
Installing Eclipse
Eclipse is an open source collection of programming tools
out as we continue.
We will use Eclipse as IDE for android programming.
Eclipse Workspace
Eclipse organizes all your work by projects. Projects are placed in
Windows, however
make workspace on drive with enough free space
(Settings->Application->development)
Also turn on install of non market Apps
(Settings->Application->unknown Source)
Device will be recognized within Eclipse DDMS views.
1.6 Application of Mobile Computing
The question that always arises when a business is thinking of
buying a mobile computer is “Will it be worth it?”
The importance of Mobile Computers has been highlighted in
many fields :
Emergency Services
In companies
Stock Information Collation/Control
Taxi/Truck Dispatch
Electronic Mail/Paging
Location and Map
Smart city
In health
In Agriculture
1.7 CHALLENGES OF MOBILE COMPUTING
Challenges in mobile computing can be categorized into three major areas
as:
1) Wireless Communication
2) Mobility
3) Portability
1) Wireless Communication
Generally wireless computers have fewer resources relative to stationary
(wired) computers, this is because wireless computers are required to
be smaller, lighter and consume less power than stationary computers.
Wireless communication is more difficult to implement than wired
communication because of the interaction of the surrounding environment
with the message signal.
Problems caused by the environment include blocked signal paths, echoes
and noise.
Hence wireless connections are more error prone, have much lower
bandwidths, and have frequent spurious disconnections when compared to
…continued
These factors can increase communication latencies due to error
control checks, retransmissions, time-out delays and brief
disconnections.
a) Low Bandwidth and Bandwidth Variability
Maintain multiple cells at different frequencies.
Limiting transmission ranges so that more cells can fit in a given
area.
b) Security Risk :Possible attacks can be categorized as follows:
Masquerading: when a user is deceiving about its real identity.
Masquerading may lead to impersonation.
Unauthorized use of resources: when a user is accessing a
network component without have being authorized. This situation
may lead to theft or improper use of communication resources.
Interception: The opponent gains access to the data transmitted
over the communication link.
…continued
Fabrication: The opponent inserts information into the
communication link. A special type of this attack is replay
of old messages in order to mislead the communicating
parties.
Repudiation of actions: This is a threat against
accountability.
A repudiation attack may occur where by the sender
(receiver) of a message denies having sent (received) it.
Denial of service/Interruption: The attacker prevents
the easy transmission of information.
…continued
These Security issues can be solved by:
Identification and Authentication: Authentication
information and mechanisms that involve trusted third
parties (passwords, cryptographic techniques, challenge-
response techniques).
Access control and Authorization: Access control
information, access control rules, delegation.
Information confidentiality: Confidentiality mechanisms
(encryption) and attributes (secret keys, public and private
keys).
Information integrity: Integrity mechanisms that provide
generation and verification of integrity hacks.
Non-repudiation: (e.g. through digital signatures).
Auditing and Accountability.
…continued
2) Mobility: The ability to change location while connected to the
network increases the volatility of some information. Certain
data considered static for stationary computing becomes
dynamic for mobile computing. Mobility introduces several
problems:
a) Address Migration
b) Location dependent Information:
3) Portability: designers of hand-held mobile computers should
strive for the properties of a wrist watch: small, light,
durable, operational under wide environmental conditions
and requiring minimal power usage for long battery life.
Some design pressures caused by the portability constraints are
as follows:
…continued
a) Low Power : power can be saved by :
Reducing the capacitance by greater extent of VLSI
design,
Reducing the voltage at the time of chip design and
Reducing the clock frequency so that trading the
computational speed for power saving.
b) Risks to Data : Making computers portable increases the
risk of physical damage, unauthorized access, loss and
theft.
c) Small User Interface :
d) Small Storage Capacity
e) Risks to transactions