I. Avec une invite de commande

I-A. Créer une clé

Tout d'abord il vous faudra ouvrir une invite de commande (Démarrer > Executer > cmd).
Ensuite, dirigez-vous vers l'utilitaire général. En général, le répertoire est :

 
Sélectionnez

cd C:\Program Files\Java\jre1.6.0_07\bin

Attention, il se peut que le fichier ne s'appelle pas jre1.6.0_07. Dans tous les cas il commence par jre et un dossier bin se trouve dedans.
Une fois arrivé ici, il faut utiliser l'utilitaire keytool.exe en ligne de commande comme ceci :

 
Sélectionnez

C:\Program Files\Java\jre1.6.0_7\bin>keytool -genkey -v -keystore c:\androiddeveloppez.keystore -alias 
androidDeveloppez -keyalg RSA -validity 10000

- genkey génération des clés (privée et publique).
- keystore prend en paramètres la destination et le nom de votre clé (par exemple, ici nous la positionnons dans c : et elle s'appelle androiddeveloppez.keystore).
- alias prend en paramètre l'alias que vous voulez donner à votre clé (ici androidDeveloppez).
- keyalg correspond au type de l'algorithme à utiliser : DSA ou RSA.
- validity correspond au nombre de jours de validité de votre clé.

À partir du moment où vous tapez sur " entrer ", une suite de questions vous serront posées. Répondez avec vos propres réponses. Voici un exemple :

 
Sélectionnez

C:\Program Files\Java\jre1.6.0_7\bin>keytool -genkey -v -keystore c:\androiddeveloppez.keystore -alias 
androidDeveloppez -keyalg RSA -validity 10000
Tapez le mot de passe du Keystore :  developpez
Quels sont vos prénom et nom ?
  [Unknown] :  developpez
Quel est le nom de votre unité organisationnelle ?
  [Unknown] :  developpez
Quel est le nom de votre organisation ?
  [Unknown] :  developpez
Quel est le nom de votre ville de résidence ?
  [Unknown] :  paris
Quel est le nom de votre État ou province ?
  [Unknown] :  paris
Quel est le code de pays à deux lettres pour cette unité ?
  [Unknown] :  75
Est-ce CN=developpez, OU=developpez, O=developpez, L=paris, ST=paris, C=75 ?
  [non] :  o

Génération de la paire de clés RSA à 1024 bits et du certificat autosigné (MD5W
ithRSA)
        pour : CN=developpez, OU=developpez, O=developpez, L=paris, ST=paris, C=75
Spécifiez le mot de passe de la clé pour <androidDeveloppez>
        (appuyez sur Entrée s'il s'agit du mot de passe du Keystore) :
[Stockage de c:\androiddeveloppez.keystore]

Votre clé est enfin créée ! Il suffit de l'utiliser pour exporter votre application en .apk.

I-B. Créer un .apk

Pour créer notre .apk, nous allons utiliser l'outil jarsigner.
Pour ce faire, il suffit de taper en ligne de commande :

 
Sélectionnez

jarsigner -verbose -keystore c:\androiddeveloppez.keystore developpez.apk androidDeveloppez

- verbose permet d'afficher le détail de la génération de l'apk.
- Keystore demande en paramètre la clé créée auparavant (cf. I-A).

Une fois cette commande passée, il vous sera demandé les différents mots de passe (Keystore et alias).
androidDeveloppez correspond à l'alias défini auparavant (cf. I-A).
Il est important de voir si votre apk créé est bien signé. Pour cela, il vous suffit de taper la commande :

 
Sélectionnez

jarsigner -verify -verbose -certs developpez.apk

- verify permet justement la vérification.
- verbose tout comme au-dessus permet d'afficher le détail de l'exécution de la commande.
- Certs affiche le prénom et le nom enregistrés dans la clé (champ CN).

Une fois cette commande exécutée, un message " jar vérifié " s'affiche si tout va bien.

Maintenant, votre apk est signé mais attention ce n'est pas terminé !
Nous allons exécuter la commande zipalign qui permet d'optimiser votre application. Cet outil est proposé depuis la version 1.6 du sdk.
Il suffit d'exécuter ceci :

 
Sélectionnez

zipalign -c -v developpez.apk

Ceci vous dira si votre application est optimisée ou non.

Dans le cas où elle ne l'est pas (et même dans les autres cas d'ailleurs, ceci ne coûte rien :p), il suffit d'exécuter la commande suivante :

 
Sélectionnez

zipalign -v 4 developpez.apk developpez_new.apk

- v correspond au mot-clé verbose (déjà vu auparavant).
- 4 est le byte d'alignement. On utilisera toujours ce chiffre.
- developpez_new.apk correspond au nouvel apk optimisé créé.

Ceci accélérera le temps d'exécution de vos applications !

Votre apk est prêt ;)

II. Avec Eclipse

II-A. Créer une clé et exporter

Cliquez sur file > export
Puis sélectionnez " Export Android Application "

keystore étape 1


Ensuite, sélectionnez votre projet :

Keystore etape 2


Puis sur la vue suivante, cochez " Create new keystore ", entrez le chemin vers votre clé ainsi que son nom, et saisissez votre mot de passe (dans notre exemple le mot de passe sera " developpez ") :

Keystore etape 3


La vue d'après consiste à créer un alias (tout comme avec la ligne de commande). Le mot de passe pour l'alias sera le même c'est-à-dire " developpez " :

Keystore etape 4


Enfin, la dernière vue exportera votre projet en .apk :

Keystore etape 5


Une fois terminé, votre apk est créé !

II-B. Utiliser une clé et exporter

Cliquez sur file > export
Puis sélectionnez " Export Android Application "

keystore étape 1


Ensuite, sélectionnez votre projet :

Keystore etape 2


Puis sur la vue suivante, cochez " Use existing keystore ", entrez le chemin vers votre clé ainsi que son nom, et saisissez votre mot de passe (dans notre exemple le mot de passe était " developpez ") :

Keystore etape 3


La vue d'après consiste à utiliser l'alias que nous avons nommé tout à l'heure. Donc cochez " Use existing key ", puis sélectionnez votre alias et entrez votre mot de passe (dans notre exemple, le mot de passe est le même c'est-à-dire " developpez ") :

Keystore etape 4


Enfin, la dernière vue vous demande le chemin et le nom de votre .apk :

Keystore etape 5


Cliquez sur " finish " et votre .apk est créé (dans notre exemple, il se situe dans c:\ et s'appelle developpez.apk).

III. Conclusion

Pour finir, si vous voulez mettre votre application sur Android Market, il vous suffit de vous créer un compte et d'uploader votre .apk !
L'Android Market c'est à cette adresse :
https://market.android.com/publish/signup

Merci d'avoir suivi ce tutoriel et à bientôt ;)

IV. Remerciements

Je tiens à remercier tout particulièrement Feanorin, MrDuChnock et benwit pour leurs soutiens et remarques qui ont permis d'améliorer la qualité de ce tutoriel.
Merci aussi à ClaudeLELOUP pour la correction orthographique.