Академический Документы
Профессиональный Документы
Культура Документы
Android
Startup rac&ete par Google en 2''( Open Alliance )andset *O)A+
,egroupement de - de (' entreprises : abricants de matriel. oprateurs mobiles. dveloppeurs dapplications. / dont Google# Ob0ecti : dvelopper des normes ouvertes pour des applications de tlp&onie mobile
Android
Points orts
S5stme linu6 - 0ava Pro0et open source S5stme onctionnel. intuiti et voluti S78 complet ourni
9ersions dAndroid
cupcake donut eclair froyo gingerbread honeycomb Icecream sandwich
Arc&itecture Android
Arc&itecture Android
Linu6 8ernel
Le no5au linu6 ournit le pilotes matriels. la gestion de processus. la mmoire. le rseau et la gestion de lalimentation <2S= *subset+ : 0ava#io#>. 0ava#lang#>. ### Android : android#vie?#>. android#telep&on5#>. ### Google : com#google#android#maps#> O re les bases du rame?or2 applicati @tilise la mac&ine virtuelle 0ava Dalvi2 7ournit les classes utiles et des abstractions matrielles A)" *inter ace grap&i3ues+ dcrites en B"L "odle de donnes et controleurs applicati s crits en 0ava
Les bibliot&3ues
Le rame?or2 applicati
La couc&e applicative
1ient compte des contraintes de HP@ et mmoire =6cute des ic&iers .dex *Dalvik Executable) optimiss
Les applications sont totalement indpendantes *Isandbox") =spaces protgs *mmoire. dis3ue+ =vite un plantage gnralis J
Pa3uetage. classe. annotation. &ritage. inter ace### Hlasses anon5mes. classes internes. PO<O###
Adiomes
Libliot&3ues*APA+
Design Patterns
1'
Outil de dveloppement
Plugin =clipse AD1 *Android Development 1ools+
Assistant M la cration de pro0ets Hrateur dGinter ace grap&i3ue *$NSA$NG+ 9ues et perspectives ddies
11
Outil de dveloppement
Plugin =clipse AD1 *Android Development 1ools+
Dossier du projet
Fichier source R.java automati#uement gnr $ partir du rpertoire /res 'essources non organises !pdf( !*ip( !html(!!!" Fichier +anifest!)ml
12
=crit en <ava et compil en Dalvi2 b5tecode .dex" Arc&ive .apk Les applications doivent Otre signes pour Otre dplo5es *pas ncessaire en dveloppement+ Sur un support mobile *smartp&one par e6+ Dans un mulateur
Pac2aging
Signing
=6cution
1!
LGmulateur
A9D *Android 9irtual Device+
A9D "anager =mulation *i#e# couc&e dGindirection+ vs# simulation Po5au Linu6 - services composants android
7onctionnalits nonQdisponibles
Appareil p&oto *HameraR$ebcam support+ 9ibreur Appels tlp&oni3ues rels Hapteurs en gnral Honne6ions @SL Svolution de la c&arge de la batterie
1%
Dveloppement dGapplications
=nvironnement dGe6cution contraint Pour vos dveloppements. gardeT M lGesprit 3ue les appareils mobiles ont :
@ne puissance processeur plus aible @ne ,A" limite Des capacits de stoc2age permanent limites De petits crans avec de aibles rsolutions Des coUts levs de trans ert de donnes Des tau6 de trans ert plus lents avec une latence leve Des conne6ions rseau moins iables Des batteries M autonomie limite
1(
Applications Android
Applications de premier plan
@tilisable 3uand elle est visible et mis en pause lors3uelle ne lest pas <eu6. mas&up de cartes gograp&i3ues Anteraction limite en de&ors de sa con iguration 7iltrage dappels. rponse automati3ue au6 S"S Anteractiv par moment. lessentiel de sa tVc&e est en arrireQplan Lecteur de musi3ue Homposant visuel interacti 3ue les utilisateurs peuvent a0outer M leur cran daccueil A ic&age de l&eure. prvisions mto
Applications darrireQplan
Applications intermittente
$idget
1:
1;
Les ressources
c&aXnes de caracteres. images. audio. presentation visuelle. # # # dossier res/
1F
Principe ,#0ava
H&a3ue lment d ini dans le rpertoire /res impacte le ic&ier R.java *M ne pas touc&er+ Gnration automati3ue de classes internes M la classe ,. ainsi 3ue des constantes de t5pe entier sur !2bits H&emin dGaccs au6 ressources via R.java
1K
Android"ani est#6ml
Dcrit les composants de lapplication
@n point dentre potentiel dans lapplication @ne application peut lancer un composant di rent *pas de main+
activits *activities+ services *services+ fournisseurs de contenu *content providers+ rcepteurs de diffusion *broadcast receivers+
2'
Android"ani est#6ml
<manifest> <application> <activity android:name=".MyFirstActivity" android:label="@string/app_name"> <intent-filter> <action android:name="fr.polytech.resmob.MyFirstActivity"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest>
7ic&ier B"L obligatoire. M la racine du pro0et Seuls les lments <manifest> et <application> sont obligatoires catgorie LAUNCHER Z point dentre possible pour e6cuter lGapplication
http,--developer!android!com-guide-topics-manifest-manifest.intro!html
21
Activit
@ne activit Z un cran grap&i3ue
A)"
structure par une &irarc&ie de vues et de contrWles des lments d inis par du code <ava Hertains lments *te6te. dimension. couleur+ d inis dans des ic&iers B"L */res+
22
Activit
; mt&odesDde callbac2: void void void void void void void
2!
Activit
package fr.polytech.resmob; import android.app.Activity; public class MyFirstActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Le bundle mmorise /* MAIN Allocation des ressources ici */ action Z un point dentre principal *pasl/tat de l/0I } din ormation particulire M ournir+ lors#u/elle passe en arri1re.plan @Override
catgorie protected void onDestroy() { LAUNCHER Z point dentre possible pour super.onDestroy(); e6cuter lGapplication
/* Dsallocation des ressources ici */ } }
2%
Dclarative *7ic&iers B"L dans le rpertoire /res/layout/+ Ou directement dans le code 0ava
9ues *View+
Homposant lmentaire des inter aces grap&i3ues sous Android Anstance de la classe View Sensible au6 vnements tous les composants grap&i3ues *?idgets+ dAndroid sont des vues : Button, EditText, TextView, Spinner, CheckBox Le 9ie?Group permet de regrouper des vues Les la5outs disponibles sontD: LinearLayout, TableLayout, RelativeLayout, FrameLayout, ScrollView, ... http,--developer!android!com-guide-topics-ui-declaring.layout!html
2(
Dclarative *7ic&iers B"L dans le rpertoire /res/layout/+ Ou directement dans le code 0ava
9ues *View+
Homposant lmentaire des inter aces grap&i3ues sous Android Anstance de la classe View Sensible au6 vnements tous les composants grap&i3ues *?idgets+ dAndroid sont des vues : Button, EditText, TextView, Spinner, CheckBox Le 9ie?Group permet de regrouper des vues Les la5outs disponibles sontD: LinearLayout, TableLayout, RelativeLayout, FrameLayout, ScrollView, ...
2:
La5out communs
Linear La5outD: organisation &oriTontale avec barre de d ilement si ncessaire ,elative La5outD: organisation des lments relativement les uns au6 autres *M gauc&e de. auQdessus de. ###+ $eb vie?D: a ic&e le contenu dGune page ?eb
http,--developer!android!com-guide-topics-ui-declaring.layout!html
2;
1aille
Sur ace prise par la vue android:layout_width = ??px | fill_parent | wrap_content android:layout_height = ??px | fill_parent | wrap_content
Gravit
Alignement dGune vue dans son conteneur android:layout_gravity = left | center_horizontal | top | bottom | right
2F
2K
public class MyFirstActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView message = (TextView) findViewById(R.id.msgText); message.setText("Hello, World!"); } 'envoie la vue $ partir } de son identifiant gnr dans '!java
!'
public class MyFirstActivity extends Activity { private TextView helloLabel; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); helloLabel = (TextView) findViewById(R.id.hello_label); } public void sayHello(View v) { helloLabel.setText(R.string.hello); } }
!1