2. What is ANDROID?
Android is a software
stack for mobile
devices that includes
an operating system,
middleware and key
applications.
Android is based on
Linux 2.6.29
3. Java? Really?
When you first install the SDK you have to write in the Java
programming language
There is also a subset of libraries written in C/C++ for the
system maintainance, media and SQLite DB
Every Java program has a VM. Google made DALVIK Virtual
Machine for Android.
COURSE CORRECTION
Dalvik is not strictly a Java VM [different bytecodes – dex vs.
class]
4. Register-based Dalvik VM
The Dalvik virtual machine is a register-based virtual machine,
designed and written by Dan Bornstein with contributions from
other Google engineers.
It is optimized for low memory requirements, and is designed to
allow multiple VM instances to run at once, relying on the
underlying operating system for process isolation, memory
management and threading support.
5. DEX format and APK
Android programs are compiled into .dex (Dalvik Executable)
files, which are turn zipped into a single .apk (Android
Package) file on the device. .dex files can be created by
automatically translating compiled applications written in the
Java programming language.
Eyjafjallajoekull ?? :o
DALVIK is the name of a small
village in Iceland
Yes! It is the same country of the #@§@$%&!!
unpronounceable Volcano!
6. Why me? Why Android?
If you know Java programming you will be able to make money
with Android
Android was born in 2007 with the Open Handset Alliance
www.openhandsetalliance.com
Mobile market for application
developers?
BABYLON THE GREAT
THE MOTHER OF
PROSTITUTES
AND OF THE ABOMINATIONS
OF THE EARTH
7. Creating a market
Google has dreamed a market for the entire Mobile devices
Just as the the standardized PC platforms
Linux is the kernel and it is GPL [drivers]
Android makes possible to distribute your applications in apk
format freely
Mobile operators often lock the handsets so applications
cannot be added to them
Sandboxes
Dalvik isolation
8. The Power of the intents
Now think about the developing of an application
You have to imagine a world where every program is made like
a web one
You can mashup!
Google Maps, Gmail or your contacts are in your hands
You can make an intent!
The operating system takes care of figuring
out what application has to call :)
9. The application model
Activities
Usually correspond to display screens
Services
Analogous to services or daemons in desktop OS
Broadcast and Intent Receivers
*These respond to requests for service from another application
Content providers
content://contacts/people
* mobile mashups
10. Activity lifecicle
Android recognizes that
resources (memory and
battery, for example) are
limited on most mobile
devices, and provides
mechanisms to conserve
those resources.
The mechanisms are evident
in the Android Activity
Lifecycle.
11. How to start
The Eclipse IDE
Sun’s Java Development Kit (JDK)
The Android Software Developer’s Kit (SDK)
The Android Developer Tool (ADT), a special Eclipse plug-in