0% found this document useful (0 votes)
10 views32 pages

Chapter 1 (One)

Chapter One introduces mobile app development, focusing on mobile computing, Android OS, and its architecture. It covers key components, advantages, challenges, and the Android development process, including tools like Eclipse and the Android SDK. The chapter emphasizes the significance of mobile computing in various fields and outlines the security risks and design considerations for mobile applications.

Uploaded by

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

Chapter 1 (One)

Chapter One introduces mobile app development, focusing on mobile computing, Android OS, and its architecture. It covers key components, advantages, challenges, and the Android development process, including tools like Eclipse and the Android SDK. The chapter emphasizes the significance of mobile computing in various fields and outlines the security risks and design considerations for mobile applications.

Uploaded by

bahilutesfaye719
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 32

Chapter One

Introduction to Mobile App Development


Chapter one
Overview of Mobile App Developmet
Introduction Mobile Computing.
What is Android?
The Android Stack
 Android Architecture
 Application Components
 Android Development Process
Application of Mobile App Development
Challenge of Mobile App Development
1.1 Introduction Mobile Computing
Mobile Computing is a technology that allows transmission of data, voice, and
video through a computer or any other wireless-enabled device without being
physically connected to a network.
 It involves the use of mobile devices like smartphones, tablets, laptops, and

wearable devices that connect to the internet via wireless communication


channels such as Wi-Fi, 4G, 5G, and Bluetooth.
1.2 Key Components of Mobile Computing

 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.

 Connectivity: Supports GSM/EDGE, IDEN, CDMA, EV-DO, UMTS,

Bluetooth (includes A2DP and AVRCP), WiFi, LTE, and WiMAX.


 Messaging :Supports both SMS and MMS.

 Web browser: Based on the open-source WebKit, together with Chrome’s V8

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

Compass, Proximity Sensor, and GPS


Multi-touch :Supports multi-touch screens

Multi-tasking: Supports multi-tasking applications

Flash support: Android 2.3 supports Flash 10.1.

Tethering: Supports sharing of Internet connections as a

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

 OpenSSL:for secure locket layer


 Android runtime
 The Android runtime provides a set of core libraries that enable developers to write
Android apps using the Java/ Kotlin programming language.
 The Android runtime also includes the Dalvik virtual machine, which enables
every Android application to run in its own process, with its own instance of the
Dalvik virtual machine (Android applications are compiled into the Dalvik
executables
 Dalvik is a specialized virtual machine designed specifically for Android and
optimized for battery-powered mobile devices with limited memory and CPU.
 Application framework
 Exposes the various capabilities of the Android OS to application developers so that
they can make use of them in their applications.
 Location, web, telephony, Wi-Fi, Bluetooth, notifications, media, camera, just to
name a few.
cont.…
Applications.
 Any applications that you write are located at this layer
 Applications are what users find valuable about android.
 Android applications are written in the java/Kotlin programming language
 The Android SDK tools compile the code along with any data and resource files
into an Android package, an archive file with an .apk suffix
 All the code in a single .apk file is considered to be one application

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.

Download Android SDK Download page


 Windows

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

originally created by IBM for Java. Nowadays, most developers in


the Java community favour Eclipse as their Integrated
Development Environment (IDE) of choice.
Download Eclipse at http://www.eclipse.org/downloads/.

Eclipse has a lot of time-saving features, which I’ll be pointing

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

a workspace, which is a location you choose. So, where you put


your workspace is significant.
recommend ~/workspace as a simple place for your code. On

Windows, however
 make workspace on drive with enough free space

Do not make work space on drive where OS is installed.


Contd…
1. use android SDK manager to instal specific version of android.
Android SDK Manager
Option1:use an Emulator
Create an AVD(Android Virtual Device)
Let u specify the configuration of a device to be emulated by
Android Emulator
Create AVD in Eclipse by selecting windows =>AVD Manager
Option1:use a Device
Install driver for device

 connect device to PC via USB Cable


Make sure turned on USB debugging

(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

You might also like