19
Outline Sistema Android Sistemas Embarcados Android Carlos Marcelo Pedroso Engenharia El´ etrica UFPR 2 de dezembro de 2013 Carlos Marcelo Pedroso Sistemas Embarcados Android

Sistemas Embarcados Android - UFPR] · Outline Sistema Android Introdu˘c~ao Principais Caracter sticas Linux Kernel Principais M odulos Introdu˘c~ao I Desenvolvido para sistemas

Embed Size (px)

Citation preview

OutlineSistema Android

Sistemas Embarcados Android

Carlos Marcelo Pedroso

Engenharia Eletrica UFPR

2 de dezembro de 2013

Carlos Marcelo Pedroso Sistemas Embarcados Android

OutlineSistema Android

Sistema AndroidIntroducaoPrincipais CaracterısticasLinux KernelPrincipais Modulos

Carlos Marcelo Pedroso Sistemas Embarcados Android

OutlineSistema Android

IntroducaoPrincipais CaracterısticasLinux KernelPrincipais Modulos

Introducao

I Desenvolvido para sistemas moveispelo Google: Android Open SourceProject (AOSP)

I Grande sucesso, devido a combinacaode:

I open source licensingI aggressive go-to-marketI interface altamente amigavel

I O Android tambem esta atraindo aatencao de desenvolvedores desistemas embarcados.

I Documentacao:http://source.android.com

Carlos Marcelo Pedroso Sistemas Embarcados Android

OutlineSistema Android

IntroducaoPrincipais CaracterısticasLinux KernelPrincipais Modulos

Historico

I Em 2002 a empresa Danger Inc. desenvolve o sistemaoperacional Sidekick, para telefones

I O sistema nao obteve sucesso. No entanto, o buscador padraoera o Google.

I Com o insucesso, o CEO Andy Rubin sai da empresa e cria aAndroid Inc. em 2003 e inicia o desenvolvimento de sistemasoperacionais para telefones celulares.

I Em 2005, o Google compra a Android Inc.

Carlos Marcelo Pedroso Sistemas Embarcados Android

OutlineSistema Android

IntroducaoPrincipais CaracterısticasLinux KernelPrincipais Modulos

Versoes

Fonte: Embedded Android, Karim Yaghmour, O’Reilly 2012

Carlos Marcelo Pedroso Sistemas Embarcados Android

OutlineSistema Android

IntroducaoPrincipais CaracterısticasLinux KernelPrincipais Modulos

Versoes

Versao Codename Uso estimado

2.2 Froyo 1.7%2.3.3-2.3.7 Gingerbread 26.3%3.2 Honeycomb 0.1%4.0.3-4.0.4 Ice Cream 19.8%4.1.x Jelly Bean 37.3%4.2.x 12.5%4.3 2.3%

Nova versao: 4.4 (Android Kit Kat,http://developer.android.com/about/versions/kitkat.html)

Fonte: http://developer.android.com/about/dashboards/index.html

Carlos Marcelo Pedroso Sistemas Embarcados Android

OutlineSistema Android

IntroducaoPrincipais CaracterısticasLinux KernelPrincipais Modulos

Principais Caracterısticas

I Application framework: disponıvel para desenvolvedores emhttp://developer.android.com

I Dalvik Virtual Machine: versao do Google para maquinavirtual Java, com simplificacoes para melhorar o desempenho

I WebKit-based browser, pode ser usado e integrado pelasaplicacoes

I Interface grafica: o Android possui sua biblioteca grafica 2D,para 3d e usado o OpenGL ES

Carlos Marcelo Pedroso Sistemas Embarcados Android

OutlineSistema Android

IntroducaoPrincipais CaracterısticasLinux KernelPrincipais Modulos

Principais Caracterısticas

I SQLite: parte do sistema, disponıvel aos aplicativos

I Media support: implementado pelo proprio sistema

I GSM telephony support: o fabricante deve fornecer os drivers

I Bluetooth, 3G, e WiFi: suporta a grande maioria dosdispositivos

I Camera, GPS, bussola, e acelerometro: API para osaplicativos, fabricantes fornecem drivers

I Facilidades para desenvolvedores: SDK disponıvelgratuitamente, bem como emulador, plugin Eclipse eferramentas de debug

Carlos Marcelo Pedroso Sistemas Embarcados Android

OutlineSistema Android

IntroducaoPrincipais CaracterısticasLinux KernelPrincipais Modulos

Principais Caracterısticas

I SQLite: parte do sistema, disponıvel aos aplicativos

I Media support: implementado pelo proprio sistema

I GSM telephony support: o fabricante deve fornecer os drivers

I Bluetooth, 3G, e WiFi: suporta a grande maioria dosdispositivos

I Camera, GPS, bussola, e acelerometro: API para osaplicativos, fabricantes fornecem drivers

I Facilidades para desenvolvedores: SDK disponıvelgratuitamente, bem como emulador, plugin Eclipse eferramentas de debug

Carlos Marcelo Pedroso Sistemas Embarcados Android

OutlineSistema Android

IntroducaoPrincipais CaracterısticasLinux KernelPrincipais Modulos

Principais Caracterısticas

I Multitasking

I Multi-touch

I Reconhecimento de comandos de voz

I VoIP / SIP

Carlos Marcelo Pedroso Sistemas Embarcados Android

OutlineSistema Android

IntroducaoPrincipais CaracterısticasLinux KernelPrincipais Modulos

Principais Caracterısticas

I Ecosistema para divulgacao de aplicativos: Android Market /Google Play; em 7/03/2013 com 600.000 aplicativos.

I Consistent app APIs: garantia de compatibidade da API dedesenvolvimento com APIs antigas. O SO em si nao temgarantias.

I Customizavel (codigo fonte aberto); no entanto, odesenvolvimento e feito a portas fechadas pelo Google, semparticipacao da comunidade (como ocorre normalmente emsistemas open source). No entanto, a versao 3.0 nao foidisponibilizada...

Isto torna a plataforma muito interessante para desenvolvedores de sistemas embarcados, que buscam uma GUI que

seja intuitiva e familiar ao usuario.

Carlos Marcelo Pedroso Sistemas Embarcados Android

OutlineSistema Android

IntroducaoPrincipais CaracterısticasLinux KernelPrincipais Modulos

Requisitos de Hardware

I Android deve funcionar em qualquer plataforma que suporte oLinux.

I Principais plataformas: ARM, x86, MIPS, SuperH, ePowerPC.

I Ver pag. 16 do livro Embedded Android

Carlos Marcelo Pedroso Sistemas Embarcados Android

OutlineSistema Android

IntroducaoPrincipais CaracterısticasLinux KernelPrincipais Modulos

Linux Kernel

I O Android roda sobre um nucleoLinux.

I Alteracoes realizadas no kernel:http://www.forbes.com/sites/quora/2013/05/13/what-are-the-major-changes-that-android-made-to-the-linux-kernel/

I O Linux prove:I Camada de abstracao de hardware.I Gerencia de memoria.I Gerencia de processos.I Suporte a rede.

I O usuario nunca tem contato com oLinux

Carlos Marcelo Pedroso Sistemas Embarcados Android

OutlineSistema Android

IntroducaoPrincipais CaracterısticasLinux KernelPrincipais Modulos

Principais Modulos

I Bionic, pequena e veloz libc(biblioteca), otimizada para usoem sistemas embarcados

I Surface Manager: windowmanager

I 2D and 3D graphics hardwaresupport or software simulation

I Media codecs: support for majoraudio/video codecs

I SQLite database

I WebKit library: HTMLrendering

Fonte: marakana.com/training/android/

Carlos Marcelo Pedroso Sistemas Embarcados Android

OutlineSistema Android

IntroducaoPrincipais CaracterısticasLinux KernelPrincipais Modulos

Principais Modulos

Fonte: Embedded Android, Karim Yaghmour, O’Reilly 2012

Carlos Marcelo Pedroso Sistemas Embarcados Android

OutlineSistema Android

IntroducaoPrincipais CaracterısticasLinux KernelPrincipais Modulos

Android e Java

Fonte: Embedded Android, Karim Yaghmour, O’Reilly 2012

Carlos Marcelo Pedroso Sistemas Embarcados Android

OutlineSistema Android

IntroducaoPrincipais CaracterısticasLinux KernelPrincipais Modulos

Sistema de Arquivos

I O sistema de aquivos possui tres principais mount points:

1. um para o sistema2. um para aplicacoes3. um para outros

I Cada aplicacao possui uma area acessıvel para ela; nenhumoutro aplicativo pode acessar

I Teoricamente, podem ser utilizados todos os sistemas dearquivos implementados no Linux

Carlos Marcelo Pedroso Sistemas Embarcados Android

OutlineSistema Android

IntroducaoPrincipais CaracterısticasLinux KernelPrincipais Modulos

Sistema de Arquivos

I Podem ser utilizados varios sistemas de arquivos. No entanto,parece estar sendo utilizado como padrao:

1. /system: yaffs22. /data: yaffs23. /sdcard: vfat

I No entanto, o fabricante pode alterar: Samsung Galaxy S usaSamsung RFS (proprietario). Nexus S (Samsung) comAndroid 2.3 usa Ext4. Existem relatos do uso ate da FAT16para o /system.

Carlos Marcelo Pedroso Sistemas Embarcados Android

OutlineSistema Android

IntroducaoPrincipais CaracterısticasLinux KernelPrincipais Modulos

Implementacao de processos

I Cada aplicacao possui um processo no sistema.

I Cada aplicacao possui seus arquivos de configuracao comconjunto de preferencias.

I Cada aplicacao possui sua propria base de dados.

I Aplicacoes nao podem acessar dados de outras aplicacoes, anao ser que que seja explicitamente compartilhado.

I Cada aplicacao possui uma area acessıvel para ela; nenhumoutro aplicativo pode acessar

I E esperada a existencia de SDCard, com acesso permitidopara todos os aplicativos

Carlos Marcelo Pedroso Sistemas Embarcados Android