Upload
truongnhi
View
216
Download
0
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