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