Sunteți pe pagina 1din 59

Android e computao Mvel

por Eduardo Kluwe Veiga

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.

Por que importante?


1.Multiplataforma 2. um projeto do Google. 3. opensource. 4. Popularizao dos smartphones pela necessidade de uma plataforma unificada 5.Tablets: um mercado em acenso 6 Desenvolvimento em Java 7. simples e de fcil entendimento 8. No h restries de aplicaes 9. Ambiente de desenvolvimento bem documentado 10.Loja virtual de fcil acesso.

Do celular ao Smartphone Telefone celular um aparelho de comunicao por ondas


eletromagnticas que permite a transmisso bidirecional de voz e dados . A inveno do telefone celular ocorreu em 1947 pelo laboratrio Bell, nos EUA Primeira gerao analgica telefonia somente Segunda gerao digital - TDMA, CDMA e GSM SMS(1993 na Finlndia) foi o primeiro recurso que foi includo nos aparelhos celulares que o tornou mais do que uma variante mvel do telefone fixo. MMS:protocolo para mensagens multimdia WAP: Protocolo de internet para dispositivos moveis, muito simples e limitado porm eficiente para a poca Usava o WML (Wireless Markup Language) e no suportava HTML

Do celular ao Smartphone Do outro lado nasciam os PDA


Evoluo direta das agendas eletrnicas que fizeram sucesso no inicio dos anos 90 Os pocket pc conquistaram seu pequeno espao normalmente representado pelo mercado corporativo Inicialmente j possuam tela sensvel ao toque,e funcionavam principalmente como agenda,bloco de notas,calculadora,e rodavam aplicaes bsicas Em 1999 passaram a possuir wi-fi transformando no meio mais eficiente para ler e enviar emails quando no se possua um computador por perto Em 2002 surge o BlackBerry, primeiro PDA a incluir telefonia que em conjunto com as funes j comum em PDAs(leitura de emails, navegao web, conectividade wi-fi) se tornou o primeiro smartphone.

Paralelo Desktop Smartphone

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)

Sistemas Operacionais mveis


Antes do surgimento dos Smartphones cada fabricante tinha seu prprio S.O. Eles rodavam suas prprias aplicaes e no permitiam programas de terceiros Os sistemas operacionais para Smartphones permitiram aplicaes de terceiros serem instaladas Os principais sistemas foram o Palm OS,o Windows Mobile, o blackberry, o Symbian e mais recentemente o Iphone

Sistemas Operacionais mveis


O Palm Os comeou como um sistema muito simples servindo de assistente pessoal. necessitava de poucos recursos de Hardware Essa se tornou uma caracterstica marcante do Palm pois sempre os dispositivos eram simples e baratos Em 1999 eram dominantes, quase sinnimo de PDA em 2002 migraram para a plataforma ARM, e os palms se tornaram dispositivos mais poderosos e rpidos

Sistemas Operacionais mveis

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

Sistemas Operacionais mveis


A plataforma windows Mobile da microsoft nunca teve um grande domnio de mercado

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

Sistemas Operacionais mveis

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

Sistemas Operacionais mveis


Foi o primeiro Smartphone desenvolvido Projetado e fabricado pela empresa RIM(Research In Motion) O fundador da RIM, o Canadense Mike Lazaridis teve a ideia do produto pois sentia necessidade de ler seus emails quando estivesse fora. Inicialmente ele era somente um pager mas em 2002 foi lanado o primeiro smartphone que agregava funes de celular,sms,leitura de emails,navegao na internet,teclado QWERTY,wi-fi Sempre teve foco no mercado corporativo, e at hoje domina as vendas nesse mercado principalmente nos Estados unidos

Sistemas Operacionais mveis


Symbian um sistema operacional para dispositivos mveis e smartphones, com bibliotecas associadas, interface, frameworks e implementaes com referncia em ferramentas comuns. Foi o Sistema operacional para smartphones mais vendido antes do surgimento do Android. Utilizado nos aparelhos Nokia. Foi o primeiro a Iniciar a popularizao do Smartphone, com uma interface intuitiva e uma boa quantidade de aplicativos O sistema modular e pode suportar vrias interfaces grficas diferentes adaptadas de acordo com o aparelho e com a fabricante do aparelho

Sistemas Operacionais mveis

Em 2008 foi comprada pela Nokia que abriu o cdigo fonte


um sistema aberto e de baixo custo (Em torno de $4 por aparelho) Possui recursos para gerenciar e utilizar pouca bateria e memria Permite a instalao de softwares de terceiros Baseado em padres de comunicao e dados. Mecanismos que asseguram a transferncia e armazenamento de dados Desfruta muito bem de todas as reas do aparelho. Memria RAM, Processador, Processador Grfico, etc. um sistema operativo mais estvel e seguro com relao aos seus concorrentes

Sistemas Operacionais mveis


desenvolvimento em

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

Sistemas Operacionais mveis


O Smartphone era mais utilizado no meio corporativo Symbian era a plataforma dominante fora deste meio mas seu desenvolvimento no era muito ativo A dificuldade em se encontrar aplicaes, a complexidade de uso dos sistemas, afastavam o usurio final do smartphone A apple lanou o Iphone com o intuito de levar o smartphone a um pblico mais amplo

Sistemas Operacionais mveis


A interface foi completamente desenhada para ser simples e chamativa A AppStore embora seja totalmente controlada pela apple tornou a procura de aplicativos muito simples rapidamente o iphone conquistou o mercado se tornando o smartphone com maior numero de aplicativos

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

Para que foi feito?


J no existem sistemas operacionais demais? Qual a motivao para o projeto do android? Por que aberto? Por que faz sucesso?

Para que foi feito?


Iphone revolucionou a industria de smartphones popularizou o smartphone Iphone possua sua loja virtual cheia de aplicaes ao alcance de todos o mercado de smartphones estava fragmentado, no existia um sistema dominante o Symbian estava parado no tempo e no se modernizava Iphone estava restrito a uma plataforma google avistou um Mercado abandonado o mercado de smartphones no tinha unidade, logo era complicado produzir softwares para ele pois eles no eram compatveis com os outros sistemas Para produzir aplicativos multi-plataforma a nica soluo era o JAVA ME,a verso para dispositivos mveis do java. A maquina virtual proprietria e patenteada.

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

S-ar putea să vă placă și