dimanche 26 décembre 2010

Tutoriel Andoid x86 1.6 (1) : Installation d'android x86 sur votre pc

Nous allons voir dans ce tutoriel comment installer android x86 sur votre pc :)
Nous ferons ce tutoriel sur une machine virtuelle et nous travaillerons avec la version 1.6 d'android.
Nous aborderons Android 2.2 (froYo) dans un autre tutoriel.

Pourquoi Android x86 ?

Si vous ne possédez pas de smartphone android, vous ne disposez pas d'un simulateur android et vous voulez tester android ( peut-être avant d'acheter un smartphone ) ceci est pour vous.

Autre point : vous pourrez ressortir vos vieilles machines et installer android x86 dessus. Ce système s'avère utile pour restaurer un vieux PC qui ne sert aujourd'hui plus à rien. Après tout un smartphone aujourd'hui est comparable aux vieilles machines d'hier à quelques points près ( Carméra , téléphonie et GPS sont rarement inclus dans un  vieux PC mais la RAM et le disque dur sont a peu près ce qu'on trouve aujourd'hui dans les smartphones).




1 Avant l'installation :

Il faut d'abord télécharger :
 Dans cette page téléchargez l'iso  suivant :


2 Création de la machine virtuelle :

Après l'installation de Virtual Box suivez les étapes suivantes :





Nouvelle pour créer une nouvelle machine virtuelle, puis Suivant


Dans cette fenêtre entrez le nom de la machine virtuelle.
Dans Système d'exploitation sélectionnez Linux et pour la version on va choisir Linux 2.6 ( La version 2.6 du noyaux linux ).




















Dans cette fenêtre vous pouvez laisser 256Mo pour la quantité de RAM.

 Ici on aborde le paramétrage du disque dur par rapport à la machine qu'on ne modifiera pas. On créera donc un nouveau disque pour notre machine virtuelle.





















 Maintenant on va configurer notre disque dur précédemment crée.
 
On va laisser Image de taille variable.


Ici on va choisir l'emplacement de notre image disque et sa taille.






















On va choisir 2go qui suffisent largement pour installer le système ( < 1go d'ailleurs ). Après tout dépendra de l'utilisation que vous ferez. Si vous prévoyez de virtualiser une SDCARD alors il vaudrait mieux choisir une bonne taille pour le disque dur.





















Voilà ! notre machine virtuelle est enfin configurée.


3 Préparation du terrain pour l'installation :

Nous allons maintenant monter l'image ISO de l'OS qu'on a téléchargé et commencer à installer android x86.





























On va donc aller à la configuration de la machine et monter l'image ISO sur le lecteur de notre machine virtuelle.





On va donc dans Stockage-> On sélectionne le lecteur et on va choisir notre image



























On ajoute donc l'iso et on appuie sur choisir.

A présent on a le CD d'installation d'android x86 dans le lecteur. Nous pouvons démarrer notre machine.

On démarre donc notre machine. Pour basculer entre la machine virtuelle et la machine physique la touche par défaut dans VirtualBox est CTRLDROITE ( la touche CTRL qui se trouve à droite et non pas la combinaison entre CTRL et la touche droite ).




On va installer sur le disque dur qu'on vient de créer.






On va créer les partitions nécessaires pour notre système






On va donc sélectionner New et créer une nouvelle partition pour notre système ( qui ne prendra que 54 mo à la fin ).















On crée donc une partition PRIMAIRE ,  on laisse la taille de 2GB et on positionne le flag bootable sur notre partition. Pour valider les modifications on sélectionne [Write] puis on écrit "yes". Voilà notre partition est crée, maintenant nous allons installer Android x86


4 Installation :





















La partition qu'on vient de créer apparaît donc et on va la sélectionner pour l'installation 
Pour le format de fichiers on choisira ext3.
Pour la confirmation de formatage de la partition on choisira yes
Lors de la demande de l'installation de GRUB on choisira de l'installer ( ici ce n'est pas vraiment nécessaire vu qu'on a un seul OS , mais en multi boot GRUB devient nécessaire ).
 ATTENTION : Si vous n'êtes pas connaisseur dans GRUB et linux n'essayez pas de faire cette installation sur une machine physique à utilisation quotidienne. Virtualisez pour tester ou installez sur une vieille machine.
Si vous savez configurer la procédure de boot avec GRUB et mettre en dual boot 2 OS aisément alors essayez et amusez vous bien :D
Grub 0.97 et plus généralement GRUB 0.9x sont maintenant des versions GRUB legacy . GRUB2 est apparu pour remplacer GRUB legacy donc ne vous amusez pas trop à rendre compatible le vieux et le nouveau si vous ne savez pas ce que vous faites. Pour les autres ca sera surement un plaisir :D


Maintenant on peut redémarrer la machine et enlever le CD d'installation ( Configuration de la machine ).



5 Utilisation :


On peut à présent découvrir l'écran suivant :

Voilà donc GRUB qui nous permet de choisir entre 2 modes de démarrage d'android.
On va choisir le premier et attendre le chargement. Une fois chargé on découvre enfin android :)






Voilà ! vous avez maintenant android sur votre PC ( bien sur pas avec toutes les possibilités ) mais on verra bien ce qu'on pourra utiliser et ce qu'on pourra faire avec :)
Rendez vous dans le tutoriel N°2 :  Découverte d'android x86 sur pc.
On verra comment changer la langue , comment utiliser le navigateur ,lire des flux RSS , ajouter des applications à partir de l'app store ( un app store android non officiel ) et bien plus ...

samedi 18 décembre 2010

Exception lors de l'utilisation de l'incrémentation automatique avec Entity Framework et SQL Compact Edition : La solution

Environnement : C# , .NET 4.0 , Entity Framework 4 , SQL Server Compact Edition 3.5

Lors d'une brève expérience avec ces  technologies et ma première expérience avec SQL CE 3.5 j'ai eu la mauvaise surprise de me trouver devant l'impossibilité d'utiliser l'incrémentation automatique pour les clés primaires de type Int32 des entités définies dans EntityFramework
Voici une illustration du problème en adoptant une approche Model First ( EF -> SQLCE 3.5 )

Une entité Produit dont la clé est IdProduit , de type Int32 et incrémentée automatiquement ( StoredGenerationPattern = Identity )





En tenant compte de cette spécification , on n'a pas besoin d'attribuer un id à chaque entité produit crée.
Or avec SQL CE 3.5 la situation n'est pas la même.
En effet Le duo Entity Framework et SQL CE 3.5 ne nous permet pas d'utiliser directement cette fonction et génère une exception :

An error occured while updating the entries.See the inner exception for details.






Mais heureusement que les solutions existent :

On peut dans ce cas récupérer manuellement la prochaine valeur de la clé primaire ( et ainsi on réalise un auto - increment manuel ) :

Il suffit de créer une méthode de type Extension Methods : ( Les extension methods ou méthodes d'extension nous permettent d'ajouter des méthodes à un type de donnée particulier ) , pour plus d'informations :

Extension Methods sur MSDN ( EN )
Extension Methods sur MSDN ( FR )

Donc il suffit de créer une classe ExtensionMethods comme suit :


public static class ExtensionMethods
        {
            public static TResult NextId(this ObjectSet table, Expression> selector)
                where TSource : class
            {
                TResult lastId = table.Any() ? table.Max(selector) : default(TResult);

                if (lastId is int)
                {
                    lastId = (TResult)(object)(((int)(object)lastId) + 1);
                }

                return lastId;
            }
        }

Lorsqu'on a besoin de créer une entité produit il va falloir ajouter la ligne suivante pour affecter manuellement le prochain Id à notre entité nouvellement créée :


Produit produit = new Produit();
produit.IdProduit = ModelSingleton.getModel().ProduitSet.NextId(p => p.IdProduit);

1 : ModelSingleton.getModel() retourne le ModelContainer ( Le contexte )
2 : ProduitSet : regroupe les entités Produit.

Il faut aussi enlever le Stored Generation Pattern ( mettre none ou aucun ) ensuite régénérer la base de données à partir du modèle.

Ainsi on pourra effectuer nos opérations CRUD sans aucun problème.

mercredi 13 octobre 2010

Blog de Belhassine Amine
Étudiant en génie logiciel à l'Institut National des Sciences Appliquées et Technologies ( Tunisie )