Alguns anos atrás fiz um post relacionado sobre o processo de depuração no Eclipse. Desta vez resolvi criar uma vídeo aula para exemplificar o processo passo a passo.
No contexto de programação como podemos entender o que é a depuração e como fazê-la acontecer na prática? Quase sempre quando trabalho com novas turmas vejo uma grande maioria dos alunos ainda não utilizou esse precioso recurso do programador. O objetivo deste post é dar uma noção básica e mostrar como fazer na prática usando a IDE Eclipse. (fonte do post original Depuração no Eclipse (debugger))
Em resumo, depuração (do inglês debugging) é um processo de acompanhamento do programa a fim de acompanhar o fluxo de execução passo a passo, seguindo as linhas de codificação do ponto inicial até o ponto final do algoritmo que está sendo interpretado pelo computador. Minha percepção do porquê depurar o código... Podemos acompanhar o ciclo de vida do aplicativo (do início ao fim), procurando verificar o valor de variáveis, de expressões, acessando métodos entre outras possibilidades.
"Na minha opinião a principal vantagem é permitir o acompanhamento em tempo real. Já resolvi muitos bugs em menor tempo por utilizar esse recurso. Na prática, percebemos nosso erro de lógica quando podemos entender o que o computador está fazendo em determinada situação. A maioria das vezes o erro é do próprio programador que não previu determinada situação. Ao perceber isso, com ajudada da depuração, temos mais probabilidade de corrigir o bug alterando a lógica do programa."
Neste post abordarei sobre a instalação do Android SDK e a instalação do plugin ADT para desenvolver com a IDE Eclipse, bem como algumas dicas para atualizações automáticas dos seus componentes.
Pré-requisitos para instalação e configuração dos ambientes:
1) Eclipse IDE (versão + recente) - usei a JUNE 4.2 de 32 bits;
2) Android SDK (versão + recente);
3) JDK 1.6 ou superior;
4) JRE (no path do SO)
5) Página com instruções para instalação do Plugin ADT
Configurações mínimas do hardware e software do sistema operacional
Inicialmente você deve baixar todos os programas indicados acima. Pode ser que você já tenha o interpretador Java (JRE), entretanto, vai precisar o JDK para programar para Android. Veja a figura (1) destacando que não basta a JRE.
Siga as dicas do vídeo ou então siga os passos seguintes:
Baixe o Eclipse IDE [pré-requisito é o item (1)];
Baixe e instale o Android (no caso do Mac OS é apenas um zip);
Rode o Eclipse e instale o plugin ADT (URL download abaixo):
https://dl-ssl.google.com/android/eclipse/
Baixe os pacotes do emulador Android (siga essas dicas);
Configure o Eclipse para fazer checagem automáticas de atualizações do plugin (veja o vídeo acima)
Crie um atalho para um emulador AVD (Android Virtual Device) (dicas aqui);
Neste post comento da série que chamei de Curso Básico de Criação de Janelas Gráficas (GUI) com NetBeans, que foi produzido um total de 10 vídeo aulas, contabilizando 2h:12m:30s de conteúdos para o YouTube, inteiramente gratuito. No final deste post tem o link para baixar o código fonte.
Foi a minha primeira experiência na produção de vídeos para a internet e creio que aprendi muito. Recebi vários feedbacks de pessoas que nem conheço, no qual fico muito agradecido e motivado a tentar melhorar. Tenha certeza que nos próximos vídeos eu levarei em consideração as dicas sugeridas nos comentários de vocês, bem como espero contribuir cada vez mais nesta iniciativa.
Meus agradecimentos a todos que contribuem e contribuíram. Lembrem-se que é ajudando que se é ajudado, não é mesmo? :)
Um pouco sobre a série...
Esta série de vídeo aulas objetiva ajudar alunos da disciplina de Programação Orientada a Objetos entender como criar janelas visuais usando NetBeans.
Este post objetiva compartilhar uma
dica simples para geração de logs, que permitiu aumentar a produtividade na
programação durante a realização desta atividade. Trata-se do uso do editor de
templates do Eclipse para geração de código automático (famoso Ctrl+space+template),
para personalização dos níveis de logs existentes da plataforma Android
Tenho hábito e prática de utilizar
logs na programação. De forma simples, isso nada mais é do que prover uma saída
de dados textual na tela do console para visualizar o fluxo atual em execução no
programa. Assim, podemos de forma rápida comprovar nossas hipóteses que o
algoritmo está se comportando exatamente como o imaginamos. J Isso não é lindo? Para
termos certeza que tudo vai correr bem é necessário fazer esse tipo de processo de
validação N vezes até que tenhamos certeza absoluta que vai funcionar.
Geralmente através de testes de
unidade, ou simplesmente para constatar se os comandos dados e as ordens
programadas (formalmente escritas na forma de código fonte) foram percorridos
como se esperava dentro do programa em execução, permitindo estruturar e
validar o percurso do algoritmo e da lógica de programação como um todo. Dependendo
da complexidade do software, podemos criar cenários não desejados – conhecidos como
bugs. Nem tudo é perfeito minha gente! J
Percebo também que eu não sou o
único que tem esse hábito de usar logs. Todos os programadores que conheço
fazem isso. Fazer logs é uma boa prática. No entanto, para fazê-lo precisamos
escrever uma linha de código utilizando a criatividade, que varia de programador
para programador. Se perder o controle e ficar criando log de tudo, pode poluir demasiadamente o código com comentários
inúteis ou não mais necessários. Normalmente se usa algo como isso:
Escrever a linha de comando
System.out.println usando o Eclipse se torna fácil quando conhecemos o nome que
chama o template para preenchimento automático. Por exemplo, se eu digitar “sysout + (Crtl+SPACE), o editor do
Eclipse irá substituir a palavra “sysout” pelo comando System.out.println(), e ainda deixar o cursor dentro dos
parênteses. Para quem não sabe você acabou de usar o template de código do
editor Eclipse para códigos da linguagem Java. Isso não é show de bola? Os
programadores sabem que isso torna o trabalho mais eficaz. Eu pelo menos me
sinto muito animado quando uso editores assim.
Criando templates para geração de LOG automático para uso no emulador
Android
O SDK do emulador Android oferece
a saída de dados usando a janela do LogCat
(Windows/Show View/Other/Android/LogCat), que fica disponível após instalar o
plugin ADT. Nesta janela podemos visualizar os logs de acordo com o seu nível.
Veja a tabela:
Nível
Sigla
Cor
Debug
D
azul
Verbose
V
preto
Info - Informação
I
verde
Warn - alerta
W
laranja
Error - erro
E
vermelho
Níveis de logs e suas cores
Assim, no Android temos que usar
a classe android.util.Log para escrever os logs de acordo com os níveis
disponíveis da tabela. Temos então no código:
Por exemplo, vamos criar o código
abaixo e sua tecla de atalho correspondente:
Exemplo
uso android.util.Log
Nome
do Atalho pretendido
Log.d("SUA_TAG", "log DEBUG");
dbg
Log.i("DOUGLAS", "log
INFORMATION");
dbgi
Log.e("DOUGLAS", "log ERROR");
dbge
Crie as tags acima no Eclipse usando uma tecla de atalho
Acesse a opção de preferências no
menu principal do Eclipse, no caso do sistema operacional ser o Windows, use o
atalho Windows/Preferences/. Na
figura abaixo (A), observe o campo para digitar a busca. Digite o termo “templates”
para filtrar a quantidade de opções disponíveis. Veja a imagem (B). Acesse
opção Java/Editor/Templates/
(A)
(B)
Agora basta inserir novas
entradas clicando no botão “New...”. (B) Crie 3 ou mais entradas de acordo com o
código abaixo. Veja também a imagem (C).
Esse código é uma linguagem de
expressão do Eclipse e faz com que o nome da classe atual seja obtida ( ${enclosing_type}
), e o nome do método atual seja obtido e substituído (${enclosing_method} ), e
por fim, sete o cursor para o final deste comentário ( ${cursor} ). Se desejar poderá criar outros templates estudando
essa linguagem de expressão do Eclipse.
Após criar seus templates poderá
utilizá-los durante a codificação do seu aplicativo no Android, e usar
as teclas de atalho criadas. Ex. digite dbg + (Crtl+Space) e poderá ver
as opções disponíveis do template. Assim que escolher um, o código será gerado
automaticamente obtendo o nome da classe, o nome do método e você poderá ainda
testar seu código neste trecho sem a necessidade de digitar todo o código.
Espero que essa dica seja útil
para você tanto quanto está sendo para mim. J