Compartilhe:
Início > Android embarcado

Android embarcado

Este treinamento visa capacitar o participante a desenvolver e customizar sistemas com Android embarcado.

Durante o treinamento, os seguintes tópicos serão abordados:

  • Histórico do Android, principais características, licenças de software, processo de certificação, componentes básicos do sistema operacional.
  • Código-fonte do Android, AOSP, ferramenta repo e repositórios git, principais diretórios do código-fonte, navegando no código-fonte, AndroidXRef.
  • Sistema de compilação do Android, makefiles (Android.mk), Blueprint files (Android.bp), ferramentas Soong, Ninja e Kati, produto e variante de build, comando lunch, compilando o Android, imagens geradas, outros comandos de compilação, emulador.
  • 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), organização do sistema de arquivos do Android, partições e pontos de montagem (ramdisk, system, data, vendor, etc), principais diretórios do sistema de arquivos, ADB.
  • 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.
  • 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.
  • 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, dalvik, art, zygote e system server.
  • Módulos do sistema de build do Android (bibliotecas, aplicações, etc), criando makefiles (Android.mk), ferramenta Kati, criando arquivos de Blueprint (Android.bp), compilando e instalando módulos.
  • Abstraindo o acesso ao 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, VTS, VNDK, VINTF Object, implementação de uma HAL em C++, outros mecanismos de acesso ao hardware no Android.
  • Componentes do framework Android, system services, serviços e processos (surfaceflinger, drmserver, mediaserver, cameraserver, system_server, etc), binder e comunicação com os serviços, comandos e utilitários do framework Android.
  • Razões para estender o framework Android, implementando um serviço do framework em Java, definindo a interface do serviço em AIDL, acessando a HAL via JNI, criando uma API (classe Manager) para acessar o serviço.
  • Características básicas de uma aplicação Android, componentes de uma aplicação (activities, services, broadcast receivers e content providers), 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.
  • Links e recursos online, recomendações de livros, dúvidas e comentários finais, encerramento.

Para mais detal­hes 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 interessados no funcionamento interno do Android e no processo de porte e adaptação do Android para um sistema embarcado.

Pré-requisitos

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

Equipamentos

Todos os equipamentos necessários são fornecidos pela Embedded Labworks.

Mate­r­ial de estudo

O mate­r­ial de estudo é com­posto pelos slides das apre­sen­tações, o livro de ativi­dades e exer­cí­cios, os guias de refer­ên­cia e doc­u­men­tos de estudo adi­cionais. Todo o mate­r­ial será fornecido de forma eletrônica no iní­cio do treina­mento.

Kit de desenvolvimento

Os exercícios do treinamento são realizados no emulador oficial do Android.

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 treina­mentos para sua comu­nidade, em qual­quer cidade do Brasil.

Você não tem condições de realizar o curso em São Paulo? Você tem um grupo de estu­dos e quer aprender mais sobre determinada tecnologia? Você coor­dena ou par­tic­ipa da coor­de­nação de algum curso na sua uni­ver­si­dade e gostaria de treinar seus alunos? Você tem um espaço, quer reunir os ami­gos e pas­sar agradáveis horas apren­dendo sobre sistemas embar­cados?

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