Caso prefira, você encontrará todo esse material, em inglês, no site do Developer Android. A tradução e comentários dos materiais eu faço livremente para ajudar a comunidade que fala português.

segunda-feira, 18 de abril de 2011

Fazendo o Debugging de seus Apps no Smartphone - USB/Wi-Fi

O leitor Rogério Rodrigues (@rbrodrigues) fez uma excelente pergunta outro dia: como fazer o debugging de seus Apps no Smartphone. Bem, ao invés de responder apenas a ele, resolvi criar um post para que pudesse falar disso para todos.

Fiz uma pesquisa e vi que existem duas maneiras de se fazer o debug direto no smartphone. A primeira é a convencional, via cabo USB ligado ao PC onde o Eclipse está rodando. E a segunda, que achei muito bacana, é via Wi-Fi. Isso mesmo que você leu: Wi-Fi! O único senão é que seu smartphone terá de estar em modo root para que essa opção funcione.

Quando você escreve uma aplicação móvel é importante sempre testar a aplicação em um dispositivo real antes de lançá-lo no mercado. Isso acontece pois nem sempre a emulação é 100% fiel ao que acontece no dispositivo.

Você pode usar qualquer dispositivo Android como o seu ambiente para realizar debug e testar suas aplicações. As ferramentas incluídas no SDK fazem dessa tarefa algo fácil. Então, instalar e rodar suas aplicações a cada vez que precisar fazer o debug é tranquilo. Você poderá fazer a instalação de sua aplicação diretamente no Eclipse ou a partir de linha de comando com o ADB.

E o que é ADB?

Android Debug Bridge é uma ferramenta versátil que permite que você gerencie o estado de uma instância de emulação de um dispositivo Android. Dentro da nossa necessidade, será a interface que permitirá o Eclipse se comunicar com o dispositivo para que possa haver o debug no aparelho e não no PC.

Fazendo o debugging via cabo USB

Com um dispositivo Android, você terá de seguir os passos abaixo:

1) Declare sua aplicação como "debugável" no seu manifesto do Android de sua aplicação.

a) Para tal, abra o arquivo AndroidManifest.xml. Ele deverá se encontra no mesmo local que o mostrado abaixo:

b) Selecione a guia Application para que você vá para a tela onde fará a alteração.

c) Por fim, selecione o menu dropdown Debuggable e modifique para True.

2) Modifique a configuração USB Debugging do seu dispositivo. No dispositivo, vá até a tela HOME, pressione MENU e selecione Aplicativos > Desenvolvimento e depois certifique-se que a opção Depuração USB está marcada. Se houver a opção USB debugging notify, deixe-a marcada também.


3) Será necessário que você instale um driver USB para o ADB. Caso você tenha um ADP (Android Developer Phone) ou um Nexus One ou Nexus S, procure o driver nesse site. Caso tenha um outro aparelho, a partir da marca dele, pesquise os Drivers OEM USB aqui. No caso de você ter baixado o sofware oficial de gerenciamento de conteúdo do seu smartphone, é bem provável que os drivers OEM USB já estejam instalados.

4) Por fim, navegue via Prompt do DOS até a pasta onde o SDK do Android foi instalado (normalmente ele estará em c:\Program Files\Android\android-sdk\platform-tools\) e execute o comando adb devices. Se tudo tiver corrido bem, uma mensagem como a de baixo aparecerá mostrando que o sistema operacional reconhece que existe um dispositivo Android conectado a ele via USB.

5) Certo, mas e como devo fazer o debug? Simples. Com o seu projeto aberto, clique no botão mostrado na imagem abaixo e escolha Run Configurations.

 Uma janela se abrirá. Nela é que está o pulo do gato. Escolha o projeto na guia Android como mostrado na imagem abaixo e depois vá para a guia target.

Na guia target escolha a opção Manual ao invés de Automatic.
Por fim, já que o seu dispositivo está conectado ao PC, basta escolhê-lo e clicar em OK para que o APK seja enviado para ele e seja rodado. Caso existam pontos de debug, o Android enviará de volta para o ADB que está conectado ao Eclipse e você poderá ver o que está acontecendo por trás. Percebam que a imagem diz que eu deveria escolher um dispositivo compatível com o Android 3.0. É que quando criei esse projeto, eu o fiz para mostrar o emulador do Android Honeycomb 3.0. Mesmo assim, ele funcionará no meu Froyo 2.2.1.

Olha só a tela do HelloAndroid rodando no meu Xperia X10 e ele também presente no meu Launcher.



Fazendo o Debugging de seus Apps no Smartphone - Wi-Fi

Basicamente o processo é o mesmo. A única diferença é que ao invés de conectarmos ao smartphone via cabo USB, o faremos via Wi-Fi. Para isso, é necessário que seu smartphone esteja em modo root.  Estar em modo root é fazer com que as aplicações que rodam no smartphone possam elevar seu nível de acesso para su (super user). Infelizmente esse tópico de como fazer o seu aparelho ficar em modo root está além do escopo do post, dado que existem inúmeros aparelhos de diversos fabricantes diferentes no mercado.

Quando conseguir fazer com que o aparelho esteja nesse modo root, instale um software a partir do Android Market chamado adbWireless. Basicamente ele permite que se faça um acesso para o aparelho via Wi-Fi, como se fosse via cabo USB.

Desplugue o cabo USB do seu smartphone.

Uma vez instalado o software, ele trará uma tela com o endereço de acesso ao aparelho, como poderá ver na imagem abaixo:


Abra novamente o prompt do DOS com direitos de Administrador (caso você esteja no Windows 7 ou Vista) e vá até a pasta do SDK do Android (normalmente instalado em c:\Program Files\Android\android-sdk\platform-tools\).

Execute os seguintes comandos:
  • abd devices
    Provavelmente nenhum dispositivo estará sendo mostrado, dado que você desplugou o cabo USB do PC.
  • adb connect 192.168.0.105:5555
    O adb tentará achar o dispositivo no endereço e porta fornecidos. Esse endereço é relativo ao meu aparelho e você deverá inserir o endereço que aparecer no seu adbWireless.
  • adb devices
    Agora será mostrado o dispositivo, que está conectado via Wi-Fi.

Agora basta repertir os passos a partir do item 5 de como debuggar usando o cabo USB. A única diferença será quando chegar à tela abaixo:

Perceba que ao invés de mostrar o ID do meu aparelho mostrará o endereço IP:Porta que eu usei para me conectar junto ao ADB. Bacana, não? 

Pronto, comece logo a debuggar seus apps agora via USB ou Wi-Fi.

1 comentários:

Rafael Almeida disse...

Excelente post.Obrigado

Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.
Related Posts Plugin for WordPress, Blogger...