Android e computação Móvel
por Eduardo Kluwe Veiga
Android
O que é Android?
Porque é importante?
Do celular ao Smartphone
Paralelo Desktop-Smartphone
Sistemas Operacionais Móveis
Historia do Android
Para que foi feito?
Licenciamento
Arquitetura Básica
Dalvik VM
SDK e NDK
Conclusão
O que é Android?
A
ndroid é um Sistema Operacional de código aberto para dispositivos móveis (celulares, tablets etc) e utiliza uma versão modificada do Linux.
Foi desenvolvido inicialmente pela Android Inc., que foi posteriormente adquirido pelo Google, depois pela Open Handset Alliance. Permite a desenvolvedores criarem aplicações Java que controlam o dispositivo por bibliotecas desenvolvidas pelo Google.
O lançamento do Android se deu em 5 de Novembro de 2007, com a fundação da Open Handset Alliance, um consórcio de 65 empresas de software, hardware e telecomunicações. O Google liberou a maior parte do código fonte.
Por que é importante?
1.Multiplataforma
2. um projeto do Google.
3. opensource.
4. Popularização dos smartphones pela necessidade de uma
plataforma unificada
5.Tablets: um mercado em acensão
|
6 |
Desenvolvimento em Java |
|
7. |
É simples e de fácil entendimento |
|
8. |
Não há restrições de aplicações |
|
9. |
Ambiente de desenvolvimento bem documentado |
10.Loja virtual de fácil acesso.
Do celular ao Smartphone
Telefone celular é um aparelho de comunicação por ondas eletromagnéticas que permite a transmissão bidirecional de voz e dados .
A invenção do telefone celular ocorreu em 1947 pelo laboratório Bell, nos EUA
Primeira geração – analógica – telefonia somente
Segunda geração – digital - TDMA, CDMA e GSM
SMS(1993 na Finlândia) foi o primeiro recurso que foi incluído nos aparelhos celulares que o tornou mais do que uma variante móvel do telefone fixo.
MMS:protocolo para mensagens multimídia
WAP: Protocolo de internet para dispositivos moveis, muito simples e limitado porém eficiente para a época Usava o WML (Wireless Markup Language) e não suportava HTML
Do celular ao Smartphone
Do outro lado nasciam os PDA
Evolução direta das agendas eletrônicas que fizeram sucesso no inicio dos anos 90
Os pocket pc conquistaram seu pequeno espaço normalmente representado pelo mercado corporativo
Inicialmente já possuíam tela sensível ao toque,e funcionavam principalmente como agenda,bloco de notas,calculadora,e rodavam aplicações básicas
Em 1999 passaram a possuir wi-fi transformando no meio mais eficiente para ler e enviar emails quando não se possuía um computador por perto
Em 2002 surge o BlackBerry, primeiro PDA a incluir telefonia que em conjunto com as funções já comum em PDAs(leitura de emails, navegação web, conectividade wi-fi) se tornou o primeiro smartphone.
Paralelo Desktop Smartphone
Desktops são projetados visando desempenho, smartphones são projetados visando portabilidade.
Smartphones são voltados a conectividade rápida
Smartphones necessitam de baixo consumo elétrico
Desktops tendem a evoluir normalmente baseado em melhorias de processamento,Smartphones tendem a evoluir agregando funções
Desktops são modulares, cada componente é feito por uma fabricante diferente e o cliente pode montar a sua escolha, Smartphones são feitos normalmente por uma fabricante(salvo alguns componentes), o cliente compra o produto final sem opções de personalização(ate o software)
Sistemas Operacionais móveis
Antes do surgimento dos Smartphones cada fabricante tinha seu próprio S.O.
Eles rodavam suas próprias aplicações e não permitiam programas de terceiros
Os sistemas operacionais para Smartphones permitiram aplicações 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 móveis
O Palm Os começou como um sistema muito simples servindo de assistente pessoal.
necessitava de poucos recursos de Hardware
Essa se tornou uma característica marcante do Palm pois sempre os dispositivos eram simples e baratos
Em 1999 eram dominantes, quase sinônimo de PDA
em 2002 migraram para a plataforma ARM, e os palms se tornaram dispositivos mais poderosos e rápidos
Sistemas Operacionais móveis
Em 2003,adicionaram a funcionalidade de telefone se tornando um smartphone
O Palm começou a perder mercado em 2004 pois não acompanharam o desenvolvimento dos outros sistemas operacionais móveis se tornando um dispositivo caro e limitado
Sistemas Operacionais móveis
A plataforma windows Mobile da microsoft nunca teve um grande domínio de mercado
Inicialmente foi destinado a palmtops e futuramente ingressou no mercado de smartphones
surgiu de um fork do Windows CE, uma versão do windows 98 destinada a portáteis, mas com uma interface totalmente não adaptada para o meio dos PDAs
Sistemas Operacionais móveis
|
O |
desenvolvimento no Windows Mobile era |
|
muito facilitado devido a semelhança com o Windows, sem contar que a existência de ferramentas compatíveis com o Office e outros produtos da microsoft era muito atraente ao meio corporativo |
||
|
Porém |
|
|
A |
interface nunca foi completamente |
|
|
intuitiva, era complexa e pouco funcional, por isso nunca conquistou grande público |
||
|
a |
resolução era no máximo QVGA |
|
o |
desempenho era muito inferior aos demais |
concorrentes
Sistemas Operacionais móveis
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 lançado o primeiro smartphone que agregava funções de celular,sms,leitura de emails,navegação 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 móveis
Symbian é um sistema operacional para dispositivos móveis e smartphones, com bibliotecas associadas, interface, frameworks e implementações com referência 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 popularização do Smartphone, com uma interface intuitiva e uma boa quantidade de aplicativos
O sistema é modular e pode suportar várias interfaces gráficas diferentes adaptadas de acordo com o aparelho e com a fabricante do aparelho
Sistemas Operacionais móveis
Em 2008 foi comprada pela Nokia que abriu o código fonte
É um sistema aberto e de baixo custo (Em torno de $4 por aparelho) Possui recursos para gerenciar e utilizar pouca bateria e memória Permite a instalação de softwares de terceiros Baseado em padrões de comunicação e dados. Mecanismos que asseguram a transferência e armazenamento de dados Desfruta muito bem de todas as áreas do aparelho. Memória RAM, Processador, Processador Gráfico, etc. É um sistema operativo mais estável e seguro com relação aos seus concorrentes
Sistemas Operacionais móveis
desenvolvimento em
Symbian C/C++ Java Me FlashLite
HTML5
Perl
Python
Ruby
Lua
QT
infelizmente com o passar do tempo o sistema não acompanhou a evolução da concorrente Apple e deixou caminho aberto para o Android
Sistemas Operacionais móveis
O Smartphone era mais utilizado no meio
corporativo
Symbian era a plataforma dominante fora deste meio mas seu desenvolvimento não era muito ativo
A
complexidade de uso dos sistemas, afastavam o usuário final do smartphone
dificuldade em se encontrar aplicações, a
A apple lançou o Iphone com o intuito de
levar o smartphone a um público mais amplo
Sistemas Operacionais móveis
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 móveis)
de Outubro de 2008 foi que o Android se tornou Open Source
21
22
sendo vendido por $179,99
de Outubro de 2008 foi lançado o primeiro aparelho celular com Android, o HTC G1,
Em 22 de outubro de 2008 o Android Market é apresentado aos usuários finais, tendo disponíveis aplicativos grátis e pagos.
Em março de 2009 o Android Market tinha cerca de 2 mil apps.
em março 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á não existem sistemas operacionais demais?
Qual a motivação 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 possuía sua loja virtual cheia de aplicações ao alcance de todos
o
mercado de smartphones estava fragmentado, não existia um sistema dominante
o Symbian estava parado no tempo e não se modernizava
Iphone estava restrito a uma plataforma
google avistou um Mercado abandonado
o mercado de smartphones não tinha unidade, logo era complicado produzir
softwares para ele pois eles não eram compatíveis com os outros sistemas
Para produzir aplicativos multi-plataforma a única solução era o JAVA ME,a versão para dispositivos móveis do java. A maquina virtual é proprietária e patenteada.
Licenciamento
GNU GPL v2 para kernel e patches aplicados ao mesmo Licença Apache para o resto do sistema
GPL -> modificações precisam ser imediatamente compartilhadas
apache -> pode-se modificar e não compartilhar o código
javaME é a versão para dispositivos moveis do java é proprietário
android implementou sua própria java VM
oracle processou o google alegando que a Dalvik VM quebrava patentes do java embora o código java seja GPL, os componentes do javaME não são google reimplementou do zero Livre?
Licenciamento
GNU GPL v2 para kernel e patches aplicados ao mesmo Licença Apache para o resto do sistema
GPL -> modificações precisam ser imediatamente compartilhadas
Apache -> pode-se modificar e não compartilhar o código
Recentemente o google anunciou que não liberaria o código das versões 3.0 e 3.1
Motivo alegado: o código não esta maduro o suficiente e teme fragmentação
Livre?
Arquitetura básica
Framework de aplicações Dalvik virtual machine Navegador webkit integrado Biblioteca 2D e biblioteca 3D baseadas na especificação opengl Banco de dados SQlite Suporte multimídia GSM Bluetooth
GPRS,EGDE,3G
Wi-fi
GPS
Câmera
GPS
acelerômetro
Arquitetura básica
Arquitetura básica
Arquitetura básica
Na Base da Arquitetura utiliza um Fork do Kernel linux
2.6
utilizado em serviços centrais do sistema como gerenciamento de memoria escalonamento de processos
gerenciamento do sistema de arquivos Drivers
O Nível seguinte é onde se encontram as bibliotecas de sistema. Cada biblioteca tem uma função específica, elas vão informar aos programas como executar determinadas funções
System C library Media Libraries Surface manager libwebcore SGL freetype SQlite
Arquitetura básica
Camada Runtime: Nesta camada encontra-se as bibliotecas da API da Maquina virtual e a própria maquina virtual
O Terceiro nível é a camada de aplicações, nesta camada estão os programas que gerenciam as funções básicas do sistema como a interface gráfica,geolocalização, entre outros.
No topo encontram-se os aplicativos finais
Dalvik VM
|
Utiliza a sintaxe da linguagem Java |
|
DALVIK VM usa o kernel linux para tarefas como gerenciamento de memoria em baixo o |
|
nível |
|
|
É uma maquina virtual baseada em |
|
registradores, diferente da JVM baseada em |
|
|
pilha |
|
|
maquinas baseadas em registradores necessitam 47% menos instruções em média [estimativa] |
|
código do registro é em média 25% maior [estimativa] o |
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 alterações de código em qualquer arquitetura suportada pela máquina
Toda aplicação android roda em seu próprio espaço virtual, em sua própria instancia da maquina virtual. uma aplicação não tem contato direto com outra Isso permite maior segurança, dificultando ação de programas maliciosos.
Dalvik VM
Por cada aplicação rodar em seu próprio ambiente virtual o gerenciamento de memoria é facilitado.
Dalvik foi escrito para trabalhar eficientemente com múltiplas instâncias e é otimizado para baixo consumo de energia
Dalvik VM
Baixa velocidade em comparação com código nativo
Just in time compiler recurso já existente a muito tempo na JVM a partir do android 2.2 esta disponível no Dalvik converte os bytecodes em tempo de execução para código 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 porém 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 não implementa os bytecodes java.
Java é promovida como uma linguagem livre, porém para se criar uma maquina virtual java deve-se passar em um pacote de conformidade tecnológica para receber a certificação
Dalvik VM
Dalvik não funciona com bytecodes jvm o conjunto de instruções dalvik é totalmente diferente
Ela interpreta aquivos .Dex que são diferentes de aquivos .class
- File Header: header do arquivo
- String Table: tabela para armazenar o tamanho das strings, contantes, nome de classe e variáveis.
- Class List: lista todas as classes do arquivo dex.
- Field Table: tabela de campos de todas as classes.
- Method Table: tabela com os métodos de todas as classes .
- Class Definition Table: tabela de definições de classes para todas as classes no arquivo.
- Field List: lista que armazena os dados dos campos de uma classe.
- Method List: lista de métodos de uma classe.
- Code Header: header que contém informações sobre o código que implementa determinado método.
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 segurança
É 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 necessário para desenvolvermos aplicações para Android
Ele se integra ao eclipse através 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 aplicação facilitando o desenvolvimento
As interfaces gráficas diferentemente do JVM são criadas em arquivos .xml que são 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 aplicações de baixo nivel
Destinado ao desenvolvimenro de aplicaçoes em C/C++
Muito importante para a programaçao de bibliotecas de sistema
Para aqueles que não gostam de java
existe também como programar em outras linguagens
-python
-Basic
-lua
-Javascript
-C#(Mono)
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
SDK e NDK
Soma de dois números
SDK e NDK
Soma de dois números
SDK e NDK
Soma de dois números
SDK e NDK
SDK e NDK
SDK e NDK
SDK e NDK
Conclusão
|
É a plataforma com maior previsão de crescimento |
|
|
É um excelente ambiente de desenvolvimento |
|
|
A |
Loja virtual ajuda a popularizar as aplicações |
|
Por ser aberto abre possibilidades que não seriam possiveis em outros |
|
|
sistemas |
||
|
O |
ambiente é produtivo tanto para desenvolvedores da aplicações |
|
proprietárias e livres |
||
|
A |
portabilidade evita que desenvolvedores percam tempo adaptando |
programas
Dúvidas?
Arquitetura básica
Lebih dari sekadar dokumen.
Temukan segala yang ditawarkan Scribd, termasuk buku dan buku audio dari penerbit-penerbit terkemuka.
Batalkan kapan saja.