Depuração e criação de perfis
Domine as ferramentas de depuração e criação de perfis do Android Studio: pontos de interrupção, Logcat, Timber, Memory Profiler, LeakCanary, CPU Profiler, Network Inspector e Layout Inspector.
Depuração e criação de perfis é uma aula grátis de Android Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Android Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Android Academy inclui 4 aulas no total.
Visão geral da depuração
A depuração é o processo de encontrar e corrigir erros. O Android Studio oferece ferramentas poderosas:
- Depurador — pausa a execução, inspeciona variáveis e percorre o código passo a passo
- Logcat — saída de registros em tempo real do dispositivo
- Layout Inspector — inspeciona a hierarquia da interface em execução
- Android Profiler — análise de CPU, memória e rede
- Database Inspector — visualiza e consulta bancos de dados Room em tempo real
Logcat — Sua primeira ferramenta de depuração
Use Log para imprimir mensagens no Logcat. Use um TAG para filtrar seus registros:
import android.util.Log
class UserRepository {
companion object {
private const val TAG = "UserRepo"
}
fun fetchUsers() {
Log.d(TAG, "fetchUsers() called") // Debug
Log.i(TAG, "Fetching ${users.size} users") // Info
Log.w(TAG, "Cache is empty") // Warning
Log.e(TAG, "Network error: $exception") // Error
}
}Timber — Registro em logs aprimorado
Timber é um invólucro simples sobre Log que remove as chamadas de registro das compilações de lançamento e adiciona automaticamente o nome da classe como TAG:
// app/build.gradle:
// implementation 'com.jakewharton.timber:timber:5.0.1'
// In Application.onCreate():
if (BuildConfig.DEBUG) {
Timber.plant(Timber.DebugTree())
}
// Usage anywhere in the app (no TAG needed):
Timber.d("User loaded: %s", user.name)
Timber.e(exception, "Failed to fetch data")
Timber.w("Cache miss for key: %s", key)Pontos de interrupção e o depurador
Etapas para depurar com pontos de interrupção no Android Studio:
- Clique na margem esquerda, ao lado de uma linha de código — um ponto vermelho aparecerá
- Execute o aplicativo com Depurar (ícone de um bug), em vez de Executar
- Quando a execução alcançar o ponto de interrupção, ela será pausada
- Inspecione as variáveis no painel Variáveis
- Use Step Over (F8) para avançar linha por linha e Step Into (F7) para entrar em uma função
Avaliar expressão
Enquanto estiver pausado em um ponto de interrupção, use Avaliar expressão (Alt+F8) para executar código Kotlin no escopo atual. Teste suas suposições sem reiniciar:
- Verifique
list.sizeeuser.email.isNotBlank() - Chame qualquer método e veja o valor retornado
- Inspecione objetos complexos diretamente no código
Profiler de memória
Encontre vazamentos de memória com o Profiler de memória (Visualizar → Janelas de ferramentas → Profiler):
- Acompanhe o tamanho do heap ao longo do tempo — crescimento contínuo = provável vazamento
- Force a coleta de lixo e observe se a memória diminui
- Faça um despejo do heap para ver quais objetos estão ativos
- Procure instâncias de Activity ou Fragment que já deveriam ter sido coletadas pelo GC
LeakCanary — Detecção automática de vazamentos
LeakCanary detecta e relata automaticamente vazamentos de memória como notificações nas compilações de depuração:
// app/build.gradle:
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.12'
// That's it — no code changes needed!
// LeakCanary auto-installs via ContentProvider.
// When a leak is detected, it shows a notification with the leak trace.
// Common causes to watch for:
// - Static references to Context/Activity
// - Not releasing ViewBinding in onDestroyView()
// - Listeners registered to singletons but not unregisteredProfiler de CPU
Encontre gargalos de desempenho com o Profiler de CPU:
- Grave um rastreamento enquanto realiza uma ação
- Veja um gráfico de chamas para descobrir quais métodos levam mais tempo
- Procure operações demoradas na thread principal — isso causa uma interface instável
- Mova cálculos pesados para
Dispatchers.IOouDispatchers.Default
Inspetor de rede
O Inspetor de rede mostra em tempo real todas as chamadas HTTP feitas pelo seu aplicativo:
- Visualize a URL, o método, os cabeçalhos e o corpo da solicitação
- Visualize o código, o corpo e o tempo da resposta
- Identifique solicitações lentas ou com falha
- Funciona imediatamente com OkHttp (usado pelo Retrofit)
Acesse-o em Visualizar → Janelas de ferramentas → Inspeção do aplicativo → Inspetor de rede.
Inspetor de banco de dados
Inspecione e consulte seu banco de dados Room em tempo real, em um dispositivo em execução:
- Visualize as tabelas e seu conteúdo
- Execute consultas SQL personalizadas
- Acompanhe as mudanças nos dados enquanto usa o aplicativo
Acesse em Inspeção do aplicativo → Inspetor de banco de dados. Funciona com Room na API 26 ou superior.
Inspetor de layout
O Inspetor de layout mostra uma visualização 3D ao vivo da hierarquia da sua interface:
- Selecione qualquer visualização para ver seus atributos (margens, preenchimento, texto e cor)
- Identifique visualizações sobrepostas ou com visibilidade incorreta
- Depure problemas de layout sem precisar fazer suposições
Acesse em Visualizar → Janelas de ferramentas → Inspetor de layout. Conecte-se a um aplicativo em execução em um dispositivo ou emulador.
StrictMode
StrictMode detecta operações acidentalmente lentas na thread principal (leituras de disco e chamadas de rede) e registra ou encerra o aplicativo nas compilações de depuração:
// In Application.onCreate() — debug builds only:
if (BuildConfig.DEBUG) {
StrictMode.setThreadPolicy(
StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork()
.penaltyLog() // log violations instead of crashing
.build()
)
}Verificação rápida
Qual ferramenta detecta automaticamente vazamentos de memória nas compilações de depuração do Android sem exigir código adicional?
Recapitulação: depuração e criação de perfis
Encontre e corrija problemas com eficiência:
- Logcat + Timber — registro em logs leve, removido automaticamente nas compilações de lançamento
- Pontos de interrupção + Depurador — pausa e inspeciona a execução em tempo real
- Profiler de memória — detecta crescimento do heap e vazamentos
- LeakCanary — detecção automática de vazamentos com um rastreamento de pilha
- Profiler de CPU — encontra métodos lentos na thread principal
- Inspetor de rede — monitora chamadas HTTP
- Inspetor de banco de dados — consulta o Room em tempo real
- StrictMode — detecta operações de IO acidentais na thread principal
Parabéns — você concluiu o curso completo de desenvolvimento Android!
Perguntas Frequentes
A aula “Depuração e criação de perfis” é grátis?
Sim — o texto completo de “Depuração e criação de perfis” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Android Academy, atualize para CoddyKit PRO. O curso de Android Academy inclui 4 aulas no total.
O que vou aprender em “Depuração e criação de perfis”?
Domine as ferramentas de depuração e criação de perfis do Android Studio: pontos de interrupção, Logcat, Timber, Memory Profiler, LeakCanary, CPU Profiler, Network Inspector e Layout Inspector. Você pratica Android Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Android Academy?
Nenhuma experiência prévia é necessária. Android Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Depuração e criação de perfis”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Android Academy?
Sim. Cada aula de Android Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Testes unitários com JUnit
- Simulação com Mockito
- Testes de interface com Espresso
- Depuração e criação de perfis