développement sous
Android
Proposé par :
hotmani houssem
Sts 162
Présentation d’Android
Qu’est ce qu’Android
Qu’est ce qu’Android?
Un système d’exploitation open source
● Un système d’exploitation oriente dispositif
mobiles il s’agit donc d’un ensemble de logiciels qui
sert d’interface entre le matériel (les composants du
tel ‘euphone, d’une tablette...) et les logiciels
applicatifs (ceux que vous allez développer).
● Un système d’exploitation open source ⊸
disponibilité du code importante communauté
d’utilisateurs.
● Un système d’exploitation base sur le noyau Linux
● Environnement de développement gratuit ⊸
Programmation en Java ou en langage C ++ Kit de
développement ( SDK Android) disponible au lien
[Link]
Architecture ANDROID
Au niveau système, Android est organisé autour de plusieurs instances
de la machine virtual Dalvik, dans different processus.
Les instances communique entre elles à l'aide d'un mécanisme IPC (Inter
Processes Call)
Une instance particulière de Dalvik, portée par le processus
SystemServer, expose des corposants et des services aux applications
2 modes de placement application
1. Terminal monopoles: 1 class loader / apply
2. Terminal monopoles: 1 process / apply
Architecture ANDROID
Pour optimiser l'instanciation des machines virtuelles, Android utilise un
processus spécifique apellé Zygote
Zygote porte une première instance de Dalvik comme modèle.
Zygote écoute sur un socket local.
Sur réception d'une ligne de commande, celle-ci est interprétée par
Zygote, après avoir effectué un fork() du processus.
Zygote précharge une liste de classes en mémoire, lie les DLLs JNI et à
faire le ménage à l'aide du ramasse-miettes.
Architecture ANDROID :
code source
Fichier source java : [Link]
frameworks/base/services/java/com/android/server/
Appel de la librairie native android_servers qui fournit une interface
aux fonctionnalités natives via JNI
frameworks/base/services/jni/
Fichier source c++ : system_init.cpp
frameworks/base/cmds/system_server/library/
Version Android
Etape d’installation Android studio
Android pour développeur
Andoid est conçu par des développeurs pour des développeurs.
Andoid nécessite aucune certification pour devenir développeur.
Avec Android on peut distribuer et monétiser des applications sur
Android Market.
Puissant et intuitif, Andoid facilite le développement mobile.
Ouvert, un SDK simple et puissant. L’absence de coût de licence
attire plus de développeur.
Andoid pour constructeur
Facilité d’accès au matériel de bas niveau avec une serie d’API
disponible.
Android fonctionne sur plusieurs marques de smartphones.
L’interaction entre applications est transparente.
Intégration de Google Maps et utilisation de services d’arrière plan
dans les applications.
Les applications natives et tierces utilisent les mêmes API,
Android et Java
Android ressemble fortement à Java mais il en est pas. Les
applications Android sont écrites en Java mais ne sont pas
exécutées par une machine virtuelle Java ME.
Les applications Java ne fonctionnent pas nativement sous
Android.
Les applications Android sont exécutées par une machine
virtuelle spécifique Dalvik et non par une JVM classique.
Android et Java
Android inclus une implémentation Open source spécifique de
java basée non pas sur OpenJdk, mais sur le projet Harmony
(implémentation java 5 de la fondation apache).
Google a adapté Harmony et supprimé certains packages non
nécessaire en environnement mobile.
[Link] – Formation ANDROID 16
Android et Java
Packages.
Android et C
Avec Android, il est possible d’écrire des applications en C/C++
qui sont exécutées directement par le système d’exploitation
Linux.
Android fournit un kit de développement natif (NDK).
Ce NDK permet de créer des bibliothèques C++ à l’aide des
bibliothèques libc et libm et donne un accès natif à OpenGL
(Open Graphics Library)
OpenGL est une spécification qui définit une API multiplate forme
pour la conecption des applications générant des images 3D ou
2D.
[Link] – Formation ANDROID 19
Android et Lunix
Android est un système d’exploitation basé sur Linux noyau 2.6.
Android issu d’un fork de la 2.6.x, mais n’est pas une distribution
linux car il manque plusieurs composants comme X11 (graphique)
et glibc
La machine Dalvik utilise le noyau Linux pour gérer les
fonctionnalités de bas niveau y compris la sécurité, le threading
et la gestion des processus et de la mémoire
conclusion
Ce projet nous a amenés à découvrir le monde du traitement
d’image et à développer pour la première fois sur la
plateforme Android. Nous avons mis en œuvre nos
connaissances en langage Java avec des outils nouveaux tels
qu’Eclipse, et utilisé ce que Google met à disposition de ses
développeurs : un Google code. Nous avons pu documenter
notre projet via le Wiki.
Bien que nous n’ayons effectué que quatre filtre, c’était notre
choix, mais ça n’empêche que nous pouvons encore effectuer
d’autre filtres ou d’autre technique de traitement d’image.
Merci pour
votre
attention