Documente Academic
Documente Profesional
Documente Cultură
Android
O que Android? Porque importante? Do celular ao Smartphone Paralelo Desktop-Smartphone Sistemas Operacionais Mveis Historia do Android Para que foi feito? Licenciamento Arquitetura Bsica Dalvik VM SDK e NDK Concluso
O que Android?
Android
um Sistema Operacional de cdigo aberto para dispositivos mveis (celulares, tablets etc) e utiliza uma verso modificada do Linux. Foi desenvolvido inicialmente pela Android Inc., que foi posteriormente adquirido pelo Google, depois pela Open Handset Alliance. Permite a desenvolvedores criarem aplicaes Java que controlam o dispositivo por bibliotecas desenvolvidas pelo Google. O lanamento do Android se deu em 5 de Novembro de 2007, com a fundao da Open Handset Alliance, um consrcio de 65 empresas de software, hardware e telecomunicaes. O Google liberou a maior parte do cdigo fonte.
Desktops so projetados visando desempenho, smartphones so projetados visando portabilidade. Smartphones so voltados a conectividade rpida Smartphones necessitam de baixo consumo eltrico Desktops tendem a evoluir normalmente baseado em melhorias de processamento,Smartphones tendem a evoluir agregando funes Desktops so modulares, cada componente feito por uma fabricante diferente e o cliente pode montar a sua escolha, Smartphones so feitos normalmente por uma fabricante(salvo alguns componentes), o cliente compra o produto final sem opes de personalizao(ate o software)
Em 2003,adicionaram a funcionalidade de telefone se tornando um smartphone O Palm comeou a perder mercado em 2004 pois no acompanharam o desenvolvimento dos outros sistemas operacionais mveis se tornando um dispositivo caro e limitado
Inicialmente foi destinado a palmtops e futuramente ingressou no mercado de smartphones surgiu de um fork do Windows CE, uma verso do windows 98 destinada a portteis, mas com uma interface totalmente no adaptada para o meio dos PDAs
O desenvolvimento no Windows Mobile era muito facilitado devido a semelhana com o Windows, sem contar que a existncia de ferramentas compatveis com o Office e outros produtos da microsoft era muito atraente ao meio corporativo Porm A interface nunca foi completamente intuitiva, era complexa e pouco funcional, por isso nunca conquistou grande pblico a resoluo era no mximo QVGA o desempenho era muito inferior aos demais concorrentes
Symbian C/C++ Java Me FlashLite HTML5 Perl Python Ruby Lua QT infelizmente com o passar do tempo o sistema no acompanhou a evoluo da concorrente Apple e deixou caminho aberto para o Android
Historia do Android
Em julho de 2005 Google comprou a Android Inc. Empresa que produzia um sistema para celulares. Em novembro de 2007 criada a Open Handset Alliance formada por 65 empresas de hardware e software Em 2008 o Android anunciado (um sistema operacional para dispositivos mveis) 21 de Outubro de 2008 foi que o Android se tornou Open Source 22 de Outubro de 2008 foi lanado o primeiro aparelho celular com Android, o HTC G1, sendo vendido por $179,99 Em 22 de outubro de 2008 o Android Market apresentado aos usurios finais, tendo disponveis aplicativos grtis e pagos. Em maro de 2009 o Android Market tinha cerca de 2 mil apps. em maro de 2010 j havia cerca de 40 mil apps no Android Market. 1 de Maio de 2011, cerca de 295 mil apps no Android Market
Licenciamento
GNU GPL v2 para kernel e patches aplicados ao mesmo Licena Apache para o resto do sistema GPL -> modificaes precisam ser imediatamente compartilhadas apache -> pode-se modificar e no compartilhar o cdigo javaME a verso para dispositivos moveis do java proprietrio android implementou sua prpria java VM oracle processou o google alegando que a Dalvik VM quebrava patentes do java embora o cdigo java seja GPL, os componentes do javaME no so google reimplementou do zero Livre?
Licenciamento
GNU GPL v2 para kernel e patches aplicados ao mesmo Licena Apache para o resto do sistema GPL -> modificaes precisam ser imediatamente compartilhadas Apache -> pode-se modificar e no compartilhar o cdigo Recentemente o google anunciou que no liberaria o cdigo das verses 3.0 e 3.1 Motivo alegado: o cdigo no esta maduro o suficiente e teme fragmentao Livre?
Arquitetura bsica
Framework de aplicaes Dalvik virtual machine Navegador webkit integrado Biblioteca 2D e biblioteca 3D baseadas na especificao opengl Banco de dados SQlite Suporte multimdia GSM Bluetooth GPRS,EGDE,3G Wi-fi GPS Cmera GPS acelermetro
Arquitetura bsica
Arquitetura bsica
Arquitetura bsica
Na Base da Arquitetura utiliza um Fork do Kernel linux 2.6 utilizado em servios centrais do sistema como gerenciamento de memoria escalonamento de processos gerenciamento do sistema de arquivos Drivers O Nvel seguinte onde se encontram as bibliotecas de sistema. Cada biblioteca tem uma funo especfica, elas vo informar aos programas como executar determinadas funes
System C library Media Libraries Surface manager libwebcore SGL freetype SQlite
Arquitetura bsica
Camada Runtime: Nesta camada encontra-se as bibliotecas da API da Maquina virtual e a prpria maquina virtual O Terceiro nvel a camada de aplicaes, nesta camada esto os programas que gerenciam as funes bsicas do sistema como a interface grfica,geolocalizao, entre outros. No topo encontram-se os aplicativos finais
Dalvik VM
Utiliza a sintaxe da linguagem Java o DALVIK VM usa o kernel linux para tarefas como gerenciamento de memoria em baixo nvel uma maquina virtual baseada em registradores, diferente da JVM baseada em pilha maquinas baseadas em registradores necessitam 47% menos instrues em mdia [estimativa] o cdigo do registro em mdia 25% maior [estimativa]
Dalvik VM
Android roda em cima da arquitetura ARM ARM uma arquitetura muito fragmentada os programas android Rodam em cima de uma maquina virtual isso permite que os aplicativos rodem sem alteraes de cdigo em qualquer arquitetura suportada pela mquina Toda aplicao android roda em seu prprio espao virtual, em sua prpria instancia da maquina virtual. uma aplicao no tem contato direto com outra Isso permite maior segurana, dificultando ao de programas maliciosos.
Dalvik VM
Por cada aplicao rodar em seu prprio ambiente virtual o gerenciamento de memoria facilitado. Dalvik foi escrito para trabalhar eficientemente com mltiplas instncias e otimizado para baixo consumo de energia
Dalvik VM
Baixa velocidade em comparao com cdigo nativo
Just in time compiler recurso j existente a muito tempo na JVM a partir do android 2.2 esta disponvel no Dalvik converte os bytecodes em tempo de execuo para cdigo nativo aumenta o desempenho da dalvik vm em 5 vezes(estimativa)
muito simples portar todos os aplicativos android para outro sistema simplesmente portando a VM
Dalvik VM
Dalvik frequentemente tratada como uma maquina virtual java porm este um equivoco. Java = Maquina virtual + sintaxe java + api Dalvik=Maquina virtual + sintaxe java + api A Maquina virtual Dalvik foi baseada no projeto Harmony da Apache, ela no implementa os bytecodes java. Java promovida como uma linguagem livre, porm para se criar uma maquina virtual java deve-se passar em um pacote de conformidade tecnolgica para receber a certificao
Dalvik VM
Dalvik no funciona com bytecodes jvm o conjunto de instrues dalvik totalmente diferente Ela interpreta aquivos .Dex que so diferentes de aquivos .class
- File Header: header do arquivo - String Table: tabela para armazenar o tamanho das strings, contantes, nome de classe e variveis. - Class List: lista todas as classes do arquivo dex. - Field Table: tabela de campos de todas as classes. - Method Table: tabela com os mtodos de todas as classes . - Class Definition Table: tabela de definies de classes para todas as classes no arquivo. - Field List: lista que armazena os dados dos campos de uma classe. - Method List: lista de mtodos de uma classe. - Code Header: header que contm informaes sobre o cdigo que implementa determinado mtodo.
Dalvik VM
Android Market
Loja virtual de aplicativos Permite que desenvolvedores enviem seus projetos Baixo controle por parte do google permite que qualquer um envie seu projeto Permite venda de aplicativos O baixo controle acaba comprometendo a segurana UMA das formas de se instalar aplicativos no android Diferente da AppStore que a nica no Iphone
SDK e NDK
O SDK android o KIT de desenvolvimento necessrio para desenvolvermos aplicaes para Android Ele se integra ao eclipse atravs de um plugin Quem esta acostumado a programar em Java conseguir programar para Android O SDK fornece apis para o acesso dos recursos da Camada de aplicao facilitando o desenvolvimento As interfaces grficas diferentemente do JVM so criadas em arquivos .xml que so interpretados pela maquina virtual
SDK e NDK
<TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/black" android:text="Here you can put whatever you want" android:textSize="12sp" android:typeface="sans" android:textStyle="italic" android:textAlign="center" > </TextView>
SDK e NDK
<TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/black" android:text="Here you can put whatever you want" android:textSize="12sp" android:typeface="sans" android:textStyle="italic" android:textAlign="center" > </TextView>
SDK e NDK
<TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/black" android:text="Here you can put whatever you want" android:textSize="12sp" android:typeface="sans" android:textStyle="italic" android:textAlign="center" > </TextView>
SDK e NDK
<ImageView android:id="@+id/widget31" android:layout_width="wrap_content" android:layout_height="wrap_content" > </ImageView>
SDK e NDK
Android NDK o KIT de desenvolvimento de aplicaes de baixo nivel Destinado ao desenvolvimenro de aplicaoes em C/C++ Muito importante para a programaao de bibliotecas de sistema Para aqueles que no gostam de java existe tambm como programar em outras linguagens -python -Basic -lua -Javascript -C#(Mono)
SDK e NDK
Hello World
SDK e NDK
Hello World
SDK e NDK
Hello World
SDK e NDK
Hello World
SDK e NDK
Hello World
SDK e NDK
Soma de dois nmeros
SDK e NDK
Soma de dois nmeros
SDK e NDK
Soma de dois nmeros
SDK e NDK
SDK e NDK
SDK e NDK
SDK e NDK
Concluso
a plataforma com maior previso de crescimento um excelente ambiente de desenvolvimento A Loja virtual ajuda a popularizar as aplicaes Por ser aberto abre possibilidades que no seriam possiveis em outros sistemas O ambiente produtivo tanto para desenvolvedores da aplicaes proprietrias e livres A portabilidade evita que desenvolvedores percam tempo adaptando programas
Dvidas?
Arquitetura bsica