Este treinamento visa capacitar o participante a depurar e resolver problemas em sistemas com Android embarcado.
Durante o treinamento, os seguintes tópicos serão abordados:
- Introdução à depuração de software, o processo de depuração de software, principais tipos de problemas, principais mecanismos de depuração, processos e técnicas de depuração e análise de performance em sistemas Linux e Android.
- Introdução ao GDB, depurando aplicações com o GDB, comandos básicos do GDB, controle de execução, breakpoints, watchpoints, catchpoints, imprimindo expressões, exibindo memória, backtrace do stack, modo TUI, integração com DDD e Eclipse.
- Apresentação da plataforma de desenvolvimento que será utilizada no treinamento, características do hardware, referências e documentação.
- Documentação do kernel Linux, depurando o kernel Linux com ferramentas e técnicas de logging (printk, dynamic debug), coletando informações dos sistemas de arquivo virtuais (procfs, sysfs, configfs, debugfs), análise de mensagens de crash do kernel (oops e panic), a ferramenta addr2line, depurando módulos do kernel, kdump, pstore.
- Probes estáticos (tracepoints, trace_events), probes dinâmicos (kprobes), ferramentas e técnicas de tracing (ftrace, trace-cmd, kernelshark, lttng, systemtap), tracing de funções, tempos de latência e consumo de stack.
- Depuração interativa do kernel Linux com o GDB (kgdb, gdbclient e agent-proxy), front-end de depuração KDB, depuração no nível do hardware com JTAG.
- Frameworks de depuração do kernel Linux, detecção de memory leak no kernel (kmemleak), magic sysrq key, detecção de travamentos (deadlock) no kernel.
- Ferramentas e técnicas de logging na camada nativa (syslogd, klogger, logcat, dumpstate, bugreport), debuggerd, análise de crashes em aplicações e bibliotecas nativas, coredump, tombstones, analisando problemas em bibliotecas dinâmicas.
- Ferramentas de tracing de aplicações na camada nativa, strace, ltrace, ld.so, etrace, uprobe, perf, systemtap, lttng-ust.
- Depuração remota com o gdbserver, depuração interativa de aplicações nativas, depuração de aplicações multithread.Depurando o uso de memória em aplicações nativas, ferramentas de análise do uso de memória (free, procrank, procmem, showmap, librank), depurando memory leak com valgrind, memwatch, mtrace, dmalloc.
- Ferramentas e técnicas de logging na camada Java (logcat, dumpsys, dumpstate, ANR), análise de crashes na camada Java, ferramentas de tracing (systrace, apitrace), integração do código-fonte do AOSP e depuração de serviços do framework no Android Studio, DDMS, ferramentas da linha de comandos que podem ajudar na depuração (am, pm, wm, svc, service).
- Análise de performance em sistemas Linux e Android, análise de consumo de CPU (top, cpustats, schedtop), análise de consumo de memória (free, procrank, procmem, showmap, librank, meminfo), análise de performance com o perf, a ferramenta oprofile, analisando a performance de aplicações com o strace e o ltrace, analisando a performance de aplicações com o gprof, analisando a performance de aplicações Java com o traceview e o systrace.
Para mais detalhes sobre o conteúdo, você pode consultar a agenda e os slides do treinamento.
Os slides deste treinamento são liberados sob a licença Creative Commons BY-SA 3.0, e os fontes podem ser baixados aqui.
Algumas fotos dos treinamentos já realizados podem ser visualizadas aqui.
Público alvo
Estudantes, engenheiros e desenvolvedores de sistemas com Android embarcado.
Pré-requisitos
Arquitetura de sistemas com Linux embarcado, arquitetura interna do sistema operacional Android, terminal de comandos do Linux (ls, cat, grep, find, etc), configuração e compilação do kernel Linux, conhecimentos básicos em linguagem C, C++ e Java, compilação de aplicações Linux com make e gcc.
Equipamentos
Todos os equipamentos necessários são fornecidos pela Embedded Labworks.
Material de estudo
O material de estudo é composto pelos slides das apresentações, o livro de atividades e exercícios, os guias de referência e documentos de estudo adicionais. Todo o material será fornecido de forma eletrônica no início do treinamento.
Kit de desenvolvimento
Os exercícios do treinamento são realizados no kit de desenvolvimento Wandboard Quad (ARM Cortex-A9) com um display LCD touchscreeen de 7” da Touch Revolution.
Turmas abertas
Os treinamentos em turmas abertas são realizados em um ambiente agradável, com um laboratório devidamente equipado e acesso à Internet. As aulas são normalmente ministradas em período integral, com uma parada para o almoço e um coffee-break pela manhã.
Caso esteja interessado em participar do treinamento e não exista uma turma aberta, faça a pré-inscrição clicando aqui. Entraremos em contato assim que uma nova turma for aberta.
Treinamentos in-company
Se você planeja capacitar a sua equipe, considere um treinamento na sua empresa.
Turmas fechadas para treinamento in-company possuem as mesmas características de uma turma aberta. Neste modelo, a empresa é responsável por fornecer os recursos necessários para a realização do treinamento, incluindo sala, datashow e as máquinas de desenvolvimento. Esse modelo também traz grande economia para a empresa, já que o custo do transporte e estadia de vários funcionários é reduzido apenas ao do instrutor.
Se sua empresa tem uma necessidade especial, podemos estudar um programa que atenda sua necessidade de forma direcionada, como preparar o treinamento para uma plataforma de hardware específica ou desenvolver um conteúdo adicional. Não hesite em entrar em contato por e-mail ou pela página de contato.
Treinamentos na sua cidade
Você pode levar os treinamentos para sua comunidade, em qualquer cidade do Brasil.
Você não tem condições de realizar o curso em São Paulo? Você tem um grupo de estudos e quer aprender mais sobre determinada tecnologia? Você coordena ou participa da coordenação de algum curso na sua universidade e gostaria de treinar seus alunos? Você tem um espaço, quer reunir os amigos e passar agradáveis horas aprendendo sobre sistemas embarcados?
Mande um e-mail ou uma mensagem para nós. Informe seu curso de interesse e também a sua cidade. Se conseguirmos formar uma turma, poderemos levar o treinamento para a sua cidade!
Clientes que já fizeram o treinamento
Ainda tem dúvidas?
Em caso de dúvidas, críticas ou sugestões, envie um e-mail ou deixe uma mensagem na página de contato.
Entre em contato