Android App Debugging

In deze zelfstudie zullen we de kern van de foutopsporingstools verkennen waar nieuwe ontwikkelaars van Android-apps op moeten letten om hun apps te maken en te perfectioneren.


Deel 0: Aan de slag

Deze serie Android-zelfstudies is bedoeld om u te helpen de vaardigheden en het vertrouwen op te bouwen die nodig zijn om hoogwaardige Android-apps te bouwen. Deze tutorial is voor de Java-ontwikkelaar net begonnen met het leren ontwikkelen van Android-apps, die enigszins bekend is met Eclipse, en die de Android SDK en de Android Developer Plugin voor Eclipse heeft geïnstalleerd. Ook zou u moeten weten hoe u een eenvoudige Android-applicatie kunt maken (Hallo wereld is voldoende) om deze tutorial te voltooien. Als u niet bent voorbereid, raadpleegt u de vorige zelfstudies in deze serie.


Deel 1:
Foutopsporingsconfiguraties maken in Eclipse

In de zelfstudie met Android-voorbeeldtoepassingen in deze serie, hebt u geleerd hoe u een uitvoeringsconfiguratie in Eclipse kunt maken. Foutopsporingsconfiguraties worden op dezelfde manier gemaakt, maar worden gebruikt om de opties voor het starten en debuggen van applicaties te configureren.

Als u een foutopsporingsconfiguratie voor uw toepassing binnen Eclipse wilt maken, kiest u Uitvoeren, configuraties foutopsporing ... .

Dubbelklik op Android-applicatie (of klik met de rechtermuisknop en kies Nieuw). Kies op het eerste tabblad de knop Bladeren ..., kies het Android-project waarvoor u fouten wilt opsporen en klik vervolgens op OK.

Vul nu het veld Naam in. Meestal noemen we onze foutopsporingsconfiguraties met de projectnaam om verwarring te voorkomen, maar u kunt het een naam geven die u maar wilt.

Controleer op het tabblad Doel het keuzerondje voor 'Altijd vragen om apparaat te kiezen'.

Klik nu op de knop Foutopsporing. U zou het dialoogvenster Android Device Chooser moeten krijgen. Dit dialoogvenster geeft alle momenteel verbonden Android-apparaten en actieve emulatorinstanties in het bovenste gedeelte weer, evenals de mogelijkheid om een ​​nieuwe emulatorinstance te starten via een compatibele AVD-configuratie on-the-fly.

Kies de emulator die je al hebt en klik op de knop OK. Na een moment wordt uw app gestart op de emulator of het apparaat en ziet u een dialoogvenster met de tekst 'Wachten op foutopsporing' terwijl het wordt bevestigd.


Deel 2:
Verkenning van het Eclipse Debug Perspective

Zodra uw toepassing in de emulator of op een apparaat wordt uitgevoerd, kunt u beginnen met het debuggen ervan. De meeste basisfuncties voor foutopsporing van Eclipse en de invoegtoepassing ADT worden gecombineerd in het Debug-perspectief voor gebruiksgemak.

Het Debug-perspectief wordt vaak automatisch geopend wanneer u begint met het debuggen van een Android-app, maar als dat niet het geval is, kunt u er altijd naar overschakelen door op het Debug-perspectief in de rechterbovenhoek van Eclipse te klikken of door naar Venster, Open perspectief, Debug.

Het Debug-perspectief heeft verschillende ruiten met informatie. Je kunt ze natuurlijk verplaatsen als je niet bevalt hoe ze zijn ingesteld.

U hebt een paneel in de linkerbovenhoek genaamd Debug, dat uw toepassing, threads toont. Hier vindt u de werkbalk voor foutopsporing waarmee u de foutopsporing kunt koppelen en loskoppelen en de code kunt doorlopen.

In de rechterhoek hebt u een paneel waarmee u variabelen kunt inspecteren en onderbrekingspunten kunt beheren. Onderbrekingspunten zijn locaties in uw code die u markeert waar u wilt dat uw foutopsporing de uitvoering pauzeert, zodat u methodisch stap voor stap door uw code kunt stappen en kunt achterhalen wat er aan de hand is.

Er bevindt zich een paneel in het Debug-perspectief dat de code weergeeft die momenteel wordt uitgevoerd.

Aan de onderkant van het Debug-perspectief, hebt u twee diagnostische vensters: het LogCat-venster dat logboekuitvoer van de emulator of het apparaat toont, evenals het consolevenster dat console-uitvoer van hoger niveau van DDMS laat zien.


Deel 3:
Door code stappen in Eclipse

Laten we een kort voorbeeld van debugging doornemen met Eclipse met behulp van de applicatie die u zojuist heeft gelanceerd.

Ten eerste moeten we ons voorbereiden omdat er niets mis is met onze code en de Debugger bij een probleem niet automatisch is gestopt. Schakel over naar het Java-perspectief door op de Java-knop te klikken in de rechterbovenhoek van Eclipse. Dubbelklik op het activiteitsklassenbestand dat aan uw toepassing is gekoppeld om het te openen en schakel vervolgens terug naar het Debug-perspectief en u ziet nu dat het bestand wordt weergegeven in het middelste deelvenster van het Debug-perspectief. Ok, nu zijn we klaar om onze code te doorlopen.

Laten we eerst een breekpunt in de code instellen. Er zijn verschillende manieren om dit te doen. Ik vind het leuk om de regel te vinden waarop ik een onderbrekingspunt wil instellen en klik met de rechtermuisknop op de verticale blauwe band links van de coderegel en selecteer Onderbrekingspunt onderbreken in het menu of klik op de band zelf om een ​​onderbrekingspunt te maken, schakel het uit en verwijder het. U kunt ook op de regel klikken waar u een onderbrekingspunt op wilt en op Control-Shift-B drukken. Er verschijnt een klein vergrootglas naast de coderegel wanneer het breekpunt is ingesteld. Een goede plek om uw eerste breekpunt in te stellen, is de methode onCreate () van uw activiteit.

Nadat u uw onderbrekingspunt hebt ingesteld, start u de toepassing opnieuw in de foutopsporingsmodus met behulp van de configuratie voor foutopsporing. Je kunt dit doen vanuit Eclipse met behulp van het kleine foutpictogram op de werkbalk. Klik op de pijl-omlaag ernaast, kies de configuratie voor foutopsporing en deze wordt uitgevoerd. De foutopsporing zal bevestigen, uw toepassing zal starten en vervolgens stoppen bij uw breekpunt. U ziet een klein pijltje naast de regel met code die op het punt staat uit te voeren.

Nu kunt u uw code doorlopen met behulp van standaardfuncties voor foutopsporing. Deze functies zijn beschikbaar op de werkbalk van het deelvenster Foutopsporing of u kunt de sneltoetsen gebruiken die aan deze functies zijn gekoppeld.

De meest voorkomende foutopsporingsfuncties in Eclipse die u nodig hebt om door uw code te bladeren, zijn:

Stap in: Gebruik deze functie om dieper in uw code te gaan door naar de methodecode te gaan. Gebruik dit als u denkt dat de methode die u momenteel uitvoert foutopsporing vereist. Als deze methode goed is getest en u weet dat het het juiste resultaat oplevert, hoeft u er waarschijnlijk niet in te stappen, maar in plaats daarvan stap over naar de volgende coderegel op hetzelfde "niveau" als de vorige. Druk op F5 om de code in te gaan.

Overstappen: Gebruik deze functie om naar de volgende regel code op hetzelfde niveau als de vorige te gaan. Druk op F6 om naar de overstapcode te gaan.

Stap Terug: Gebruik deze functie als u zich in het midden van een methode begeeft en voorbij het gebied bent van de methode die u wilde inspecteren. De huidige methode wordt voltooid en u komt op de volgende regel te staan ​​nadat die methode is teruggekeerd, zodat u kunt blijven debuggen. Druk op F7 om terug te keren.

Hervatten: Klaar met deze kleine sessie debuggen en wilt u dat de app opnieuw begint (tot het volgende breekpunt is bereikt)? Gebruik vervolgens de functie Hervatten. Druk op F8 om door te gaan zonder te stappen.

Beëindigen: Klaar met deze kleine sessie debuggen en wilt u dat de app helemaal stopt met werken? Gebruik vervolgens de functie Terminate. Druk op Control-F2 om de uitvoering te beëindigen.


Deel 4:
Diagnostische logboeken bekijken met Logcat

Het loggen, of het afdrukken van diagnostische informatie vanuit uw code, kan een handige manier zijn om problemen te diagnosticeren, in het bijzonder raceomstandigheden of timing-gerelateerde problemen die niet gemakkelijk voorkomen wanneer u de code zorgvuldig doorloopt. In dit geval laat je je code gewoon doorlopen, maar je print alle informatie die je leuk vindt terwijl het draait. U kunt deze diagnostische informatie bekijken vanuit het LogCat-deelvenster van het Debug-perspectief. U kunt ook op verschillende andere manieren toegang krijgen tot Logcat-uitvoer, van de DDMS-tool, het DDMS-perspectief binnen Eclipse of het adb-opdrachtregelprogramma, bijvoorbeeld.

Het toevoegen van LogCat-logboekuitvoer aan uw toepassing is eenvoudig, maar u moet de Java-code van uw app wijzigen en opnieuw compileren. Logboekregistratie vertraagt ​​uw toepassing ook enigszins, dus u wilt logboekregistratie altijd eerst van uw toepassing verwijderen voordat u deze openbaar maakt. Meer informatie over Android-logboeken in Android Essentials: aanmelding van apps.


Conclusie

In deze zelfstudie leer je de basisprincipes van het debuggen van Android-apps met Eclipse en de ADT-plug-in. Je hebt geleerd hoe je Eclipse kunt navigeren in de foutopsporingsmodus, met behulp van het Debug-perspectief en hoe je door je code kunt stappen en Logcat-logging-uitvoer kunt bekijken. U hebt geleerd over foutopsporing op zowel emulators als apparaten. Je hebt nu een handvat voor de basisvaardigheden die vereist zijn om aan de slag te gaan met het ontwikkelen van echte Android-applicaties. Je bent goed op weg om Android te ontwikkelen. Met welke soorten apps kijk je uit naar het maken van video's? Welke voorbeeldapp was jouw favoriet? Laat het ons weten in de comments!

Over de Auteurs

Mobiele ontwikkelaars Lauren Darcey en Shane Conder hebben samen meerdere boeken geschreven over Android-ontwikkeling: een diepgaand programmeerboek getiteld Android Wireless Application Development (nu in zijn derde editie als set met twee volumes), Sams Teach Yourself Android Application Development in 24 uur, en Leren Android Application Programming voor de Kindle Fire: een praktische handleiding voor het bouwen van je eerste Android-applicatie. Wanneer ze niet schrijven, besteden ze hun tijd aan het ontwikkelen van mobiele software bij hun bedrijf en het leveren van consultingservices. Ze zijn te bereiken via e-mail naar [email protected], via hun blog op androidbook.blogspot.com, en op Twitter @androidwireless.

Meer hulp nodig bij het schrijven van Android-apps? Bekijk onze nieuwste boeken en bronnen!