important role in the UI experience and depends on how the information is displayed to the user. This TextView widget in Android can be dynamized in various contexts.
Size: 381.49 KB
Language: en
Added: Sep 23, 2024
Slides: 27 pages
Slide Content
Android Overview
Mobile Applications
What are they?
Any application that runs on a mobile device
Types
Web apps: run in a web browser
HTML, JavaScript, Flash, server-side components,
etc.
Native: compiled binaries for the device
Often make use of web services
Mobile Devices: Advantages
Always with the user
Typically have Internet access
Typically GPS enabled
Most have cameras & microphones
Many apps are free or low-cost
Mobile Devices: Disadvantages
Limited screen size
Limited battery life
Limited processor speed
Limited and sometimes slow network access
Limited input: phone keypad, touch screen,
stylus etc
Limited web browser functionality
Range of platforms & configurations across
devices
Why Mobile App Development?
Why Android?
Transferring app to phone is trivial
Can distribute by putting it on the web
Android Market (now Google Play) for wider
distribution
What is Google Android?
A software stack for mobile devices that includes
An operating system
Middleware
Key Applications
Uses Linux to provide core system services
Security
Memory management
Process management
Power management
Hardware drivers
Version Code name Release dateAPI levelDVM/ART Distribution
8.1
Oreo
October 25, 201727 ART
8.0 August 21, 201726 ART 0.2%
7.1
Nougat
October 4, 201625 ART 2.0%
7.0 August 22, 201624 ART 15.8%
6.0 MarshmallowOctober 5, 201523 ART 32.0%
5.1
Lollipop
March 9, 2015 22 ART 21.0%
5.0 November 3, 201421 ART 2.1.0 6.7%
4.4 KitKat October 31, 201319
DVM
(and
ART
1.6.0)
14.5%
4.3
Jelly Bean
July 24, 2013 18 DVM 1.0%
4.2
November 13,
2012
17 DVM 3.3%
4.1 July 9, 2012 16 DVM 2.3%
4.0
Ice Cream
Sandwich
October 19, 201115 DVM 0.6%
2.3 GingerbreadFebruary 9, 201110 DVM 1.4.0 0.6%
Android Apps
Built using Java and new SDK libraries
No support for some Java libraries like Swing &
AWT
Java code compiled into Dalvik byte code
(.dex)
Optimized for mobile devices (better memory
management, battery utilization, etc.)
Dalvik VM runs .dex files
Applications
Written in Java (it’s possible to write
native code)
Good separation (and corresponding
security) from other applications:
Each application runs in its own process
Each process has its own separate VM
Each application is assigned a unique Linux
user ID – by default files of that application are
only visible to that application
Android Architecture
Activity Manager – Life Cycle / Navigation
within and among applications
Content Provider – encapsulate data
Location Manager – aware of its physical location
Notification Manager – users informed about events
Package Manager – infn. about other appln. Pkgs
Resource Manager – lets appln accesses its
resources
Telephony Manager – to learn about device
telephony services
View System – manages UI elements / events
Window Manager – perform Window related
operations
Free Type: for bitmap and vector font rendering
Libc : standard C System library
Mediaframework: supports many audio & Video formats /
image files / playback & recording
OpenGL/ES: for 3D graphics libraries
SGL: 2D graphics engine – scalable graphics lib
SQLite: provides lightweight RDB engine
SSL: SSL based security for NW communication
Surface Manager: manages accesses to the display
subsystem – 2D & 3D graphics layers
Application Components
Activities – visual user interface focused
on a single thing a user can do (presents UI)
Services – no visual interface – they run in
the background
User selects a song through an activity and a separate
service is started
Broadcast Receivers – receive and react
to broadcast announcements
Battery life / timezone changed etc
Content Providers – allow data exchange
between applications
Activities
Basic component of most applications
Most applications have several activities
that start each other as needed
Each is implemented as a subclass of the
base Activity class
Activities – The View
Each activity has a default window to
draw in
The content of the window is a view or a
group of views (derived from View or
ViewGroup)
Example of views: buttons, text fields,
scroll bars, menu items, check boxes, etc.
View(Group) made visible via
Activity.setContentView() method.
Services
Does not have a visual interface
Runs in the background indefinitely
Examples
Network Downloads
Playing Music
TCP/UDP Server
You can bind to an existing service and
control its operation
Broadcast Receivers
Receive and react to broadcast
announcements
Extend the class BroadcastReceiver
Examples of broadcasts:
Low battery, power connected, shutdown,
timezone changed, etc.
Other applications can initiate broadcasts
Content Providers
Makes some of the application data
available to other applications
It’s the only way to transfer data between
applications in Android (no shared files,
shared memory, pipes, etc.)
Extends the class ContentProvider;
Other applications use a ContentResolver
object to access the data provided via a
ContentProvider
Intents
An intent is an Intent object with a message content.
Describe operations – send an email
Activities, services and broadcast receivers are
started by intents. ContentProviders are started by
ContentResolvers:
An activity is started by Context.startActivity(Intent intent)
or Activity.startActivityForResult(Intent intent, int
RequestCode)
A service is started by Context.startService(Intent service)
An application can initiate a broadcast by using an Intent in
any of Context.sendBroadcast(Intent intent),
Context.sendOrderedBroadcast(), and
Context.sendStickyBroadcast()
Android Manifest
Its main purpose in life is to declare the components to the
system:
<?xml version="1.0" encoding="utf-8"?>
<manifest . . . >
Building and running
ADB is a client server program that connects clients on developer
machine to devices/emulators to facilitate development.
An IDE like Eclipse handles this entire process for you.
Compiled resources
(xml files)
Android Debug Bridge
Fragments
Represents a portion of user interface in an Activity.
Views
UI elements that are drawn on-screen including buttons,
lists forms etc.
Layouts
View hierarchies that control screen format and
appearance of the views.
Intents
Messages wiring components together.
Resources
External elements, such as strings, constants and
drawable pictures.
Manifest
Configuration file for the application.
Components
Java
This contains the
.java source files for your project. By default, it includes
an
MainActivity.java
source file having an activity class
res/drawable-hdpi
This is a directory for drawable objects that are designed for high-
density screens
res/layout
This is a directory for files that define your app's user interface
res/values
This is a directory for other various XML files that contain a collection of
resources, such as strings and colours definitions.
AndroidManifest.xml
This is the manifest file which describes the fundamental
characteristics of the app and defines each of its components.