Android embarcado

Objetivo

Este treinamento visa ensinar o funcionamento interno do sistema operacional Android e capacitar o participante a desenvolver e customizar sistemas com Android embarcado.


Conteúdo programático

  • Introdução ao sistema operacional Android: histórico do Android, principais características, licenças de software, processo de certificação, versões alternativas, componentes básicos do sistema operacional.
  • Código-fonte do Android: Android Open Source Project (AOSP), ferramenta repo e repositórios git, principais diretórios do código-fonte, navegando no código-fonte, AndroidXRef, Android Code Search.
  • Sistema de build do Android: sistema de compilação do Android, makefiles (Android.mk) e Blueprint files (Android.bp), as ferramentas Soong, Ninja e Kati, migração para Bazel, produto e variante de build, comando lunch, compilando o Android, imagens geradas, outros comandos de compilação, emuladores Goldfish e Cuttlefish.
  • Arquitetura do sistema operacional: características e requisitos de hardware para utilizar o Android, bootloader e fastboot, alterações no kernel Linux para o Android (binder, ashmem, wakelocks, etc), GKI (Generic Kernel Image), organização do sistema de arquivos do Android, partições e pontos de montagem (ramdisk, system, system_ext, data, vendor, odm, product, etc), principais diretórios do sistema de arquivos, segurança no Android, atualização remota, ADB.
  • Produtos: conceito de produtos, criação de um novo produto, customizando o produto, adicionando aplicações e arquivos, overlay de recursos, definindo propriedades, makefile da placa.
  • Camada nativa do Android: bibliotecas e aplicações da camada nativa, biblioteca C e Bionic, toolbox, toybox e busybox, shell, daemons (ueventd, vold, rild, netd, installd, etc), logcat, utilitários da linha de comandos.
  • Sistema de inicialização do Android: visão geral do processo de boot, a inicialização do Android, o processo init e o arquivo de configuração init.rc, ações e triggers de boot, serviços e daemons executados na inicialização, gerenciamento das propriedades do sistema, Android Runtime e a máquina virtual (Dalvik/ART), Zygote, System Server.
  • Módulos de compilação: módulos do sistema de build do Android (bibliotecas, aplicações, etc), criando makefiles (Android.mk), criando arquivos de Blueprint (Android.bp), compilando e instalando módulos.
  • Hardware Abstraction Layer: abstraindo o acesso a hardware no Android, arquitetura da HAL (Hardware Abstraction Layer), associação entre as HALs e os serviços do sistema, HAL como biblioteca compartilhada (até Android 7), Project Treble, HAL como serviço (a partir do Android 8), HIDL e AIDL, VTS, VNDK, VINTF Object, implementação de uma HAL de porta serial em C++.
  • Framework do Android: componentes do framework Android, system services, serviços e processos (surfaceflinger, drmserver, mediaserver, cameraserver, etc), System Server, binder e comunicação com os serviços, comandos e utilitários do framework Android, modificando o framework.
  • Estendendo o framework: razões para estender o framework Android, implementando um serviço do framework em Java, definindo a interface de um serviço em AIDL, conceitos de JNI, acessando a HAL via JNI, criando uma API (classe Manager) para acessar o serviço.
  • Aplicações Android: características básicas de uma aplicação Android, componentes de uma aplicação (activities, services, broadcast receivers e content providers), arquivo de manifesto, intents e comunicação entre componentes, processos e threads de uma aplicação Android, ciclo de vida das aplicações, gerenciamento de memória, segurança e permissões, NDK, desenvolvendo uma aplicação dedicada (kiosk mode), aplicação Launcher, lock task mode.
  • Recursos adicionais: links e recursos adicionais, recomendações de livros, dúvidas e comentários finais, encerramento.

Para mais detalhes sobre o conteúdo, você pode consultar a agenda e os slides do treinamento.


Informações adicionais

Estudantes, engenheiros e desenvolvedores interessados no funcionamento interno do Android e no processo de porte e adaptação do Android para um sistema embarcado.

Conhecimentos básicos de sistemas GNU/Linux, linha de comandos do shell e ferramenta de controle de versão Git. Apesar de não ser essencial, conhecimentos mínimos em Linux embarcado e nas linguagens C, C++ e Java são recomendados.

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.

Este treinamento não requer nenhum kit de desenvolvimento ou hardware adicional. Para a execução dos exercícios, é utilizado por padrão o emulador do Android. Se necessário, e conforme a necessidade da empresa contratante, o treinamento pode ser portado para qualquer plataforma de hardware com suporte ao Android.

O treinamento pode ser apresentado nos seguintes idiomas: Português brasileiro e Inglês.

Se você planeja capacitar a sua equipe, considere um treinamento na sua empresa. Nos treinamentos in-company, a empresa contratante é responsável por fornecer os recursos necessários para a realização do treinamento, incluindo sala, projetor e máquinas de desenvolvimento para os alunos. Esse modelo traz grande economia para a empresa, já que o custo do transporte e estadia de vários funcionários é reduzido apenas ao do instrutor. Caso a empresa contratante tenha alguma necessidade específica, podemos estudar a criação de um conteúdo programático especial, como preparar o treinamento para uma plataforma de hardware específica ou desenvolver algum conteúdo adicional. Não hesite em entrar em contato por e-mail ou pela página de contato .

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 tenha interesse em participar de um treinamento mas não exista uma turma disponível, envie uma mensagem pela página de contato que avisamos assim que uma nova turma for aberta.

Este treinamento pode ser realizado de forma online. Os treinamentos online são apresentados ao vivo em uma plataforma de reunião virtual como o Google Meet ou o Zoom.


Galeria de fotos

Algumas fotos dos treinamentos já realizados:

Depoimentos de clientes

Depoimentos de empresas e alunos que já participaram dos treinamentos da Embedded Labworks

highlight shape

A Samsung é uma empresa líder no mercado de alta tecnologia e mídias digitais

“Um dos melhores treinamentos que já recebi. O instrutor tem total domínio do conteúdo e uma excelente didática”

Adriano Saviolli, Samsung

A LG Electronics é uma gigante multinacional sul-coreana e uma das maiores companhias de eletroeletrônicos do Brasil

“Costumo ser muito crítico e faz tempo que não avalio um treinamento com notas máximas em todos os quesitos. Parabéns pelo treinamento!”

Vitor de Paula, LG Electronics

AOC International é a marca da TPV Technology Limited, uma fabricante de monitores LCD e LED para computadores e televisores

“Treinamento diferenciado e sem dúvida muito mais valioso que muitas graduações que temos hoje do assunto”

Lucas Tadeu Portela, AOC International

O Centro Tecnológico do Exército (CTEx) é uma organização militar subordinada ao departamento de ciência e tecnologia do governo brasileiro

“Didático e dinâmico, o treinamento atendeu plenamente a todos os objetivos propostos, além de motivar o aprofundamento do conhecimento em Linux. Recomendo!”

José Antonio de Sousa Fernandes, CTEx

O Inatel (Instituto Nacional de Telecomunicações) é um centro de excelência em ensino e pesquisa na área de engenharia

“Treinamento de alta qualidade, com muito conteúdo útil e altamente estruturado”

Luis Gustavo, Inatel

A Intelbrás é uma empresa 100% brasileira e que atua nas áreas de segurança, telecom e redes, sendo líder em vários segmentos nos quais atua

“Um excelente profissional aplicando um excelente treinamento prático e com rico material de apoio. Obrigado pela ampliação de conhecimentos!”

Paulo Morgado, Intelbrás

Ainda tem dúvidas?

Envie um e-mail para info@e-labworks.com ou deixe uma mensagem preenchendo o formulário abaixo:

Newsletter

Inscreva-se na newsletter da Embedded Labworks para receber notícias sobre treinamentos, serviços e novidades na área de sistemas embarcados.

highlight shape