|
C O U R S E L E C T U R E Android Architecture Notes taken on June 10, 2014 by Edward Tanguay |
software stack to support phones and tablets
has several layers software from the low-level OS kernel up to key apps
lowest layer of software
memory and process management
Android specific services
power management (for increased battery power)
interprocess communication mechanism (Binder IPC Mechanism)
typically written in C and C++, hence referred to as the "native libraries"
process and thread creation
mathematical computations
high performance graphics
in memory relational databaes
Android applications are typically written in the Java programming language
java.* and javax.* classes
the software that actually executes Android applications
Android apps are written in Java but they do not run on a standard Java virtual machine
develop first write their applications in Java
the compile turns it into bytecode files
tool called dx transfomed the bytecode files into classes.dex
classes.dex is packaged with other application resources and installed on the device
when use launches the app, the Dalvic Virtual Machine will execute the classes.dex file
designed to run in resource constraained environment
Dan Bornstein (Google) on the Dalvik Virtual Machine (2008)
reusable software that modbile applications need
database that keeps track of all applications installed on device
manages windows of an app
system notification bar
sub windows of menus or dialogues
lets you define strings in multiple languages
e.g. hit back button and go to last activity
e.g. use contact information in a content provider
allows applications to receive location and movement information
software always listing for incoming notifications and put a notice in message bar
none of the standard apps are hard-coded into the system