Cet exemple montre comment utiliser le fragment de sonde FragmentAtClassScope.
Dans cet exemple, une sonde compte le nombre d'instances créées de toutes les classes dans les packages correspondant au masque générique "com.sample*" et signale la création de chaque centième instance.
Le "fragment à la portée de classe" déclare un compteur qui apparaît comme zone statique de type int dans la classe où le fragment d'entrée est compilé. Le fragment déclare également un initialiseur statique pour la classe de fragment qui signale le chargement de la sonde. Les éléments dans la section fragmentAtClassScope sont générés dans la classe de la sonde, et non dans celles auxquelles elle s'applique. Pour insérer des zones statiques ou une logique d'initialiseur statique dans des classes auxquelles la sonde s'applique, utilisez les objets staticField et staticInitializer.
Pour employer cet exemple de code, modifiez package="com.sample*" dans l'objet cible afin de faire référence à un nom de package réel.
Pour utiliser les caractères & et < dans XML, vous devez indiquer les entités de caractères & et <, comme illustré dans l'exemple :
<?xml version="1.0" encoding="ASCII"?> <probekit> <probe> <fragmentAtClassScope> static public int entry_counter = 0; static int counter = 0; static { System.out.println("[exemple fragmentAtClassScope chargé.]"); } </fragmentAtClassScope> <target type="include" package="com.sample*" method="<init>" /> <target type="exclude" package="*" /> <fragment type="entry"> <code> ++counter; if (counter % 100 == 0) System.out.println("[" + counter + " instances des classes dans le package com.sample jusqu'à maintenant]"); </code> </fragment> </probe> </probekit>
Rubrique parent :
Exemples Probekit
Référence associée
Objet de sonde FragmentAtClassScope