Olá, frequentemente recebo perguntas sobre a depuração de um aplicativo Android e entendo perfeitamente a necessidade
dessa tarefa.
A depuração é muito útil e pode ser muito rápida para atingir um determinado objetivo.
E depois de assistir a este vídeo e ver como é fácil, talvez você queira começar a me esfolar e dizer:
"O quê?
Por que nem sempre usamos esse tipo de abordagem?
Por que sempre seguimos o caminho mais longo e difícil?
Mas deixe-me explicar, por favor.
Este curso foi projetado para funcionar em todas as situações.
Portanto, a depuração é muito boa.
Sim.
E a depuração é absolutamente rápida.
Também é verdade.
Mas é claro que também há contramedidas relacionadas à depuração de aplicativos Android.
Algumas delas são muito fáceis de contornar, mas outras são absolutamente complicadas, e a maioria das pessoas fica
totalmente ferrada se enfrentar uma detecção de depuração difícil porque não sabe como contorná-la.
Mas se você não está, você não está totalmente ferrado.
Portanto, na seção smiley, vimos como podemos analisar um aplicativo e também manipular o comportamento
do aplicativo para, por exemplo, imprimir informações secretas como a chave de criptografia e todas essas coisas.
Mas, mesmo assim, se há um caminho mais curto, por que não escolher o caminho mais curto?
Portanto, vamos dar uma olhada na depuração de um aplicativo Android sem ter o código-fonte desse
aplicativo.
Então, vamos dar uma olhada nisso.
Vamos lá.
Tudo bem.
Portanto, aqui estamos de volta à VM do Ubuntu e, se quisermos depurar um aplicativo, precisamos nos certificar
de que esse aplicativo tenha o sinalizador de depuração definido como verdadeiro.
Também poderíamos aplicar isso se tivéssemos permissões de root, mas eu gostaria de escolher a abordagem
que sempre funciona.
Portanto, nesse caso, estamos adicionando esse sinalizador se ele já não estiver incluído.
Está bem.
Neste vídeo, também estamos analisando um aplicativo divertido.
Portanto, daremos uma olhada no aplicativo de banco espacial e, no próximo vídeo, faremos
algo, digamos, mais útil, analisando nosso desafio de faixa preta e resolvendo isso com o depurador.
Tudo bem.
Está bem.
Então, vamos para aplicativos e depois para a caneta espacial e abriremos esse aplicativo com.
Está bem.
O JB também é a ferramenta que usaremos para depurar esse aplicativo, porque ele tem esse recurso muito bom
aqui, mas há algumas armadilhas que precisamos considerar.
Então, primeiro vamos nos certificar de que o aplicativo esteja configurado para ser depurável. Podemos encontrar esse sinalizador no androidmanifest. xml.
E dentro do aplicativo, podemos ver.
Não, não está lá.
Está bem.
Mas isso é.
Não, isso não é um problema.
Vamos encerrar o assunto.
E como podemos simplesmente usar a ferramenta APK, decodificamos esse aplicativo e definimos esse sinalizador
por nós mesmos.
E, em seguida, podemos reconstruir esse aplicativo.
Portanto, essa perna deve ser definida na tag do aplicativo e é chamada de depuração do Android.
Apple é igual a verdadeiro.
Sim.
Portanto, isso deve funcionar.
Muito bem, então vamos reconstruir esse aplicativo.
Em seguida, fechamos uma linha e a assinamos.
Está bem.
Em seguida, vamos instalar esse aplicativo.
Está bem.
Agora, primeiro, temos que conectar nosso smartphone.
Vamos fazer isso bem rápido.
Tudo bem, vamos tentar novamente.
Sim.
Está bem.
Portanto, agora temos um aplicativo e esse aplicativo está configurado para ser capaz de iniciar a depuração.
Precisamos abrir esse aplicativo, mas ele precisa esperar até que o depurador seja conectado
e podemos ver isso nas opções do desenvolvedor.
Então, vamos ver a tela e depois as configurações.
Vamos rolar a tela um pouco para baixo.
Sistema.
Opções avançadas de desenvolvedor.
Você também pode usar a pesquisa.
Acho que isso é muito mais fácil.
Vamos fazer isso.
Aqui podemos ver o aplicativo de depuração selecionado.
É exatamente isso que queremos ter.
Está bem.
E também podemos ver essa bandeira aqui.
Aguarde o depurador.
Ambos estão sendo exigidos porque, caso contrário, o aplicativo já começa com esse sinalizador
definido.
O aplicativo é iniciado, mas não é totalmente carregado.
Portanto, ele espera até que nos conectemos ao depurador.
E aqui temos que selecionar qual aplicativo queremos depurar.
Se você rolar a tela um pouco para baixo, verá que temos o aplicativo de caneta espacial.
Muito bem, vamos selecionar este.
Está bem.
Podemos ver que a caneta do espaço do aplicativo de depuração está sendo selecionada e também aguardar o depurador.
Se você estiver abrindo este aplicativo agora.
Em seguida, podemos ver a espera pelo depurador.
Está bem.
Essa parte está sendo feita.
Tudo bem.
Vamos encerrar o assunto.
E agora vamos ver como podemos nos associar a esse processo.
Então, vamos iniciar o aplicativo mais uma vez com o jQuery.
Oh, não vamos chamá-lo de início.
Vamos analisar esse aplicativo mais uma vez com o jQuery.
Tudo bem.
E agora temos esta parte aqui.
Selecione um processo para depurar.
Está bem.
Se estivermos tentando iniciar o servidor ADB, receberemos um erro porque o servidor ADB já está em execução e, provavelmente,
esse também é o seu caso.
Portanto, o que podemos fazer é o seguinte.
Podemos simplesmente usar o ADB kill server e, em seguida, iniciar o arrependimento.
Em seguida, podemos iniciar o servidor ADB aqui novamente.
Três, dois, um.
E perfeito.
Podemos ver o servidor ADB iniciado.
E o que precisamos fazer agora é clicar no botão de atualização para selecionarmos a atualização do dispositivo.
E aqui recebemos um erro.
Falha na conexão com o servidor ADB.
Esse também pode ser o caso mais provável para você.
O motivo disso é que estamos usando uma versão do ADB que é muito antiga.
Também podemos ver o caminho do ADB aqui.
Portanto, se você também receber esse erro agora, tente selecionar a versão correta do ADB em seu caminho.
Então, deixe-me explicar isso um pouco mais profundamente.
Aqui podemos ver que, se você estiver usando o ADB, este foi instalado por meio de outra ferramenta, talvez uma cópia de tela ou alguma
outra ferramenta tenha instalado o ADB, o que significa que agora temos duas versões do ADB.
E este é muito antigo porque o gerenciador de pacotes não tem os repositórios de notícias.
Nós o configuramos em nosso caminho de instalação.
Portanto, se você acessar o diretório do Android SDK.
Hmm.
Vejamos.
Vamos usar o find para esse caso.
Você está pesquisando o binário do ADB.
Sim.
Está dentro das ferramentas da plataforma.
Ok, então vou abrir outro terminal.
Está bem.
Versão do Dash dash Aqui podemos ver que estamos usando a versão 1 do ADB. 0. 39 e essa é a versão desatualizada que
vem com alguns pacotes.
Talvez a cópia de tela ou outra ferramenta tenha instalado essa versão, se estivermos usando essa versão.
Podemos ver.
Sim, isso é muito mais atualizado.
E, se esse não for o seu caso, precisamos atualizá-lo.
A maneira mais fácil seria simplesmente abrir o Android Studio.
Android Studio.
Ok, então vamos ver.
Com uma ajuda, também podemos verificar se há atualizações aqui.
Portanto, esta é a atualização referente ao Android Studio.
Talvez você também queira atualizar essa versão, mas se quiser apenas usar ou atualizar as ferramentas
do SDK, será necessário acessar o Tools SDK Manager.
E depois aqui.
Vejamos.
Ferramentas do SDK aqui.
Android SDK.
Ferramentas de linha de comando.
Portanto, isso atualizará as ferramentas de linha de comando no diretório do SDK.
Está bem.
Portanto, depois de atualizarmos essa parte.
Pegamos agora esta versão, a nova versão, que está dentro do caminho completo.
Certo, ele está dentro do aplicativo inicial, Android SDK e, em seguida, ferramentas de plataforma ADB.
Então, vamos adicionar esta parte aqui.
Essa é a primeira coisa.
E então temos, vamos ver esta parte.
Está bem.
Ao inserir esse binário do ADB no caminho do ADB, garantimos que estamos usando a versão mais recente.
Então, vamos testar isso e iniciar o servidor ADB.
Um observador disse: "Ok, isso é bom.
Em seguida, clicamos no dispositivo, atualizamos e pronto.
Perfeito.
Podemos ver que já está funcionando.
Legal.
Agora vou ligar a câmera porque, se estivermos usando o ADB em outro momento, a conexão será interrompida.
Portanto, enquanto estivermos depurando, não poderemos usar a cópia de tela ou não poderemos usar o Android Studio
ou qualquer outra ferramenta que inicie o ADB.
Portanto, eu ligo a câmera para que você possa ver a tela e, sim, então podemos seguir em frente.
Está bem.
No canto inferior direito, agora você pode ver o smartphone e, aqui, estamos selecionando nosso aplicativo.
Queremos depurar qual é o aplicativo de caneta espacial.
Vamos fazer isso.
Então, vamos clicar duas vezes nesse aqui.
Pronto, agora temos a visualização Debuggable.
Podemos ver que o depurador ainda está aguardando porque ainda não o executamos.
Poderíamos fazer isso clicando neste botão aqui, mas vamos esperar um pouco.
Vamos dar uma olhada rápida na visualização primeiro.
Portanto, à esquerda, podemos ver nossa parte com todas essas classes.
No meio, temos agora o nosso conhecido código smiley, porque se quisermos depurar e modificar esse
aplicativo, não poderemos fazer isso no lado Java, porque o código Java não é o código original,
é apenas uma interpretação do código.
Mas o código do smiley é algo com que podemos trabalhar.
Assim, podemos depurar, manipular e investigar.
No entanto, todo esse aplicativo se baseia no código Smiley, o que é muito bom porque, depois de absorver
o capítulo sobre o Smiley, podemos ler cada linha aqui, o que é absolutamente incrível.
Está bem.
Na parte inferior, podemos ver essas variáveis.
Se atingirmos determinado ponto de interrupção, poderemos inspecionar e também manipular isso.
Está bem.
Antes de iniciarmos esse aplicativo agora, vamos primeiro definir o ponto de interrupção e escolher o que queremos
fazer.
Acho que uma tarefa fácil neste momento seria: se formos atingidos, perderemos uma vida.
Vamos definir um ponto de interrupção nessa parte e, em seguida, podemos manipulá-la ou brincar
um pouco com ela.
Portanto, estamos procurando.
Um estoque vivo.
Ok, evento perfeito de morte de jogador.
Isso é exatamente o que supúnhamos.
Sim.
Perfeito.
Esse é exatamente o ponto em que queremos definir nosso ponto de interrupção agora.
Portanto, se o jogador for atingido, estaremos perdendo uma vida.
Agora estamos no código Java, portanto, não podemos definir um ponto de interrupção aqui, porque esse é o código
Java que precisamos ter e olhar para o código do smiley e descobrir onde está essa linha.
Quero dizer, no momento parece ser a linha 267, mas também podemos usar nossas habilidades de smiley para descobrir isso
por nós mesmos.
Então, vamos passar para a parte do sorriso.
Está bem.
E então estamos procurando por vidas.
E vamos ver.
Perfeito.
Essa é exatamente a linha que queremos ter.
Estamos adicionando um int a V2 e estamos adicionando menos um, o que significa que estamos subtraindo um e, depois
disso, estamos armazenando nosso novo valor, que está armazenado em V2, de volta a V1, que é o player dot lives.
Muito bem, então vamos definir o ponto de interrupção aqui.
Basta clicar no lado esquerdo.
Agora temos esse ponto vermelho, o que significa que já configuramos tudo.
Portanto, estamos prontos para finalmente iniciar esse aplicativo e esperar até que esse ponto de interrupção seja atingido.
Então, vamos fazer isso.
Então, clicamos em Run.
Tudo bem.
E podemos ver o carregamento do aplicativo.
Perfeito.
Também podemos ver alguns tópicos aqui e já algumas variáveis.
Podemos ver que atingimos o método Oncreate neste momento.
Portanto, vamos seguir em frente com esse caso.
Portanto, corra mais uma vez.
E perfeito.
O aplicativo está sendo carregado.
Legal.
Portanto, vamos iniciar esse aplicativo e começar a usá-lo.
Portanto, nível dois.
Vamos esperar até sermos atingidos.
Podemos ver que, neste momento, estamos tendo cinco vidas e também podemos ver que ela para.
Portanto, não estou pausando nada.
O aplicativo está sendo pausado.
E também podemos ver que nosso ponto de interrupção foi atingido.
Tudo bem.
Podemos ver que o V2 agora tem o valor cinco.
Vou usar o mouse mais uma vez porque é difícil de ler.
V2 é o nosso valor de vida cinco.
Podemos ver que é do tipo inteiro e que agora está sendo reduzido em um.
E essa tarefa aqui.
Vamos alterar esse valor de V2 porque, se estivermos subtraindo menos um de cinco, acabaremos com quatro
vidas.
Mas vamos supor que já tenhamos um número maior em relação à nossa vida.
Então, digamos que clicamos com o botão direito do mouse.
Definir valor.
Digamos que tivéssemos 1.000 vidas.
Certo, vamos clicar em definir valor.
E agora vamos clicar em executar mais uma vez.
Quero dizer, nesse caso, é mais como um currículo e ver o que acontece no lado da câmera.
Estou clicando.
Corra em três, dois, um.
Sim, fomos atingidos.
Houve uma animação rápida e podemos ver que nossas vidas foram definidas como 999.
Incrível.
Portanto, é assim que podemos depurar um aplicativo Android e, depois deste capítulo, tudo isso não deverá mais
ser um problema.
Podemos ver que fomos atingidos mais uma vez, portanto, ainda atingimos esse ponto de interrupção e agora o valor de nossas vidas é 999.
Vamos mudar isso para.
Vamos definir zero.
E veja o currículo.
Sim, podemos ver.
Fim do jogo.
Tudo bem.
Isso é tudo para este vídeo.
Na próxima, daremos uma olhada na depuração do nosso desafio de faixa preta.
Portanto, extrairemos essas chaves secretas com base na abordagem de depuração.
Em caso de dúvidas, sinta-se à vontade para entrar em contato comigo.
Estou ansioso para vê-lo lá.