1. Déboguer les applications Android

1-1. L'attribut débogage du fichier AndroidManifest.xml

Si vous développez une application Android, vous pouvez la déboguer avec Eclipse. Pour autoriser le débogage sur un vrai périphérique Android, vous devez ajouter la valeur « android:debuggable="true" » pour l'application dans votre fichier AndroidManifest.xml. L'outil ADT positionne automatiquement cette valeur lors de la construction en mode debug dans la constante DEBUG de la classe BuildConfig. Cette classe est automatiquement mise à jour par ADT.

1-2. Mettre le débogage lors de l'exécution dans Eclipse

La Java Machine (JVM) demande à ce que vous lanciez un programme Java en mode débogage pour le déboguer. Android permet que vous mettiez le mode débogage pour une application lors de son exécution avec le bouton « Debug » dans la vue des périphériques DDMS.

Après avoir autorisé le mode débogage dans la vue, la prochaine fois qu'un point d'arrêt est rencontré, Eclipse vous autorise à déboguer le processus.

2. Le débogueur Eclipse

Les applications Android peuvent être déboguées de la même manière que les applications Java. Voir le tutoriel de débogage Eclipse pour plus de détails.

3. Exercice : déboguons

3-1. Accéder au code source Android

Vérifiez que vous pouvez accéder au code source de votre système Android à l'aide de l'IDE Eclipse.

3-2. Créer un projet de test

Créez une application Android avec un paquetage de haut niveau appelé com.vogella.android.debugging.listview.

Implémentez l'adaptateur suivant pour votre ListView.

 
Sélectionnez
package com.vogella.android.debugging.listview;

import java.util.Collections;
import java.util.List;

import android.content.Context;
import android.content.res.Resources;
import android.os.Debug;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class MyArrayAdapter extends ArrayAdapter<String> {

  private List<String> values;
  private Context context;

  public MyArrayAdapter(Context context, List<String> values) {
    super(context, android.R.layout.simple_list_item_1);
    this.context = context;
    this.values = values;
  }

  @Override
  public View getView(int position, View convertView, ViewGroup parent) 
    // Ensure sorted values
    LayoutInflater inflater = (LayoutInflater) context
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View view = inflater.inflate(android.R.layout.simple_list_item_1, parent, false);
    TextView textView = (TextView) view.findViewById(android.R.id.text1);
    textView.setText(values.get(position));
    return view;
  }
} 
Implement a ListView in the activity which shows 1000 random generated strings. 
package com.vogella.android.debugging.listview;

import java.math.BigInteger;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.List;

import android.app.ListActivity;
import android.os.Bundle;

public class MainActivity extends ListActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    List<String> list = createValues();
    MyArrayAdapter adapter = new MyArrayAdapter(this, list);
    setListAdapter(adapter);
  }

  private static List<String> createValues() {
    SecureRandom random = new SecureRandom();
    List<String> list = new ArrayList<String>();
    for (int i = 0; i < 1000; i++) {
      String string = new BigInteger(130, random).toString(32);
      list.add(string);
    }
    return list;
  }

} 

3-3. Déboguez votre application

Exécutez votre application. La liste n'est pas affichée. Déboguez la méthode super() appelée dans l'adaptateur de votre liste pour en trouver la raison.

4. Merci

Vous pouvez faire un don à Lars Vogel sur la page de l'article original.

5. Questions et discussions

Si vous trouvez des erreurs dans ce tutoriel, s'il vous plait informez-moi (voir en haut de la page). Veuillez noter qu'en raison du volume élevé de retours que je reçois, je ne peux pas répondre aux questions concernant votre application. Assurez-vous d'avoir lu la FAQ vogella, je ne réponds pas non plus aux questions traitées dans la FAQ.

6. Liens et littérature

6-1. Code source

6-2. Ressources Android

6-3. Ressources vogella

7. Remerciements Developpez

Vous pouvez retrouver l'article original ici : Debugging Android applications. Nous remercions Lars Vogel qui nous a aimablement autorisés à traduire et héberger ses articles.

Nos remerciements à ClaudeLELOUP pour sa relecture orthographique.

N'hésitez pas à commenter cet article ! Commentez Donner une note à l´article (5)