Upload
thierry-gayet
View
613
Download
3
Embed Size (px)
DESCRIPTION
Découvrez quelques points clef du middleware google/Android.
Citation preview
1 / 111
Prérequis dev. [email protected]
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 ?