Prérequis au développement google android

Post on 11-May-2015

612 views 3 download

description

Découvrez quelques points clef du middleware google/Android.

Transcript of Prérequis au développement google android

1 / 111

Prérequis dev. AndroidThierry.Gayet@eurogiciel.fr

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

ARCHITECTURE

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

4

PRESENTATION DU MIDDLEWARE

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

VM DALVIK

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

libc = bionic (différente de la glibc ou eglibc de GNU/linux))

FO

RM

ATIO

N D

EB

UG

8

RUNTIME D'UNE APPLICATION

FO

RM

ATIO

N D

EB

UG

LE FORMAT JAR (.class) vs dex

Format dex :

- Structure différente ;

- Opcodes différents ;

- régie autour de registres et non une stack ;

- Plusieurs JVM sur un device

- Un seul fichier .dex contre plusieurs .class en java

FO

RM

ATIO

N D

EB

UG

10

LE FORMAT JAR (.class) vs APK (dex)

FO

RM

ATIO

N D

EB

UG

11

PROCESSUS DE GENERATION

Un jar est un conteneur ou archive de fichiers .class ou autre qui peut être assemblé grâce à l'outil JAR :

$ jar cfm DVMTest.jar manifest.txt ./*.class && dx --dex --output="./classes.dex" --verbose "./maclass.jar"

$ javac moncode.java && dx --dex --output=moncode.dex moncode

Processus de générationsous Android →

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

● Structure d'une application Android :

STRUCTURE D'UNE APPLICATION

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

DEV ANDROID

FO

RM

ATIO

N D

EB

UG

VM Dalvik vs Java ME

● Processus de génération Android vs Java standard :

FO

RM

ATIO

N D

EB

UG

17

HISTORIQUE

Android un middleware déjà éproupé par le temps au même titre Que celui d'ios (cocoa) issue de nextstep...

FO

RM

ATIO

N D

EB

UG

18

HISTORIQUE D'ANDROID

Les différentes release officielle du middleware Android

Chaque version est associé à une mascotte à l'effigie d'un gâteau ou recette

FO

RM

ATIO

N D

EB

UG

HISTORIQUE DES VERSIONS

http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels

FO

RM

ATIO

N D

EB

UG

→ Synthèse sur les versions de Release de middleware Android présente sur les devices Android

Data collected during a 7-day period ending on December 2, 2013

SYNTHESE DES VERSIONS

FO

RM

ATIO

N D

EB

UG

→ Synthèse des résolutions sur les devices Android

Data collected during a 7-day period ending on December 2, 2013

SYNTHESE DES RESOLUTIONS

FO

RM

ATIO

N D

EB

UG

SYNTHESE DES RESOLUTIONS

● 320dp : a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc … )

● 480dp : a tweener tablet like the Streak (480x800 mdpi)

● 600dp : a 7” tablet (600x1024 mdpi)

● 720dp : a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc … )

● xlarge screens are at least 960dp x 720dp

● large screens are at least 640dp x 480dp

● normal screens are at least 470dp x 320dp

● small screens are at least 426dp x 320dp

http://www.nextinnovation.org/doku.php?id=setting_fb

FO

RM

ATIO

N D

EB

UG

FO

RM

ATIO

N D

EB

UG

FO

RM

ATIO

N D

EB

UG

FO

RM

ATIO

N D

EB

UG

FO

RM

ATIO

N D

EB

UG

FO

RM

ATIO

N D

EB

UG

→ Synthèse sur les version d'OpenGL sur les devices Android

Data collected during a 7-day period ending on December 2, 2013

SYNTHESES DES VERSIONS D'OPENGL

FO

RM

ATIO

N D

EB

UG

STRUCTURE D'UNE APPLICATION

Code source en java

Fichier de ressources

Classes par défaut du middleware Android

Fichier décrivant les droits d'accès aux ressources Fichier de configuration du projet Fichier de configuration pour l'obfuscateur proguard

Ensemble de ressources

● Projet Android sous Eclipse :

FO

RM

ATIO

N D

EB

UG

LE FICHIER MANIFEST

● Si vous regardez dans le dossier principal d'une application, vous verrez le fichier « AndroidManifest.xml » du projet. Il est possible de le visualiser depuis l'éditeur en double-cliquant dessus.

● Ce fichier définit les multiples aspects de l'application dans son ensemble. Eclipse et ADT définissent un certain nombre d'éléments dans ce fichier manifest à la création de l'application, en se basant sur les paramètres choisis lors de la création du projet. Vous pouvez ajouter d'autres éléments manuellement. Par exemple, si vous ajoutez d'autres activités à votre application.

→ Vue des catégories d'un fichier AndroidManifest.xml

FO

RM

ATIO

N D

EB

UG

LE FICHIER MANIFEST ● La toute première chose que vous devez faire est de permettre à votre application d'accéder à

Internet. Si vous utilisez Eclipse comme IDE, il suffit d'ouvrir votre fichier AndroidManifest.xml, allez dans l'onglet "Autorisations", ajouter "Utilise autorisation" et sélectionnez android.permission.INTERNET de la zone de liste déroulante :

● Sinon, l'on ouvre le fichier dans le dernier onglet au format XML brut vous devez voir la déclaration suivante : <uses-permission android:name="android.permission.INTERNET"/>

● Si vous ne le faites pas, votre application reçevra l'exception « UnknownHostException » lorsque vous essayez d'accéder à un hôte distant.

FO

RM

ATIO

N D

EB

UG

● Tous les éléments qui peuvent apparaître dans le fichier manifest sont listés ci-dessous par ordre alphabétique. Ce sont les seuls éléments qui peuvent être utilisé et ne peut être étendu ou personnalisé:s

<action><activity><activity-alias><application><category><data><grant-uri-permission><instrumentation><intent-filter><manifest><meta-data><permission><permission-group><permission-tree><provider><destinataire><service><supports-screens><uses-configuration><uses-feature><uses-library><uses-permission><uses-sdk>

http://developer.android.com/guide/topics/manifest/manifest-element.html

http://developer.android.com/guide/topics/data/install-location.html

LE FICHIER MANIFEST

FO

RM

ATIO

N D

EB

UG

LE FICHIER MANIFEST ● Cas d'utilisations typiques entre « activités », « services », « fournisseurs de contenu ou

Providers» et les « broadcast receivers».

http://imsciences.edu.pk/serg/2010/07/android-security-a-survey-so-far-so-good/

http://faculty.cs.tamu.edu/guofei/paper/VetDroid-CCS13.pdf

Deux types de vérification de permissiondans Android →

FO

RM

ATIO

N D

EB

UG

Workflow de génération d'une appli.

FO

RM

ATIO

N D

EB

UG

35

Workflow de génération d'une appli.

→ Workflow de génération d'une application google/Android des sources java à une APK

FO

RM

ATIO

N D

EB

UG

36

SIGNATURE D'UN APK

http://developer.android.com/tools/publishing/app-signing.html

http://developer.android.com/tools/publishing/app-signing.html

http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html

http://developer.android.com/distribute/googleplay/publish/preparing.html

http://developer.android.com/tools/publishing/preparing.html

https://www.jetbrains.com/idea/webhelp/generate-signed-apk-wizard.html

Workflow de génération & signature d'une application officielle :

En mode développement, le certificat auto-signé utilisé pour signer une application en mode débug (la valeur par défaut sur Eclipse / ADT et Ant) aura une date d'expiration de 365 jours à compter de sa date de création.

Les certificats seront vérifiés à 2 moments :● Lors de l'upload de l'application sur Google/Play● Lors de l'installation depuis Google/Play

Googleplay

FO

RM

ATIO

N D

EB

UG

37

ANDROID SDK vs APPLE SDK

Comparaison entre le process de développement de Google vs Apple

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

JAVA ↔ C/C++

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

LibHellotwo-second.so

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

BOOT

FO

RM

ATIO

N D

EB

UG

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

CYCLE DE VIE

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

→ Cycle de vie d'une application.

→ Une application qui hérite de la classe java sera visibleà l'écran.

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

→ Cycle de sauvegarde d'une activité.

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

→ Cycle de vie d'un service/daemon.

→ Un service qui hérite de la classe java ne sera pasvisible.

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

BINDER

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

INTENT

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

SECURITE

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

MEDIA AUDIO/VIDEO

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

CAMERA

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

ACCELEROMETRE

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

RIL

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

WIFI / WIFI DIRECT

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

NFC

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

http://www.kandroid.org/online-pdk/guide/bluetooth.html

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

PREREQUIS ANDROID

FO

RM

ATIO

N D

EB

UG

DES QUESTIONS ?DES QUESTIONS ?