Anatomy of Android application - The University of Texas at Dallas

Download Report

Transcript Anatomy of Android application - The University of Texas at Dallas

Android OS : Core Concepts
Dr. Jeyakesavan Veerasamy
Sr. Lecturer
University of Texas at Dallas
[email protected]
Agenda
•
•
•
•
Introduction to Android devices
Environment overview
Android concepts
Application components
– Activities, Services, Content providers, Broadcast
receivers
• “Hello” application
• Summary
Development Environment
•
•
•
•
Java Development Kit (JDK)
Eclipse IDE
Android Development Tools (ADT) plug-in
SDK starter package
– Platforms (1.0, 2.0, 3.0, 4.1, …)
– Tools (debug, …)
Android
SDK
Eclipse
JDK
Reference: http://developer.android.com/sdk/installing.html
ADT
Plug-in
Development
Process for
Android
Applications
Android Architecture
Android Runtime Environment
• Dalvik VM for each application
• common Linux kernel
x.class
JRE
y.class
APP
APP
VM
VM
…
Linux kernel
Basics: UNIX security
• compare it with Windows security
Application Security
• Android operating system is based on multiuser Linux system.
• Each application is treated as a different user.
Each application uses unique Linux user ID.
• Every application runs as a Linux process.
Application security …
• It's possible to arrange for two applications to
share the same Linux user ID, in which case they
are able to access each other's files – can run as
same Linux process and share the same VM
(applications use same certificate).
• An application can request permission to access
device data such as the user's contacts, SMS
messages, the mountable storage (SD card),
camera, Bluetooth, and more. All application
permissions must be granted by the user at install
time.
Processes & Threads
• Every application runs in its own process and all
components of the application run in that
process, by default -- UI thread
• Any slow, blocking operations in an activity
should be done in a new thread, to avoid
slowing down the user interface.
– If application does not respond in 5 seconds,
"application not responding" (ANR) dialog appears.
Process lifecycle:
Importance Hierarchy
•
•
•
•
•
Foreground process
Visible process
Service process
Background process
Empty process
“Lower importance” tasks may be killed by Android
– why?
How to select a lucky one from a pool?
IPC
• Remote procedure calls (RPCs)
Android Application components
• Activities - front-end UI screens
• Services – back-end support
• Content providers – application data
– SQLite, web or SD card
• Broadcast receivers – handle system events
Activitating Components: Intent
Basics: Data Exchange
A2
A1
A4
A3
Basics: Data Exchange
A2
A1
A4
A3
• Binary or text data 
XML or JSON …
• Independent data
checkers tools available.
Sample XML data file
Text format:
Belgian Waffles, 5.95, two of our famous Belgian Waffles with plenty of real … , 650
Strawberry Belgian Waffles, 7.95, light Belgian waffles covered with …., 900
Application info: Manifest file
• Declare components
• Declare application requirements
• Application Resources?
Activity lifecycle: 3 states
• Resumed or Running
• Paused
• Stopped
State machine
Code
Service
Lifecycle
User Interface Design
XML Layouts
• Declare UI elements in XML. Android provides
a straightforward XML vocabulary that
corresponds to the View classes and
subclasses.
• Instantiate layout elements at runtime. Your
application can create View and ViewGroup
objects (and manipulate their properties)
programmatically.
Application Resources
Building & running Android app
Program to say “Hello!”
Native Development Kit (NDK)
• Use C/C++ for development
• primarily for performance critical components
Summary
• Clean, sophsticated, yet reasonably simple.
• Android requires strong Java skills – heavy use of
derived classes (inheritance).
• Development: Java code & XML definitions
• Reference:
http://developer.android.com/sdk/installing.html
• Install Android development environment and
play with a few examples or try your own ideas!
• Marketable skill in the industry!
More references
• http://www.vogella.de/articles/AndroidIntent/article.html
• http://developer.android.com/resources/browser.html?tag=sa
mple
Questions & Answers
[email protected]