iac mag n°2
DESCRIPTION
2ème numéro IAC MAG 2 Octobre 2011TRANSCRIPT
EDITORIAL
Pourquoi Android reste le meilleur OS ? Ecrit Par: Mariem Zaouali
Google a intégré à merveille ses principaux services dans le système. Etre dans la mesure de synchroniser en temps réel les contacts du téléphone et ceux de Gmail facilite énormément de choses !
Les interfaces graphiques
Les intents et les threads
Attaque BlueBug
1
Editorial p.1
p.3
p.6
p.9
Une idée de génie
Eh bien, c’est la formule magique: une technologie excellente qui s’ajoute à l’ouverture totale. C’est un magnifique choix stratégique et industriel. En effet, les grands constructeurs du téléphone mobile à part Nokia qui n’appartient pas à la liste des membres de l’Open Hanset Alliance , ont opté pour le robot vert. Ce qui induit qu’à court terme, la vaste majorité de l’offre de téléphone sera sous Android.
Android deviendra donc le
standard. C’est une stratégie brillante qui incorpore la culture technologique web de Google.
Gestion de données
Avec un téléphone Android, la simplicité est de mise. On copie les fichiers (musique, photos, vidéos), où l’on veut sur la carte SD (ou la mémoire interne) et tout est détecté par le système. C’est facile et répond aux besoins des utilisateurs. Chez Apple, la logique est différente. Sans jailbreak, le seul moyen de mettre des données (musique, photos, vidéos) sur le mobile est de synchroniser tout cela par iTunes. Ce qui fait que le processus devient contraignant et fastidieux.
Services Google
Premiers pas dans l’univers du Web Mobile
p.11
Développement des jeux sous Android
p.13
Gmail gère également les calendriers. Google Maps propose en plus d’un service de géolocalisation, un vrai GPS à guidage vocale gratuit.
EDITORIAL
2
Le market
Pendant longtemps, on pouvait lire qu’il manquait énormément d’applications sur l’Android market. Il faut avouer que c’est de moins en moins le cas. En effet on trouve tout ce dont on a besoin et en nombre !
Let statistics speak loudly !
PCWorld nous fait un tableau récapulatif des fonctionnalités de Windows Phone 7, iOS, et d’Android. Nous y voyons bien qu’Android est actuellement l’OS qui propose le plus de fonctionnalités !
JAVA SDK
021
Oct 2011
LES INTERFACES GRAPHIQUES
Ecrit par : Bassem Kassis
L’interface graphique est la première chose que nous voyons et que nos utilisateurs verront. Elle doit être :
ergonomique
rapide
simple
agréable
professionnelle
Les layouts
Sous Android, la notion de mise en page est reliée à la notion de Layout
Les layouts les plus utilisés sont :
LinearLayout : Il organise les différents éléments de votre interface sur une ligne ou sur une colonne.
RelativeLayout : Il permet de définir la position des éléments en fonction de la position de leurs éléments parents.
TableLayout : Cette mise en page peut se faire en colonne et en ligne.
INSAT ANDROID MAGAZINE Issue 02 Octobre 2011 3
LinearLayout On définit
Un LinearLayout qui prend une orientation horizontale
Un composant ImageView qui permet d'afficher l'icone
Un nouveau LinearLayout qui prend une orientation verticale et on l’ajoute deux zones de texte.
Les composants graphiques :
● Button : Un bouton cliquable.
● CheckBox : Une checkbox. ● EditText : Un champ de texte
éditable. ● DatePicker: Sélection de dates. ● RadioButton : Représente les
boutons radios. ● ImageButton: Une image qui
se comporte comme un bouton. ● ImageView : une image ● TextView : un texte
…
TUTORIAL
02
TableLayout
Organiser les widgets en lignes et en colonnes
INSAT ANDROID MAGAZINE 4
RelativeLayout
Placer les éléments selon d’autres éléments du conteneur.
Issue 02 Octobre 2011
L’ergonomie des interfaces ajoute une valeur d’avantage à votre travail. Une application est mal vue si elle est mal présentée même si elle cache derrière des mécanismes sophistiqués !
TUTORIAL
02
INSAT ANDROID MAGAZINE 5
Les bonnes pratiques :
Il est conseillé de travailler avec RelativeLayout
Eviter de travailler avec AbsoluteLayout
Essayer d'utiliser les styles, les
includes à fin de réduire la quantité du code
Eviter d’utiliser px comme unité
de mesure Utiliser dp
Issue 02 Octobre 2011
JAVA SDK
031
Oct 2011
LES INTENTS ET LES THREADS
Ecrit par : Bassem Kassis
Les Intents
Représente une description abstraite d’une opération à effectuer
Un objet Intent est un paquet d'information
Les Intents permettent de communiquer entre les différentes activités
de notre application
Passage des paramètres
Pour éviter ce fameux message d’erreur, il faut maîtriser la notion des threads sous Android.
Pour passer des paramètres à une activité, il faut stocker les
paramètres dans un objet Bundle
Envoi des paramètres
La méthode putXXX :
String : passer une chaine de caractère
Int : passer un entier
Double : passer un double
put : passer un objet
NB : Cet objet doit être serializable (implémente l’interface Serializable)
INSAT ANDROID MAGAZINE Issue 02 Octobre 2011 6
TUTORIAL
03
INSAT ANDROID MAGAZINE 7
Récupération des paramètres
La méthode getXXX :
String : récupérer une chaine de caractère
Int : récupérer un entier
Double : récupérer un double
get : récupérer un objet
Cet objet doit être serializable (implémente l’interface Serializable)
Passage entre activités Intent intent = new Intent ( Context , Activity) ; startActivity(intent);
Issue 02 Octobre 2011
Les threads
TUTORIAL
03
Il existe plusieurs méthodes pour implémenter les threads :
Handle
Runnable
AsyncTask
On va se concentrer sur la dernière vu qu’on l’utilise fréquemment
AsyncTask
Une classe abstraite qui fournit plusieurs méthodes de gestion de l'interaction entre le thread d'interface et le fil de fond.
OnPreExecute: La première méthode appelée dans l’AsyncTask, a appelé le thread d'interface utilisateur. doInBackground: La méthode qui exécute les tâches de temps et de publier l'avancement d'une tâche, exécutée dans le thread d'arrière-plan. OnPostExecute: La méthode finale qui est appelée après la fin de doInBackground, ici on peut mettre à jour l'interface utilisateur avec les résultats de l'AsyncTask. onCancelled: Est appelée si le AsyncTask.cancel () est appelée méthodes, mettre fin à l'exécution de la AsyncTask.
INSAT ANDROID MAGAZINE Issue 02 Octobre 2011 8
SECURITE
011
Oct 2011
ATTAQUE BLUEBUG
Ecrit par : Abdelfateh Marzougui
Présentation générale de l’attaque Bluebug
BlueBug est le nom d'une faille de sécurité Bluetooth sur certains téléphones cellulaires compatibles Bluetooth. Exploiter cette faille permet de télécharger des livres non autorisés de téléphone et de savoir les listes d'appels, d'envoi et lire des messages SMS à partir du téléphone attaqué et beaucoup plus de choses. Elle consiste à se connecter sur un port RFCOMM ne nécessitant aucune authentification permettant l’accès à un set de commandes AT*.
ETAPE 1: Préparation des outils d’attaque
Vous devez tout d’abords installer
le système d’exploitation ubuntu. Par la suite vous devez installer une liste des paquets en tapant les commandes suivantes : $sudo apt-get install bluez
$sudo apt-get install cu
INSAT ANDROID MAGAZINE Issue 02 Octobre 2011 9
ETAPE 2: Activation du Bluetooth sur le pc
ETAPE 3: Recherche des périphériques Scanner la liste des périphériques bluetooth activé prés de votre emplacement en tapant la commande : $hcitool scan Ensuite copier l’adresse mac de votre victime. Remarque :pour cet exemple on va prendre 00 :21 :D1 :8A :CO :D3 comme adresse mac du notre victime.
ETAPE 4: Déterminisation du canal de communication
Déterminer la liste des services disponible dans ce téléphone portable en tapant la commande : $sdptool browse 00 :21 :D1 :8A :CO :D3 Après Chercher le canal dédié au service serial port ou bien Com1.
TUTORIAL
01
INSAT ANDROID MAGAZINE Issue 02 Octobre 2011
ETAPE 5 : Etablir la liaison avec le téléphone portable victime
Effectuer l’opération de la liaison entre le rfomm device et le victime. En tapant la commande : $sudo rfcomm bind 0 adresse_mac numéro_canal Pour notre cas : l’adresse mac : 00 :21 :D1 :8A :CO numéro_canal : 2
10
ETAPE 6 : Se connecter au
terminal victime
Pour finaliser l’opération de connexion totale avec le téléphone potable victime, il suffit de taper la commande :
$cu –l /dev/rfcomm0 A ce moment il y’avait deux situations possibles qui dépendent de la version du Bluetooth de la téléphone portable victime: 1 – un message d’information va être affiché au niveau de l’afficheur de la victime pour lui informer que pc-xxx veut se connecter sur son téléphone, dès qu’il tape ok, rien ne se passe au niveau du l’appareil victime mais vous avez maintenant un contrôle totale sur l’appareil en utilisant les commandes AT* présenter dans l’étape 7. 2 - un message d’information va être affiché au niveau de l’afficheur de victime pour lui informer que pc-xxx veut se connecter sur son téléphone, dès qu’il tape ok, un code d’authentification est demandé par l’appareil victime pour finaliser l’étape de connexion mais dès que vous arrivé à ce connecter vous avez un contrôle totale sur l’appareil en utilisant les commandes AT* présenter dans l’étape 7.
ETAPE 7 : Exemples de quelques attaques possibles par la
commande AT
1 - Pour récupérer les 30 premiers contacts dans la carte Sim de la victime taper : at+cpbr=1,30 2 – Pour lancer un appel téléphonique :
Atdt numéro_de_téléphone
Pour décrocher le prochaine appel automatiquement après une seule tonalité (c’est-à-dire un seul bip) taper la commande : ATS0=1 Pour savoir l’état de la batterie de l’appareil de la victime : at+cbc Pour plus de détails sur les autres commandes AT possible, visiter le site ci-dessous : http://www.technologuepro.com/gsm/commande_at.htm
WEBMOBILE
011
Oct 2011
PREMIER PAS DANS L’UNIVERS DU WEBMOBILE
Ecrit par : Mariem Thabti
Pendant le mois d’Octobre, la première phase des travaux de l’atelier WebMobile du club Android de l’INSAT a été parfaitement déroulée puisque l’équipe a reconnu des éléments super-motivés pour découvrir le monde des émerveilles du web mobile
Comme premier pas, nous avons introduit la notion du web mobile avec les nouveautés du HTML5 & CSS3 en citant à chaque fois les avantages et la puissance du web par rapport au mobile, pour cela nous comparons à chaque fois les applications mobiles avec les natives, à titre indicatif voilà quelques avantages du web mobile (source : http://www.blog-nouvelles-technologies.fr):
- pas de frais lorsqu’une application
Web mobile est mise sur le marché.
- pas besoin d’être approuvé, ce qui
signifie qu’une application Web peut
être créée sur à peu près n’importe
quel sujet.
- Les applications Web mobiles sont
conçues pour fonctionner sur tous les
navigateurs mobiles qui existent et
les utilisateurs n’ont ainsi pas besoin
de télécharger une application ou sa
mise à jour.
- les applications Web permettent aux
utilisateurs d’accéder à leur contenu
sur différents appareils mobiles
facilitant ainsi son utilisation.
Enfin, les applications web sont beaucoup plus faciles et moins chers à
développer que les applications natives.
INSAT ANDROID MAGAZINE Issue 02 Octobre 2011 11
En outre, dans une deuxième étape, nous avons mis en œuvre le processus de détection des mobiles et nous avons entamé la maitrise de quelques méthodes de détection des mobiles. Parmi ces méthodes, nous avons découvert les média-queries : Les media queries sont assez récentes, elles font parties d’un module CSS3. Elles permettent d'adapter la présentation du contenu à un ensemble particulier de périphériques sans changer le contenu lui-même. Par exemple nous allons appliquer une feuille de style en fonction de la taille de l’écran :
Si la largeur de l’écran est inférieure à
480 pixels, on va appliquer le style
défini par le fichier smallscreen.css
Sinon on appliquera celui du fichier
largescreen.css
/IAC/media.html
Smallscreen.css
Largescreen.css
TUTORIAL
01
INSAT ANDROID MAGAZINE Issue 02 Octobre 2011 12
Testons ce code sur pc
Sur un Androphone on a
Pour plus d’informations sur le sujet des media-queries, veuillez consulter ce lien.
En analysant les applications web mobile, nous avons constaté quelques inconvénients puisque une application 100% web ne permet pas un accès à la majorité des capacités des périphériques, comme le camera, vibreur & l’accéléromètre…
D’ici, nous avons découvert les
applications hybrides, qui unissent les avantages de l’application web et celles de la native. Comme Framework de développement des applications hybrides, nous avons travaillé avec Phonegap qui offre au développeur un moyen de construire des applications sur une seule plateforme et les déployer sur n’importe quel Appareil mobile (Android, WP, iOS…).
GAMING
011
Oct 2011
DEVELOPPEMENT DES JEUX SOUS ANDROID
Ecrit par : Seif Karoui
L’idée du jeu
D’abord, il faut se poser la question suivante : est-ce que je vais développer un jeu causal, action, aventure ou stratégie;
Est-ce que c’est un jeu 2D ou 3D ...
Après avoir choisi les grands traits de jeu, je dois inventer une histoire pour mon héros, les conditions de victoire ou de perte, les obstacles, les ennemies et tous ce qui concerne le scenario de jeu..
Architecture du jeu
INSAT ANDROID MAGAZINE Issue 02 Octobre 2011 13
PARTIE 1
Input : l’écran éventuellement tactile, le clavier physique, le microphone , la camera, l’accéléromètre ou même le GPS.. User input : l’événement généré après l’utilisation de l’outil de l’input Game Logic : le module Game Logic est responsable de changer le statut des objets dans le jeu.. Audio : le module responsable de son Graphics : le module responsable de dessiner le statut du jeu … Output : le résultat des modules son et graphiques et éventuellement la vibration…
Avant de créer le game loop, on doit créer un simple view (Notre panel de jeu) pour manipuler les événements comme le « Ontouch » et de garder le cycle de vie de jeu.
Cette activity hérite de la classe
SurfaceView et implémente la SurfaceHolder.callback pour gagner l’accès au changement de surface comme en cas d’orientation de l’appareil …
La structure de code source de
cette activité doit être comme la suivante:
Création du Panneau de jeu
getHolder().addCallback(this); => Cette ligne rend cette classe comme le traiteur des événements qui se passe dans la surface actuelle setFocusable(true); => cette ligne rend notre panneau de jeu focalisable… c'est-à-dire elle peut gérer les événements
TUTORIAL
01
INSAT ANDROID MAGAZINE Issue 02 Octobre 2011 14
Création du “Game Loop”
-Le Game Loop ou en français la boucle de jeu est le cœur de chaque jeu. Le principe est simple, on sait bien qu’on doit traiter les inputs, puis la mise à jour du statut interne de jeu et enfin dessiner les images sur l’écran …
Maintenant on va créer le thread qui sera notre Game Loop
Private boolean running : => « running » c’est le drapeau de statut de notre jeu .. si le booléen running est vrai alors la méthode run() fait une boucle infini.. Maintenant on instancie le Game Loop dans le constructeur de notre panneau de jeu et on le démarre dans la fonction SurfaceCreated Classe GamePanel après l’instanciation de GameLoop
GALERIE
011
Oct 2011
WORKSHOPS OF OCTOBER
INSAT ANDROID MAGAZINE Issue 02 Octobre 2011
Les réunions de l’ Insat Android Club portaient ce mois sur les thèmes suivants :
Atelier Java SDK :
Interface graphique en XML
Les composants
Les bonnes pratiques
Structure d’un projet Android
Cycle de vie d’une Activité
Les intents
Les threads
Persistance des données
Les fichiers
Les préférences
SQLite
Démo SQLite
Atelier JAVA:
Aperçu de l’histoire de JAVA
Les caractéristiques du langage JAVA (Robustesse,
Portabilité..)
Le concept d’orienté objet
Atelier Gaming:
Présentation du domaine des jeux en Tunisie
Simulation d’une animation d’un bonhomme à l’écran
Atelier WebMobile:
• Web Mobile, c’est quoi ? Exemple, Avantages… • Détection des mobiles Android, iPhone, Blackberry… • Les applications « Hybrides » Phonegap
Atelier Sécurité:
A quelles menaces les smartphones android sont-ils exposés ?
Trojan, Faille de skype, HippoSMS, Nickispy, Stealing android sd card
Protection contre les virus
Mcafee, Lookout Mobile Security, BitDfender, DrWeb Atelier Adobe Flex:
Présentation du Framework Flex
Définition des différents outils qui entrent en jeu
Présentation de l’environnement de travail Flash Builder 4.5
Enumération des bonnes techniques de développement multiplateformes
Mail de l’INSAT Android CLUB
GALERIE
01
INSAT ANDROID MAGAZINE Issue 02 Octobre 2011