You are on page 1of 19

Androld 4.3 (!

elly 8ean)
Androld 4.4 (klLkaL)
• Cpen soûware plauorm for moblle developmenL
• A compleLe sLack: CS, Mlddleware, Appllcauons
• An Cpen PandseL Alllance (CPA) pro[ecL
• Þowered by Llnux operaung sysLem
• Cpen source under Lhe Apache 2 llcense
• Androld shlps wlLh a rlch seL of appllcauons
– Lmall, calendar, browser, maps, LexL messaglng,
conLacLs, camera, dlaler, muslc player, semngs and
Pow can we use lL?
SeL up
• SeL up your developmenL envlronmenL
– lnsLall Lhe Androld Suk, Androld uevelopmenL
1ools, and Androld plauorms
• SeL up Avus and devlces for Lesung
– CreaLe Androld vlrLual uevlces (Avus) and
connecL hardware devlces on whlch you can
lnsLall your appllcauons
• CreaLe your appllcauon
– CreaLe an Androld pro[ecL wlLh your source code,
resource ñles, and Androld manlfesL ñle
uebugglng and Lesung
• 8ulld and run your appllcauon
– 8ulld and run your appllcauon ln debug mode
• uebug your appllcauon
– uebug your appllcauon uslng Lhe Androld
debugglng and logglng Lools
• 1esL your appllcauon
– 1esL your appllcauon uslng Lhe Androld Lesung
lnsLrumenLauon framework
• Þrepare your appllcauon for release
– Conñgure, bulld, and LesL your appllcauon ln
release mode
• 8elease your appllcauon
– Þubllclze, sell, and dlsLrlbuLe your appllcauon Lo
Llnux kernel
• 8ased on Llnux kernel 2.6
• Works as a Pardware AbsLracuon Layer
• Þrovldes
– Plgh securlLy
– uevlce drlvers
– Memory managemenL
– Þrocess managemenL
– neLworklng
• C/C++ llbrarles
• lnLerface Lhrough !ava
• Surface manager
– ul Wlndows
• 2u and 3u graphlcs
• Medla codecs, SCLlLe, 8rowser englne
• uvM (ualvlk vlrLual Machlne)
– !ava source code ls complled Lo a class ñle (.class)
– LaLer Lransformed Lo ualvlk LxecuLable (.dex)
– CompacL and emclenL
– LlmlLed memory and bauery power
• Core Llbrarles
– !ava sLandard edluon
– Collecuons, l/C eLc.
PlghesL levels
• Appllcauon lramework
– Þrovldes all klnds of AÞls needed Lo develop
– AcuvlLy manager manages appllcauon llfe cycle
• Appllcauons
– Appllcauons developed ln !ava
– Can replace bullL ln apps
• An appllcauon ls a slngle AÞk (appllcauon
package) ñle
• An AÞk ñle roughly has Lhree maln
– ualvlk execuLable: all your !ava source code
complled down Lo ualvlk execuLable
– 8esources: everyLhlng LhaL ls noL code (lmages,
audlo/vldeo cllps, xML ñles descrlblng layouLs,
language packs, and so on)
– nauve llbrarles: e.g. C/C++ llbrarles
• user permlsslons Lhe appllcauon requlres
• Mlnlmum AÞl Level requlred by Lhe
• Pardware and soûware feaLures used or
requlred by Lhe appllcauon
• AÞl llbrarles Lhe appllcauon needs Lo be llnked
• And more
SecurlLy model
• Androld CS ls a mulu-user Llnux sysLem ln whlch each
appllcauon ls a dlñerenL user
• 1he sysLem asslgns each appllcauon a unlque Llnux
user lu (Lhe lu ls unknown Lo Lhe appllcauon)
– 1he sysLem seLs permlsslons for all Lhe ñles ln an
appllcauon so LhaL only Lhe user lu asslgned Lo LhaL
appllcauon can access Lhem
• Lach process has lLs own vlrLual machlne (vM)
– An appllcauon's code runs ln lsolauon wlLh respecL Lo
oLher appllcauons
• Lvery appllcauon runs ln lLs own Llnux process
Cooperauon and sharlng
• Lach appllcauon has access only Lo Lhe componenLs lL
requlres Lo work wlLh and noLhlng more
• 1wo appllcauons can share Lhe same Llnux user lu
– 1hey would be able Lo access each oLher's ñles
– Appllcauons wlLh Lhe same lu can also be run ln Lhe same
Llnux process and share Lhe same vM
• 1he appllcauons musL also be slgned wlLh Lhe same ceruñcaLe
• An appllcauon can requesL permlsslon Lo access devlce
– All permlsslons musL be granLed when lnsLalllng Lhe