View on GitHub

demers.github.io

Présentations

À Noter: Je suis à la préparation d'une machine virtuelle XUbuntu contenant toute la configuration expliquée ci-bas.

Scripting Language for Android (SL4A)

SL4A

Site officiel: http://code.google.com/p/android-scripting/

Quelques informations sur moi

Pourquoi SL4A?

Suppositions pour la suite de ce document

Informations générales sur Android

Présentation Slideshare: http://fr.slideshare.net/ranjith2011/introduction-to-android-7872075

Étapes d'installation

J'ai 2 clés USB pour réduire le temps de téléchargement.

Étape 1: Installer le SDK de Android

  1. Téléchargez le SDK à http://developer.android.com/sdk/
  2. Décompressez le fichier dans le dossier /tmp
  3. Rendez-vous dans le dossier créé et déplacez le dossier "sdk" dans votre compte utilisateur.
  4. Faites de même pour le dossier "eclipse" dans votre compte utilisateur.
  5. Configurez votre variable $PATH dans votre fichier ~/.bashrc en ajoutant cette ligne export PATH=~/sdk/platform-tools/:$PATH
  6. Fermez votre console et ouvrez-en une autre.
  7. Tapez la commande pour savoir si le changement a fonctionné:
adb devices

Étape 2: Installer Eclipse et le plugin Android

   sudo add-apt-repository ppa:webupd8team/java
   sudo apt-get update
   sudo apt-get install oracle-java7-installer

Étape 3: Installer le plugin pour programmer en Python.

  1. Partez Eclipse.
  2. Dans le menu Help et l'option Install New Software, et le bouton New, tapez l'URL: http://pydev.org/updates
  3. Complétez l'installation du plugin en cochant PyDev.
  4. Ouvrir le menu 'Window' et 'Preferences'.
  5. Choisir l'option 'PyDev' et 'Interpreter - Python'.
  6. Cliquer 'New' pour ajouter un interpréteur Python qui se trouve à /usr/bin/python
  7. Si l'étape de la puce (2) ne fonctionne pas, vous pouvez suivre les étapes suivantes.
    1. Téléchargez PyDev à http://sourceforge.net/projects/pydev/files/
    2. Décompressez le fichier ZIP dans le dossier ~/eclipse
    3. Assurez-vous que Eclipse est fermé.
    4. Déplacez le contenu du dossier plugins (au départ dans le dossier PyDev) dans le dossier ~/eclipse/plugins
    5. Déplacez le contenu du dossier features (au départ dans le dossier PyDev) dans le dossier ~/eclipse/features
    6. Partez Eclipse en ligne de commande comme suit: ~/eclipse/eclipse -clean
    7. Pour en savoir plus, consultez http://pydev.org/manual_101_install.html

Étape 4: Démarrez un premier émulateur

  1. Dans le menu Window/Android Virtual Device manager, faites New AVD
  2. Choisissez les options voulues.
  3. Démarrez l'émulateur.
  4. Voir si l'émulateur est bien accessible en tapant adb devices

Étape 5: Installer 2 applications sur l'émulateur

adb install ~/sl4a_r6.apk
adb install ~/PythonForAndroid_r4.apk

Étape 6: Créer un projet de développement Python sous Eclipse

#!/usr/bin/env python

'''
@author: Pro Android Python with SL4A
'''

import subprocess

#ADB = r'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe'
ADB = '/home/android/android-sdks/platform-tools/adb'
APPLICATION = 'androidtest.py'
TARGET = '/sdcard/sl4a/scripts/'

def main():
    # Upload the application.   
    subprocess.call([ADB, '-e', 'push', APPLICATION, TARGET + APPLICATION])

    # Launch the application.
    subprocess.call([ADB, '-e', 'shell', 'am', 'start',
          '-a', 'com.googlecode.android_scripting.action.LAUNCH_BACKGROUND_SCRIPT',
          '-n',
           'com.googlecode.android_scripting/.activity.ScriptingLayerServiceLauncher',
          '-e', 'com.googlecode.android_scripting.extra.SCRIPT_PATH',
          TARGET + APPLICATION])


if __name__ == '__main__':
    main()
import android
droid = android.Android()
droid.makeToast('Hello, Android!')

Des exemples de code

Premier exemple

import android
droid = android.Android()
name = droid.dialogGetInput("Hello!", "What is your name?")
droid.makeToast("Hello, %s" % name.result)

Deuxième exemple

"""Speak the time."""

__author__ = 'T.V. Raman <raman@google.com>'
__copyright__ = 'Copyright (c) 2009, Google Inc.'
__license__ = 'Apache License, Version 2.0'

import android
import time

droid = android.Android()
droid.ttsSpeak(time.strftime("%_I %M %p on %A, %B %_e, %Y "))

Troisième exemple

title = 'User Interface'
message = 'Welcome to the SL4A integration test.'
droid.dialogCreateAlert(title, message)
droid.dialogSetPositiveButtonText('Continue')
droid.dialogShow()
response = droid.dialogGetResponse().result

D'autres exemples disponibles dans ce fichier ZIP: http://code.google.com/p/android-scripting/downloads/detail?name=python_scripts_r8.zip&can=2

Consultez surtout les exemples du programme test.py pour en savoir plus.

Android sur Genymotion

Il est possible d'exécuter Android sur Virtualbox. Pour ce faire, il faut installer l'application http://www.genymotion.com/

Alternative

Il existe une autre application (disponible sur le Android Store) appelé http://qpython.com qui permet d'exécuter les scripts Python 2.7 (présentés ci-haut). Je ne l'ai pas testé pour l'instant.