Академический Документы
Профессиональный Документы
Культура Документы
Remarque pralable
Comme il est impossible de traiter tous les
aspects d'Android, seulement quelques uns
seront prsents.
De plus pour des raisons pdagogiques, ils
seront prsents dans un ordre de complexit
croissante et de proximit de centres
d'intrts (c'est dire au fil de l'eau, comme
un tutoriel).
Plan
Application Dessins
Prsentation
C'est:
Programmation de logiciels
Cycle de travail:
Outils:
Le SDK Android
Il contiendra, aprs tlchargement(s):
la doc en ligne
les fichiers inclus, les librairies lies...
le compilateur et autres outils
des outils de communication genre telnet et ftp
un mulateur de tablette Android virtuelle
1) Le prendre sur:
http://developer.android.com/sdk/index.html
Installation du SDK
5) Cliquer Install 1
package (pas de delete)
9
Installer la version la
plus basse commune
aux tablettes cibles
par vos logiciels
Obsolescence voulue
explicitement,
pourtant, en octobre
2012:
16
07/2012 2%
3.x.x Honeycomb
11-13 02/2011 2%
2.3.x Gingerbread
9,10
12/2010 56%
2.2.x Froyo
05/2010 13%
2.1 Eclair
5-7
10/2009 3%
1.6 Donut
09/2009 0,4%
1.5 Cupcake
04/2009 0,1%
10
12
3)Bouton new...
Souris = doigt
Touche Home = cran de
base
Touche F2 = menu
Premire manip:
configurer la tablette
en franais!
F2, Settings, Language
14
16
Commandes de ADB
17
http://developer.android.com/tools/device.html
18
Commande lsusb
Reprer les identifiants hexa de la tablette, ex:
0e79:1411
21
http://developer.android.com/tools/extras/oem-usb.html
Eclipse et Android
Il faut rajouter un plugin nomm Android
Development Tools (ADT) dans Eclipse pour
accder Android
1)Tlcharger le plugin
2)Configurer le plugin
3)Le garder jour par rapport au SDK
23
24
Programmation Android
26
Application Android
27
Types d'activits
</intent-filter>
</activity>
android.app.Activity
http://developer.android.com/reference/android/app/Activity.html
ListActivity, TabActivity...
30
On doit la sous-classer:
class MonActivite extends Activity {
31
Exemple d'activit
package fr.iutlan.tutoandroid;
import android.app.Activity;
...
public class TutoAndroidActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
32
Mthodes d'Activity
33
Concrtement...
34
Vrifier o il est cr
Bouton Next>
Choisir le SDK
Bouton Next>
NB: dans le plugin pour Eclipse
Indigo, cette page apparat
sous forme d'une liste
droulante directement dans la
premire page.
36
Choisir le nom de
l'application et de
l'activit principale
Choisir le nom du
package
Bouton Finish
37
Projet cr
Rsultat:
38
Compiler le projet
Pas besoin de
compiler, c'est fait en
permanence par
Eclipse
Tant qu'il y a des
erreurs, il y a du
rouge sur les fichiers
et on ne peut pas
lancer
40
Lancer le projet
41
Eclipse lance un
mulateur ou utilise la
tablette branche
Installe puis lance le
logiciel
42
Suivi du lancement
43
D'abord, afficher ou
activer la fentre Devices
45
Deux colonnesutiles:
47
LogCat sert
localiser la source
des bugs.
Rajouter les 2 lignes
suivantes dans la
mthode onCreate
de votre activit
TextView tv2=null;
tv2.setText("boum");
Ignorer le warning
48
Trouver la faille
49
Les ressources
50
Ouvrir src/package/TutoAndroid.java:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i("TutoAndroid","bonjour tous");
setContentView(R.layout.main);
}
4)Relancer l'application
Cette ligne:
(TextView)this.findViewById(R.id.textview)
s'applique l'Activity: elle recherche une View
(contrle, widget, composant... de l'interface)
ayant cet identifiant
Elle retourne null ou le TextView en question
Il faut convertir le type du rsultat
Vues et mthodes
http://developer.android.com/reference/android/widget/package-summary.html
http://developer.android.com/reference/android/widget/Button.html
Exemplespour un TextView:
setText("...") correspond android:text="..."
Exemple :
<TextView android:id="@+id/textview"
android:textSize="15sp"
android:textColor="#F0F"
// voir res/values/strings.xml
// hard-coded
tv.setText(R.string.hello);
tv.setText("Salut!");
Inconvnient:
Layouts
62
64
65
Dfinition du Listener
Rajouter la mthode:
@Override
public void onClick(View btn) {
TextView tv = (TextView)findViewById(R.id.textview);
tv.setText("Pouic");
}
66
67
68
69
71
Au lieu de ceci:
on voudrait cela:
72
Layouts
73
android:layout_width
android:layout_height
android:layout_width="fill_parent"
NB: fill_parent est devenu match_parent dans le SDK 2.2
android:layout_width="wrap_content"
74
75
bouton1
bouton2
Android et SQL
77
Principes
79
C'est parti !
Nom = TutoAndroidBDD
On changera la classe Activity plus tard
http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html
Constructeur de BDDHelper
Rajouter un constructeur:
public BDDHelper(Context context) {
super(context, "infos.db", null, 1);
}
81
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE infos (_id INTEGER
PRIMARY KEY AUTOINCREMENT, info TEXT NOT
NULL)");
}
82
83
Classe BDD
85
Base et Activit
88
Transformer l'activit
La classe principale
Changer sa superclasse
Le fichier de layout
89
Layout android.R.layout.activity_list_item
Composant ListView
Voir
http://developer.android.com/guide/topics/ui/layout/listview.html
SimpleCursorAdapter
93
cListeInfos.requery();
Cela relance le SELECT et met jour l'adapter,
donc la liste affiche.
95
97
Affichage du menu
Dfinition du menu
99
Raction au menu
100
101
SaisieInfoActivity
onActivityResult
finish();
102
Classe SaisieInfoActivity
Nom = SaisieInfoActivity
Superclasse = android.app.Activity
On va:
</LinearLayout>
104
Voici le dbut
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.saisie);
105
L'entte de la classe:
import android.view.View.OnClickListener;
public class SaisieInfoActivity extends Activity
implements OnClickListener {
findViewById(R.id.btnok).setOnClickListener(this);
Le listener:
@Override public void onClick(View v) {
// lire le texte et l'ajouter dans la base...
}
106
Quitter l'activit:
finish();
107
109
110
En 2D:
111
112
C'est parti !
Nom = TutoAndroidDessin
Package = fr.iutlan.tutodessin
Activit = TutoAndroidDessinActivity
113
<fr.iutlan.tutodessin.Dessin
android:id="@+id/dessin"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
114
}
115
116
Les Canvas
paint.setColor, setAntiAlias...
http://developer.android.com/reference/android/graphics/Paint.html
117
Mthode de dessin
Classe Cercle
Rajouter la mthode:
public void draw(Canvas canvas)
{
canvas.drawCircle(xc, yc, rayon, paint);
}
120
Liste de cercles
121
Mthode onDraw
126
Des questions ?
127