Linux Kernel
Android est basé sur un kernel linux 2.6 mais ce n’est pas Linux. Il ne possède pas de système de fenêtrage natif (X window system) . La glibc ou Gnu librairie C n’étant pas supportée, Android utilise donc une librairie C (libc) customisée appelée Bionic libc. Et en plus, Android utilise un kernel avec différents patches pour la gestion de l’alimentation, le partage de mémoire, etc. permettant une meilleure gestion de ces caractéristiques pour les appareils mobiles. L’avantage du kernel linux est qu’il a un système de gestion mémoire et de processus reconnu pour sa stabilité et ses performances. Le model de sécurité utilisé par linux, basé sur un système de permission, est connu pour être robuste et performant. Il n’a pas changé depuis les années 70.
Le kernel linux fournit un système de driver permettant une abstraction avec le matériel. Il permet également le partage de librairies entre différents processus, le chargement et de déchargement de module à chaud.
Le kernel linux est entièrement open source et il y a une communauté de développeurs qui l’améliorent et rajoutent des drivers.
C’est pour ces raisons que l’équipe en charge du noyau a décidé d’utiliser un kernel linux.
Besoins logiciels
Concernant le système d’exploitation, le développement sur Android est multiplateforme c’est-à-dire ça fonctionne sur Windows, linux ou Mac OS. Avant toute chose, l’installation de JDK est obligatoire car Android utilise le langage de programmation Java comme langage native. En termes d’environnement de développement, Google a créé un IDE (Integrated Development Environment) dédié pour Android, « Android Studio », qui est très complet et facilite le travail des développeurs. Il existe d’autres alternatives comme Eclipse ADT (Android Development Tool).
APPRENTISSAGE
Fonctionnellement, deux phases d’apprentissage peuvent être distinguées. La première permet d’initialiser le système par un expert, la seconde d’enrichir les bases obtenues afin d’améliorer la reconnaissance et assurer un fonctionnement multiscripteur. On parle alors d’apprentissage d’initialisation et d’apprentissage d’enrichissement (ou permanent). L’apprentissage d’initialisation porte sur des modèles de caractères isolés supposés parfaits. Une fois le tracé du caractère d’entrée est filtré, il est codé puis enregistré dans la base d’allographes appropriée (une base par méthode de codage). A l’issue de l’apprentissage d’initialisation, les bases obtenues peuvent être enrichies par un expert ou un scripteur quelconque (base multiscripteur) en les complétant par de nouvelles représentations de lettres plus ou moins dégradées. Ces mises à jour, qualifiées d’apprentissage permanent, peuvent être effectuées de deux façons différentes :
– En mode continu : le système ne fait qu’apprendre des caractères sous le contrôle d’un expert,
– En mode alterné : le système, en phase de reconnaissance, peut manquer un caractère, l’utilisateur peut alors formuler une demande d’apprentissage de ce caractère.
Visibilité et encapsulation
L’encapsulation permet de définir des niveaux de visibilité des éléments d’un conteneur. La visibilité déclare la possibilité pour un élément de modélisation de référencer un élément qui se trouve dans un espace de noms différent de celui de l’élément qui établit la référence. Elle fait partie de la relation entre un élément et le conteneur qui l’héberge, ce dernier pouvant être un paquetage, une classe ou un autre espace de noms. Il existe quatre visibilités prédéfinies :
Public ou + : tout élément qui peut voir le conteneur peut également voir l’élément indiqué.
Protected ou # : seul un élément situé dans le conteneur ou un de ses descendants peut voir l’élément indiqué.
Private ou – : seul un élément situé dans le conteneur peut voir l’élément.
Package ou ~ : seul un élément déclaré dans le même paquetage peut voir l’élément
PRESENTATION DE L’APPLICATION
Interface utilisateur L’interface utilisateur d’une application appelé aussi IHM (Interface Homme Machine) est la partie visible de l’application, elle permet à l’utilisateur d’interagir avec l’application. C’est avec l’interface utilisateur que l’utilisateur peut entrer des données, faire des choix, lancer une action, fermer l’application. L’interface utilisateur de l’application « I-KINGA » se présente comme dans la figure 3.6. Les trois boutons AIRTEL, TELMA et ORANGE permettent de choisir l’opérateur mobile à utiliser. Une fois l’opérateur mobile choisi, l’application ouvre une autre interface pour pouvoir prendre le code de recharge en photo, cette interface est représentée dans la figure 3.11. Il faut alors cadrer le code de recharge comme illustré dans la figure 3.11, cela permet de séparer le code de recharge et les autres éléments présents sur la carte.
Spécification matérielle Pour profiter pleinement de l’application « I-KINGA » il faut un appareil qui tourne sous Android 4.0.4, avec un Processeur Dual Core de 1 Ghz, une mémoire vive de 512 Mo, 70 Mo d’espace mémoire et un appareil photo de 8 Mégapixel.
Amélioration Aucune application n’est parfaite, il y a toujours quelques améliorations à faire. En voici quelque point pour améliorer « I-KINGA » :
Ajout d’une version pour les autres plateformes comme IOS (Apple) et Windows Phone (Microsoft).
Amélioration de certains algorithmes pour augmenter la rapidité, et de réduire la consommation en ressource.
Détection automatique de l’opérateur mobile de l’appareil.
CONCLUSION GENERALE
Android est un système d’exploitation mobile encore jeune, il est actuellement dans sa version 5. Il a été créé par Google en 2005, connaissant un très grand développement ces dernières années, il est apte à concurrencer les systèmes développés par les géants comme Apple et Microsoft. De plus le développement d’application mobile sous Android requiert des connaissances en langage JAVA et XML, ainsi que quelques outils de développement comme Eclipse ou Android studio et comme tout programme JAVA de l’environnement d’exécution JRE. La reconnaissance de caractère de son côté est une discipline qui date de plusieurs années, elle est apparue dans les années 50 et actuellement elle est encore en cour de perfectionnement. Cette discipline complexe combine le traitement d’image et l’intelligence artificielle. Elle comprend les étapes d’acquisition, de prétraitement, de binarisation, de segmentation, et aussi d’apprentissage. Le langage UML permet de modéliser l’application de façon orienté objet avec ses différentes diagrammes comme le diagramme de cas d’utilisation, diagramme de séquence et le diagramme de classe. L’application réalisée dans cet ouvrage permet d’exploiter cette technique de reconnaissance de caractère pour faciliter la vie quotidienne. La réalisation de cette application a donc permis de connaître mieux le système d’exploitation mobile Android, d’acquérir des connaissances avec le développement d’application mobile et aussi de se familiarisé avec la technologie de reconnaissance de caractère. Pour conclure, I-KINGA aide les gens surtout ceux qui ont eu du mal avec la lecture des codes de recharge dans la vie quotidienne dû à son caractère rapide et précis. Mais comme toute chose, rien n’est parfait, cependant il y a quelque amélioration à faire comme permettre a I-KINGA de rechargé avec des Opérateurs étrangère par exemple ou parfaire quelque algorithme pour acquérir encore plus de rapidité et de précision.
|
Table des matières
REMERCIEMENTS
Résumé
Liste des Figures
Liste des Tableaux
Liste des abréviations
INTRODUCTION
Chapitre I GENERALITES SUR ANDROID
I.1 PRESENTATION D’ANDROID
I.1.1 Description
I.1.2 Historique des versions d’Android
I.1.3 Caractéristiques
a) Open Source
b) Android et la plateforme Java
c) Android Runtime (ART)
d) Logo
I.2 ARCHITECTURE
I.2.1 Application
I.2.2 Framework de développement
I.2.3 Bibliothèques
I.2.4 Android Runtime
I.2.5 Linux Kernel
I.3 OUTILS DE REALISATION D’UN PROJET ANDROID
I.3.1 Besoins matériels
I.3.2 Besoins logiciels
I.4 STRUCTURE D’UN PROJET ANDROID
I.4.1 Le fichier Manifest
I.4.2 Les ressources
I.5 COMPOSANTES DE L’APPLICATION ET CYCLE DE VIE
I.5.1 Composantes
I.5.2 Cycle de Vie d’une activité
CONCLUSION
Chapitre II RECONNAISSANCE OPTIQUE DE CARACTERE
II.1 SCHEMA GENERAL
II.2 PRETRAITEMENT DE L’IMAGE
II.2.1 La binarisation
II.2.2 Elimination du bruit
II.2.3 La rotation
a) La détection de l’angle
b) La rotation
II.3 LA SEGMENTATION
II.3.1 Principe général
II.3.2 Segmentation des mots dans la phrase
II.3.3 Segmentation des chiffres et des lettres bâtons
II.4 APPRENTISSAGE
II.5 RECONNAISSANCE DES CARACTERES
II.5.1 Concepts généraux
II.5.2 Méthode dynamique
II.5.3 Méthode statique
II.6 NORMALISATION DES RESULTATS
II.7 CLASSIFIEUR
CONCLUSION
Chapitre III MODELISATION DE L’APPLICATION « I-KINGA »
III.1 CAHIER DES CHARGES
III.1.1 Objectif
III.1.2 Fonctionnalité
III.2 DIAGRAMME UML
III.2.1 Diagramme de cas d’utilisation
III.2.2 Scénarios
a) Scénario nominal
b) Scénario alternatif
c) Scénario d’erreur ou scénario d’exception
III.2.3 Diagramme de séquence
a) Messages
b) Fragments combinés (appelé aussi Inline frame)
c) Références
III.2.4 Diagramme de classe
a) Représentation d’une classe
b) Classe et Objet
c) Héritage, Généralisation, Spécialisation et Polymorphisme
d) Visibilité et encapsulation
e) Association
f) Agrégation et composition
III.3 PRESENTATION DE L’APPLICATION
III.3.1 Interface utilisateur
III.3.2 Spécification matérielle
III.3.3 Amélioration
CONCLUSION
CONCLUSION GENERALE
Télécharger le rapport complet