SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
ADB: Um ator invisível
Eduardo Carrara Felipe Pedroso
Agenda
• O que é?
• Como funciona?
• Comandos básicos
• Shell
• Sem os fios!
O que é?
• ADB = Android Debug Bridge
• Ferramenta de linha de comando que permite
a comunicação com dispositivos ou instâncias
do emulador Android
• É um aplicativo client-server que roda no
dispositivo e na máquina
Comandos Básicos
• Sintaxe: “adb <comando>”
– Para escolher o device/emulador:“adb –s <serialNumber> <comando>”
• Comandos básicos:
– start-server / kill-server → inicia/finaliza o server do adb
– devices → lista os dispositivos conectados
– logcat → exibe o logcat (sistema de logs)
– install / uninstall→ Instala ou desinstala um APK
– push / pull → copiar arquivos entre device e PC
– reboot → reinicia o dispositivo
Shell
Devs just wanna have fun
am / pm
am → Activity Manager
● Permite enviar comandos para executar ações de sistema.
● Iniciar Activities, Serviços, Broadcasts etc.
adb shell am start -a android.intent.action.VIEW
pm → Package Manager
● Possibilita ações e requisições relacionadas aos pacotes das
aplicações.
● Listar pacotes, permissões, usuários, etc.
adb shell pm list packages
dumpsys
● ‘Dump’ das informações sobre os serviços do
sistema (meminfo, battery, cpuinfo, wifi, etc)
adb shell dumpsys <service_name>
● Para listar quais serviços estão disponíveis:
adb shell service list
sqlite3
● Permite explorar os arquivos .db do
sistema/apps através de comandos SQL
● Para explorar o database de contatos:
cd data/data/com.android.providers.contacts
sqlite3 databases/contacts2.db
input
● Permite simular eventos de input no
dispositivo (touch, teclas, dpad, etc)
input [<source>] <command> [<args>]
● Para fazer um swipe na tela:
adb shell input swipe 400 200 50 200
getevent / sendevent
● getevent: provê informações sobre
dispositivos de input e monitorar os eventos
direto no kernel
adb shell "getevent -lt /dev/input/event2"
● sendevent: permite simular os eventos, mas
no mesmo “protocolo” do getevent
Outros comandos
● getprop/setprop
● service
● bootanimation
● start/stop
● screenrecord
● screencap
Wireless ADB
Olha mãe, sem os fios!
Wireless ADB
● Conecte seu device ao cabo USB
● Habilite o modo de debug
adb tcpip <porta>
● Desconecte o cabo
adb connect <ip>:<porta>
● Para voltar à conexão original:
adb usb
Dúvidas?
• Eduardo Carrara
– @DuCarrara
– facebook.com/ducarrara
– br.linkedin.com/in/eduardocarrara
• Felipe Pedroso
– @felipeapedroso
– facebook.com/felipe.a.pedroso
– br.linkedin.com/in/felipeapedroso
Muito obrigado!
Referências
• http://developer.android.
com/tools/help/adb.html
• https://source.android.com/

Más contenido relacionado

La actualidad más candente

Html5 storage api
Html5 storage apiHtml5 storage api
Html5 storage apiSuissa
 
PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demaisPHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demaisFabrízio Mello
 
Oficina shell
Oficina shellOficina shell
Oficina shellapsegundo
 
A Biblioteca cURL
A Biblioteca cURLA Biblioteca cURL
A Biblioteca cURLricardophp
 
Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Elton Minetto
 
JS Experience 2017 - WebAssembly na Prática
JS Experience 2017 - WebAssembly na PráticaJS Experience 2017 - WebAssembly na Prática
JS Experience 2017 - WebAssembly na PráticaiMasters
 
Stored Procedures com PostgreSQL: porque usar.
Stored Procedures com PostgreSQL:  porque usar.Stored Procedures com PostgreSQL:  porque usar.
Stored Procedures com PostgreSQL: porque usar.Atmos Maciel
 
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha CamaradaPhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha CamaradaHenrique Gogó
 
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2Thyago Maia
 

La actualidad más candente (14)

01 notações iniciais
01   notações iniciais01   notações iniciais
01 notações iniciais
 
Html5 storage api
Html5 storage apiHtml5 storage api
Html5 storage api
 
Realtime com node.js e socket.io
Realtime com node.js e socket.ioRealtime com node.js e socket.io
Realtime com node.js e socket.io
 
Crud
CrudCrud
Crud
 
Gulp
GulpGulp
Gulp
 
PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demaisPHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
 
Oficina shell
Oficina shellOficina shell
Oficina shell
 
A Biblioteca cURL
A Biblioteca cURLA Biblioteca cURL
A Biblioteca cURL
 
Aula de Node
Aula de NodeAula de Node
Aula de Node
 
Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Introdução ao Zend Framework 2
Introdução ao Zend Framework 2
 
JS Experience 2017 - WebAssembly na Prática
JS Experience 2017 - WebAssembly na PráticaJS Experience 2017 - WebAssembly na Prática
JS Experience 2017 - WebAssembly na Prática
 
Stored Procedures com PostgreSQL: porque usar.
Stored Procedures com PostgreSQL:  porque usar.Stored Procedures com PostgreSQL:  porque usar.
Stored Procedures com PostgreSQL: porque usar.
 
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha CamaradaPhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
 
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 2
 

Similar a ADB: O ator invisível do Android

Palestra Teched Brasil 2010 - Sessão SRV307 - Dicas e Truques de Windows Serv...
Palestra Teched Brasil 2010 - Sessão SRV307 - Dicas e Truques de Windows Serv...Palestra Teched Brasil 2010 - Sessão SRV307 - Dicas e Truques de Windows Serv...
Palestra Teched Brasil 2010 - Sessão SRV307 - Dicas e Truques de Windows Serv...GBanin
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2Jose Berardo
 
Alta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdAlta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdFrederico Madeira
 
Systemd: A nova fronteira - João Avelino Bellomo Filho
Systemd: A nova fronteira - João Avelino Bellomo FilhoSystemd: A nova fronteira - João Avelino Bellomo Filho
Systemd: A nova fronteira - João Avelino Bellomo FilhoTchelinux
 
Introdução ao J2ME Conexão Java 2004
Introdução ao J2ME Conexão Java 2004Introdução ao J2ME Conexão Java 2004
Introdução ao J2ME Conexão Java 2004elliando dias
 
Supervisão e Monitorização
Supervisão e MonitorizaçãoSupervisão e Monitorização
Supervisão e MonitorizaçãoSAPO Sessions
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo realEvandro Silvestre
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linuxelliando dias
 
Lista 221 Comandos Executar do Windows.docx
Lista 221 Comandos Executar do Windows.docxLista 221 Comandos Executar do Windows.docx
Lista 221 Comandos Executar do Windows.docxSLVIOPAIVADOSANTOSSI
 
Integração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControlIntegração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControlDiego Tremper
 
Ferramentas GPL para a segurança de Redes de Computadores - Vanderlei Pollon
Ferramentas GPL para a segurança de Redes de Computadores - Vanderlei PollonFerramentas GPL para a segurança de Redes de Computadores - Vanderlei Pollon
Ferramentas GPL para a segurança de Redes de Computadores - Vanderlei PollonTchelinux
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlDiego Tremper
 

Similar a ADB: O ator invisível do Android (20)

kerneldriver01
kerneldriver01kerneldriver01
kerneldriver01
 
Palestra Teched Brasil 2010 - Sessão SRV307 - Dicas e Truques de Windows Serv...
Palestra Teched Brasil 2010 - Sessão SRV307 - Dicas e Truques de Windows Serv...Palestra Teched Brasil 2010 - Sessão SRV307 - Dicas e Truques de Windows Serv...
Palestra Teched Brasil 2010 - Sessão SRV307 - Dicas e Truques de Windows Serv...
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2
 
Alta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdAlta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e Drbd
 
Systemd: A nova fronteira - João Avelino Bellomo Filho
Systemd: A nova fronteira - João Avelino Bellomo FilhoSystemd: A nova fronteira - João Avelino Bellomo Filho
Systemd: A nova fronteira - João Avelino Bellomo Filho
 
Introdução ao J2ME Conexão Java 2004
Introdução ao J2ME Conexão Java 2004Introdução ao J2ME Conexão Java 2004
Introdução ao J2ME Conexão Java 2004
 
Supervisão e Monitorização
Supervisão e MonitorizaçãoSupervisão e Monitorização
Supervisão e Monitorização
 
Melhorando o windows XP.001
Melhorando o windows XP.001Melhorando o windows XP.001
Melhorando o windows XP.001
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
Comandos Linux Parte 2
Comandos Linux Parte 2Comandos Linux Parte 2
Comandos Linux Parte 2
 
Aprendendo linux
Aprendendo linuxAprendendo linux
Aprendendo linux
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linux
 
Lista 221 Comandos Executar do Windows.docx
Lista 221 Comandos Executar do Windows.docxLista 221 Comandos Executar do Windows.docx
Lista 221 Comandos Executar do Windows.docx
 
Minicurso GNU/Linux
Minicurso GNU/LinuxMinicurso GNU/Linux
Minicurso GNU/Linux
 
Integração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControlIntegração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControl
 
IntroduçãO Ao Linux
IntroduçãO Ao LinuxIntroduçãO Ao Linux
IntroduçãO Ao Linux
 
Ferramentas GPL para a segurança de Redes de Computadores - Vanderlei Pollon
Ferramentas GPL para a segurança de Redes de Computadores - Vanderlei PollonFerramentas GPL para a segurança de Redes de Computadores - Vanderlei Pollon
Ferramentas GPL para a segurança de Redes de Computadores - Vanderlei Pollon
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControl
 
Cygwin
CygwinCygwin
Cygwin
 
Ruby On Rails Regis
Ruby On Rails RegisRuby On Rails Regis
Ruby On Rails Regis
 

Más de Felipe Pedroso

Improved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis PlatformImproved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis PlatformFelipe Pedroso
 
Aprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaAprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaFelipe Pedroso
 
Machine Learning em Apps Android com ML Kit
Machine Learning em Apps Android com ML KitMachine Learning em Apps Android com ML Kit
Machine Learning em Apps Android com ML KitFelipe Pedroso
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorFelipe Pedroso
 
Construindo Chatbots em Node.js
Construindo Chatbots em Node.jsConstruindo Chatbots em Node.js
Construindo Chatbots em Node.jsFelipe Pedroso
 
Microsoft Bot Framework
Microsoft Bot FrameworkMicrosoft Bot Framework
Microsoft Bot FrameworkFelipe Pedroso
 
Developer Relations 101
Developer Relations 101Developer Relations 101
Developer Relations 101Felipe Pedroso
 
Simplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o RetrofitSimplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o RetrofitFelipe Pedroso
 
Introdução ao Retrofit
Introdução ao Retrofit Introdução ao Retrofit
Introdução ao Retrofit Felipe Pedroso
 
Assistive Context-Aware Toolkit (Portuguese)
Assistive Context-Aware Toolkit (Portuguese)Assistive Context-Aware Toolkit (Portuguese)
Assistive Context-Aware Toolkit (Portuguese)Felipe Pedroso
 
Assistive Context-Aware Toolkit (English)
Assistive Context-Aware Toolkit (English)Assistive Context-Aware Toolkit (English)
Assistive Context-Aware Toolkit (English)Felipe Pedroso
 
Conectando Coisas com IFTTT
Conectando Coisas com IFTTTConectando Coisas com IFTTT
Conectando Coisas com IFTTTFelipe Pedroso
 
Minicurso RealSense SDK
Minicurso RealSense SDKMinicurso RealSense SDK
Minicurso RealSense SDKFelipe Pedroso
 
Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"Felipe Pedroso
 
Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8Felipe Pedroso
 
Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"Felipe Pedroso
 

Más de Felipe Pedroso (20)

Improved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis PlatformImproved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis Platform
 
Aprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaAprendendo Kotlin na Prática
Aprendendo Kotlin na Prática
 
Machine Learning em Apps Android com ML Kit
Machine Learning em Apps Android com ML KitMachine Learning em Apps Android com ML Kit
Machine Learning em Apps Android com ML Kit
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
 
Construindo Chatbots em Node.js
Construindo Chatbots em Node.jsConstruindo Chatbots em Node.js
Construindo Chatbots em Node.js
 
Testes A/B
Testes A/BTestes A/B
Testes A/B
 
Microsoft Bot Framework
Microsoft Bot FrameworkMicrosoft Bot Framework
Microsoft Bot Framework
 
Análise SWOT
Análise SWOTAnálise SWOT
Análise SWOT
 
Developer Relations 101
Developer Relations 101Developer Relations 101
Developer Relations 101
 
Simplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o RetrofitSimplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o Retrofit
 
Introdução ao Retrofit
Introdução ao Retrofit Introdução ao Retrofit
Introdução ao Retrofit
 
Assistive Context-Aware Toolkit (Portuguese)
Assistive Context-Aware Toolkit (Portuguese)Assistive Context-Aware Toolkit (Portuguese)
Assistive Context-Aware Toolkit (Portuguese)
 
Assistive Context-Aware Toolkit (English)
Assistive Context-Aware Toolkit (English)Assistive Context-Aware Toolkit (English)
Assistive Context-Aware Toolkit (English)
 
Conectando Coisas com IFTTT
Conectando Coisas com IFTTTConectando Coisas com IFTTT
Conectando Coisas com IFTTT
 
Minicurso RealSense SDK
Minicurso RealSense SDKMinicurso RealSense SDK
Minicurso RealSense SDK
 
RealSense SDK
RealSense SDKRealSense SDK
RealSense SDK
 
Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"
 
RealSense SDK
RealSense SDKRealSense SDK
RealSense SDK
 
Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8
 
Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"
 

ADB: O ator invisível do Android

  • 1. ADB: Um ator invisível Eduardo Carrara Felipe Pedroso
  • 2. Agenda • O que é? • Como funciona? • Comandos básicos • Shell • Sem os fios!
  • 3. O que é? • ADB = Android Debug Bridge • Ferramenta de linha de comando que permite a comunicação com dispositivos ou instâncias do emulador Android • É um aplicativo client-server que roda no dispositivo e na máquina
  • 4. Comandos Básicos • Sintaxe: “adb <comando>” – Para escolher o device/emulador:“adb –s <serialNumber> <comando>” • Comandos básicos: – start-server / kill-server → inicia/finaliza o server do adb – devices → lista os dispositivos conectados – logcat → exibe o logcat (sistema de logs) – install / uninstall→ Instala ou desinstala um APK – push / pull → copiar arquivos entre device e PC – reboot → reinicia o dispositivo
  • 6. am / pm am → Activity Manager ● Permite enviar comandos para executar ações de sistema. ● Iniciar Activities, Serviços, Broadcasts etc. adb shell am start -a android.intent.action.VIEW pm → Package Manager ● Possibilita ações e requisições relacionadas aos pacotes das aplicações. ● Listar pacotes, permissões, usuários, etc. adb shell pm list packages
  • 7. dumpsys ● ‘Dump’ das informações sobre os serviços do sistema (meminfo, battery, cpuinfo, wifi, etc) adb shell dumpsys <service_name> ● Para listar quais serviços estão disponíveis: adb shell service list
  • 8. sqlite3 ● Permite explorar os arquivos .db do sistema/apps através de comandos SQL ● Para explorar o database de contatos: cd data/data/com.android.providers.contacts sqlite3 databases/contacts2.db
  • 9. input ● Permite simular eventos de input no dispositivo (touch, teclas, dpad, etc) input [<source>] <command> [<args>] ● Para fazer um swipe na tela: adb shell input swipe 400 200 50 200
  • 10. getevent / sendevent ● getevent: provê informações sobre dispositivos de input e monitorar os eventos direto no kernel adb shell "getevent -lt /dev/input/event2" ● sendevent: permite simular os eventos, mas no mesmo “protocolo” do getevent
  • 11. Outros comandos ● getprop/setprop ● service ● bootanimation ● start/stop ● screenrecord ● screencap
  • 12. Wireless ADB Olha mãe, sem os fios!
  • 13. Wireless ADB ● Conecte seu device ao cabo USB ● Habilite o modo de debug adb tcpip <porta> ● Desconecte o cabo adb connect <ip>:<porta> ● Para voltar à conexão original: adb usb
  • 14. Dúvidas? • Eduardo Carrara – @DuCarrara – facebook.com/ducarrara – br.linkedin.com/in/eduardocarrara • Felipe Pedroso – @felipeapedroso – facebook.com/felipe.a.pedroso – br.linkedin.com/in/felipeapedroso