9. LE FORMAT JAR (.class) vs dex
Format dex :
FORMATION DEBUG
- 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
11. PROCESSUS DE GENERATION
FORMATION DEBUG
Processus de
génération
sous Android →
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
11
18. FORMATION DEBUG
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
18
19. FORMATION DEBUG
HISTORIQUE DES VERSIONS
http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels
20. SYNTHESE DES VERSIONS
FORMATION DEBUG
→ 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
21. SYNTHESE DES RESOLUTIONS
→ Synthèse des résolutions sur les devices Android
FORMATION DEBUG
Data collected during a 7-day period ending on December 2, 2013
22. SYNTHESE DES RESOLUTIONS
●
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
FORMATION DEBUG
●
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 … )
http://www.nextinnovation.org/doku.php?id=setting_fb
28. SYNTHESES DES VERSIONS D'OPENGL
→ Synthèse sur les version d'OpenGL sur les devices Android
FORMATION DEBUG
Data collected during a 7-day period ending on December 2, 2013
29. STRUCTURE D'UNE APPLICATION
●
Projet Android sous Eclipse :
Code source en java
Fichier de ressources
Classes par défaut du
middleware Android
FORMATION DEBUG
Ensemble de ressources
Fichier décrivant les droits
d'accès aux ressources
Fichier de configuration du
projet
Fichier de configuration pour
l'obfuscateur proguard
30. LE FICHIER MANIFEST
→ Vue des catégories d'un fichier
AndroidManifest.xml
FORMATION DEBUG
●
●
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.
31. 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 :
FORMATION DEBUG
●
●
●
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.
32. LE FICHIER MANIFEST
FORMATION DEBUG
●
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
33. 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/
FORMATION DEBUG
Deux types de
vérification de
permission
dans Android →
http://faculty.cs.tamu.edu/guofei/paper/VetDroid-CCS13.pdf
35. FORMATION DEBUG
Workflow de génération d'une appli.
→ Workflow de génération d'une application google/Android des sources java à une APK
35
36. SIGNATURE D'UN APK
Workflow de génération & signature d'une application officielle :
Google
play
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
FORMATION DEBUG
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
36
37. FORMATION DEBUG
ANDROID SDK vs APPLE SDK
Comparaison entre le process de développement de Google vs Apple
37