Op je pad om Android-ontwikkeling te leren, zul je zeker een commandoregel-tool tegenkomen die wordt gebruikt voor foutopsporing met de naam ADB (Android Debug Bridge). Lees verder voor meer informatie over wat u allemaal kunt doen met deze kerntool die alle Android-ontwikkelaars gemeenschappelijk hebben.
Deze tutorial is voor de Java-ontwikkelaar net begonnen met het leren van Android, maar hij is bekend met Eclipse en heeft de Android SDK en Android Developer Plugin voor Eclipse geïnstalleerd. Lezers moeten ook bekend zijn met de opdrachtregel. Als u nog niet bent voorbereid, raadpleegt u de vorige zelfstudies in deze serie.
De ADB-tool wordt gestart vanaf de opdrachtregel.
Typ achter de opdrachtprompt:
adb
Hiermee wordt ADB uitgevoerd en wordt een lijst met een aantal opdrachten weergegeven.
Als je dat doet niet zie de lijst met opdrachten, ga terug en controleer uw installatie- en omgevingspadinstellingen, zoals beschreven in eerdere zelfstudies. Het kan zijn dat u het ADB-programma hebt geïnstalleerd, maar als de PATH-omgevingsvariabele van uw shell niet correct is geconfigureerd, moet u het volledige pad naar ADB op de terminal typen om het programma te starten. Gedaan? Goed.
Dus terug naar die lijst met opdrachten. De ADB-tool heeft twee doelen. De eerste is om veel van de andere Android-tools te laten communiceren met apparaten en emulators. De tweede is om u, de ontwikkelaar, in staat te stellen met apparaten en emulators te praten door verschillende opdrachten handmatig uit te voeren.
ADB-opdrachten zijn er in twee vormen. Eén vorm van opdracht die u rechtstreeks vanuit ADB uitvoert. Een andere vorm van commando, die niet direct ADB is, maar gewoonlijk wordt gedaan via ADB, wordt gedaan door de opdracht "adb shell".
Voordat u verder gaat, moet u een emulatorinstantie of een Android-apparaat laten aansluiten op uw ontwikkelmachine. Als u nu de opdracht ADB-apparaten gebruikt, moet dit alle gekoppelde apparaten of emulatie-instanties vermelden:
adb-apparaten
Je zou zoiets als dit moeten zien:
Als dit niet het geval is, controleert u of uw emulator wordt uitgevoerd of start u de ADB-server opnieuw.
Om de ADB-server opnieuw te starten, volgt hier een andere opdracht:
adb stop-server adb start-server
Als je er klaar voor bent, ga je verder. We zullen vele opdrachten behandelen, in willekeurige volgorde.
Hier volgen verschillende opdrachten die rechtstreeks via ADB worden uitgevoerd. Dit zal worden gevolgd door verschillende commando's die eerst een shell moeten openen.
U kunt bestanden van en naar een aangesloten apparaat kopiëren met de ADB-push- en ADB-pull-opdrachten.
adb pushadb pull
Deze opdrachten zijn erg handig voor zaken als het vernieuwen van XML-voorkeurenbestanden voor uw app tijdens het testen en dergelijke.
U kunt ADB gebruiken om apps (apks) vanaf uw apparaten te installeren of te verwijderen. Gebruik de opdracht install om een Android-pakketbestand te installeren /
adb installeren
Op dezelfde manier kunt u een bestaande app verwijderen op basis van de pakketnaam.
adb verwijderen
Mogelijk moet u apps de-installeren als u zich verplaatst tussen ontwikkelmachines die niet dezelfde signeersleutel voor de app delen. Het is ook een snelle manier om een apparaat op te ruimen of op te laden zonder de Eclipse en de ADT-plug-in te hoeven gebruiken.
U kunt een back-up maken van de inhoud van een apparaat en deze herstellen. Dit heeft beperkingen voor apparaten die niet zijn geroot.
adb backup adb restore
Zie 'adb help' voor alle opties voor back-up en herstel. Dit kan handig zijn om app-gegevens tijdens het testen op te slaan en deze gegevens vervolgens eenvoudig te herstellen voor herhalingstests.
U kunt een apparaat normaal opstarten, in de bootloader of in de herstelmodus.
adb reboot adb reboot herstel adb reboot bootloader
In onze ervaring zijn deze niet geschikt voor de emulator. Er zijn echter tijden dat Android-apparaten in de war raken en een harde reboot nodig hebben.
De ADB-tool heeft een shell-interface. Om shell-opdrachten te geven, moet je eerst deze interface starten door adb-shell te typen:
adb shell
Als je eenmaal bent gerend, zit je in een bash-omgeving. U kunt bash-opdrachten uitvoeren, zoals df om vrije schijfruimte te tonen, uptime om te zien hoelang het apparaat is uitgevoerd of afsluiten om de shell-interface te verlaten:
Als je niet bekend bent met Linux, heb je het misschien moeilijker om in de shell rond te komen. Er zijn talloze gidsen online die je zullen helpen bij bash-commando's zoals ls, cp, cd, enzovoort.
Hier zijn een aantal speciale commando's die je kunt uitvoeren in de shell. Niet alle ADB-shell-opdrachten werken op fysieke apparaten of emulators.
U kunt de opdracht logcat gebruiken om de uitvoer van logboeken te bekijken, net als in Eclipse:
adb shell logcat --help logcat -t 5
Er zijn veel opties beschikbaar met de tool LogCat. Standaard wordt de uitvoer in realtime weergegeven, net zoals bij de weergave met Eclipse. Een leuke eigenschap is dat je de uitvoer naar een bestand kunt sturen met de optie -f.
De bmgr-tool is de back-upbeheerder. U kunt deze tool gebruiken om back-up- en herstelbewerkingen op appniveau te activeren. Uw app moet back-ups ondersteunen om dit nuttig te laten zijn.
U kunt de monkey-tool gebruiken om uw apps te testen. Dit simuleert verschillende invoergebeurtenissen van gebruikers, net zoals een aap of een peuter op een toetsenbord bonst. Gebruik dit voor stresstests.
De monkey-tool kan ook worden gescript en ondersteunt herhaalbare streams van gebeurtenissen via de schakeloptie -s, zodat tests kunnen worden gecontroleerd en herhaald.
U kunt ook sqlite-opdrachten uitvoeren en met toepassingsdatabases werken via de adb-shell. U hebt lees- / schrijftoegang nodig tot de databases die u wilt inspecteren of wijzigen (met andere woorden, uw eigen apps, niet anderen).
U hebt veel gezien van wat ADB voor u kan doen. Van rondlopen over het bestandssysteem tot het opnieuw opstarten van apparaten tot het uitvoeren van SQL Lite-opdrachten, er is niet veel wat u niet kunt doen. Er is ook veel meer dan wat we hebben behandeld, waaronder het beheren van netwerkverbindingen, poort doorsturen, debug dumps en veel shell-commando's om je bezig te houden. Raadpleeg de officiële ADB-documentatie voor een volledige lijst met functies
Je bent goed op weg om Android te ontwikkelen. Met welke soorten apps kijk je uit naar het maken van video's? Laat het ons weten in de comments!
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.